Páginas filhas
  • APIs Integrações - Pedido - Reservar estoque PDVSync - INTERNA

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Este documento tem como objetivo explicar o funcionamento da integração do Pedido de Venda.de reserva de estoque do PDVSync. 

Pré-Requisitos e Restrições

  • Necessário a instalação do  serviço winthor-pedido-venda
  • Para reservar o estoque o campo situacaoPreVenda deve está igual a 1DISPONIVEL.
  • Os pedidos entraram sempre como bloqueadoserá gravado como liberados, e sem a informação da cobrança (pcpedc.codcob vazio).
  • Caso o atributo "operador.idRetaguardaidOperadorRetaguarda" não seja enviado na requisição, a API consultará o RCA definido no parâmetro "4012 - Código do RCA para cadastro de clientes na Ciashop" da rotina 132- Parâmetros da Presidência.
  • A tabela PCLOGPEDIDOAPI, é responsável por guardar os retornos dos pedidos importados via integração, sendo Operação (I - inclusão, A - alteração, C - cancelamento) e Status (A - Aceito, R - Rejeitado, P - Processando).
  • Ao inserir um pedido através da API, o campo "PCPEDI.PBASERCA" gravará de acordo com o campo “PCPEDI.PTABELA”, não é necessário enviá-lo pela API.
  • No envio do JSON deve-se enviar no campo  preVendaItens.produto.idRetaguarda idProdutoRetaguarda o código auxiliar seguido do código do produto. Exemplo: 100-1. Lembrando que o IdRetaguarda dos produtos na base do PDV já seguem esse padrão e são enviadas pelo WSH assim.
  • No atributo preVendaItens.entrega.idLojaEntregaRetaguarda deverá constar a filial de onde será realizada a retirada da mercadoria;
  • API criada com base da documentação fornecida pelo PDVSync: https://pdvsync-core-controle-dev-aadivv24nq-ue.a.run.app/swagger/index.html?urls.primaryName=V2
  • Caso o cadastro do cliente esteja completo o cliente já vai ser inserido neste processo de reserva de estoque, porém a alteração de dados do cadastro do cliente só será possível no envio do pedido pago.
  • Ao enviar o cliente, será validado o parâmetro  4672 - Aceita validar CEP online nas APIs do WinThor da rotina 132 permite validar se o CEP informado está valido em API terceiros (ViaCEP e ByJG). Caso falso, essa validação não ocorrerá. O padrão do parâmetro é "Sim";
  • Para alterar a reserva, basta enviar o json completo da reserva considerando a alteração realizada (inclusão de item, exclusão de item, adição ou subtração de quantidades de um item, etc), e o número da reserva gerada inicialmente no campo idRetaguarda. Internamente, a api irá cancelar a reserva gerada inicialmente e realizará uma nova reserva. O número da nova reserva será retornado no campo idPedidoRetaguarda do response;

'

 Integração


Totvs custom tabs box
tabsDados integrados c/ Winthor, Gravação Pedido/Retorno
idspasso1,passo2

A integração consiste em receber e enviar dados do pedido que serão utilizados para reserva de estoque

Totvs custom tabs box items
defaultyes
referenciapasso1

Os dados integrados são: 

APIDescriçãoColunaTipoObrigatório
situacaoPreVenda0 = CANCELADA

1 = RECEBIDO

2 = DISPONIVEL

3 = RESGATADA

intSIM
numeroIdentificação do pedido no PDV.PCPEDC.NUMPEDHUBEStringSIM
observacoes
PCPEDC.OBS
operador.idRetaguarda


idOperadorRetaguardaMatricula do funcionário. Caso não informado irá usar o RCA do parâmetro 4012.PCPEDC.CODUSURlongNÃO
loja.idRetaguarda
idLojaRetaguardaCódigo da
filial 
filial.

SIM
preVendaItens.*.quantidadeDeve ser maior que
zero 
zero. PCPEDI.QTintSIM
preVendaItens.*.precoDeve ser maior que
zero 
zero. PCPEDI.PVENDA

preVendaItens.*.descontoValor de
desconto 
desconto. 

NÃO
preVendaItens.*.descontoPercentualPercentual de
desconto 
desconto. 

NÃO
preVendaItens.*.
produto.idRetaguarda
idProdutoRetaguardaCódigo auxiliar mais o código do produto. Ex: 123-1.PCPEDI.CODPROD
SIM
preVendaItens.*
.vendedor.idRetaguarda
.idVendedorRetaguarda

Matrícula do funcionário (quando id somente com números) ou código do RCA (quando id iniciado pelo texto "RCA-", os números em sequência representam o código do RCA).

Quando recebida a matrícula do funcionário, o código do RCA informado no cadastro do funcionário será aplicado no item do pedido.

O id do último item será utilizado para definir o RCA do Pedido.

PCPEDI.CODUSUR 
NÃO
preVendaItens.*.
lojaEntrega
entrega.
idRetaguarda
idRetaguardaLojaEntregaCódigo da
filiar
filial retira.

NÃO 
preVendaItens.*.itensKit

Array de Itens do KIT (Cesta Básica)



SIM
preVendaItens.*.itensKit.*.idProdutoRetaguarda

EAN-Código do Produto do item do KIT (Cesta Básica)

PCPEDICESTA.CODPRODMP
NÃO
preVendaItens.*.itensKit.*.sequencial

Sequencial do item do KIT (Cesta Básica)



SIM
preVendaItens.*.itensKit.*.preco

Preço do item do KIT (Cesta Básica)

PCPEDICESTA.PVENDA
SIM
preVendaItens.*.itensKit.*.quantidade

Quantidade do item do KIT (Cesta Básica)

PCPEDICESTA.QTMP
SIM
cliente

Caso não seja informado o cliente será usado o cliente consumidor final.

Caso o cliente esteja com o cadastro completo, ele já será gravado na base do winthor .



NÃO
cliente.bairroEste campo é obrigatório para gravar o cliente, caso não seja informado o cliente não será gravado e será usado o cliente consumidor final para gerar a reserva de estoque 

NÃO
cliente.telefoneCaso não preenchido será usado o campo celular

NÃO
cliente.celularCaso não preenchido será usado o campo telefone

NÃO
cliente.cepEste campo é obrigatório para gravar o cliente, caso não seja informado o cliente não será gravado e será usado o cliente consumidor final para gerar a reserva de estoque 

NÃO
cliente.cidadeEste campo é obrigatório para gravar o cliente, caso não seja informado o cliente não será gravado e será usado o cliente consumidor final para gerar a reserva de estoque 

NÃO
cliente.complemento


NÃO
cliente.cpfCnpj

Este campo é obrigatório para gravar o cliente, caso não seja informado o cliente não será gravado e será usado o cliente consumidor final para gerar a reserva de estoque 


Caso já exista um cliente com mesmo CGC e o idRetaguarda não seja informado será usado o cliente mais antigo que contém o mesmo CGC



NÃO
cliente.emailEste campo é obrigatório para gravar o cliente, caso não seja informado o cliente não será gravado e será usado o cliente consumidor final para gerar a reserva de estoque 

NÃO
cliente.endereco Este campo é obrigatório para gravar o cliente, caso não seja informado o cliente não será gravado e será usado o cliente consumidor final para gerar a reserva de estoque 

NÃO
cliente.estadoEste campo é obrigatório para gravar o cliente, caso não seja informado o cliente não será gravado e será usado o cliente consumidor final para gerar a reserva de estoque 

NÃO
cliente.idRetaguardaCódigo cliente

NÃO
cliente.numero


NÃO
idRetaguardaNúmero da reserva no WinThor. Só deverá ser enviado caso deseje alterar a reserva.NUMPED
NÃO
Totvs custom tabs box items
defaultno
referenciapasso2

Exemplo do envio da requisição:

Bloco de código
languagejs
titleURI
method: 'POST',
url: '/winthor/apivarejo/wholesalematcon/v1/orders/pdvsync'
Bloco de código
languagejs
titleBody Request
{
    "situacaoPreVenda": "1DISPONIVEL",
    "numeroid": {{numPedHube}},
    "1234556"numero": {{numPedHube}},
    "observacoes": "venda de teste",
   "operador": {
      "idRetaguarda"idOperadorRetaguarda": "1"
   },
   "loja": {
      "idRetaguarda"idLojaRetaguarda": "1",
   },
   "preVendaItens": [
        {
            "quantidade": 1.0,
            "preco": 24.9,
            "desconto": 0.0,
            "descontoPercentual": 0.0,
          "produto  "idProdutoRetaguarda": "303-13",
            "idVendedorRetaguarda": "1",
            "entrega": {
                "idRetaguardaidRetaguardaLojaEntrega": "2-21"
            },
            "vendedoritensKit": [
                {
                    "idProdutoRetaguarda": "7891045008397-75110",
            "idRetaguarda        "sequencial": "string"
1,
                    "preco": 100.0,
                    "quantidade": 2
                },
         "lojaEntrega": {  "idRetaguarda": "1"       {
                    "idProdutoRetaguarda": "7897595903693-77300",
                    "sequencial": 2,
                    "preco": 12.00,
                    "quantidade": 4
                }
            ]
        }
    ]
}
Bloco de código
languagejs
titleBody Response
{
   "success": true,
   "hasNext": false,
   "message": "",
   "data": {
      "idRetaguardaPedido": "54434",
      "message": "",
      "success": true
   }
}