...
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 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 |
---|
tabs | Dados integrados c/ Winthor, Gravação Pedido/Retorno |
---|
ids | passo1,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 |
---|
default | yes |
---|
referencia | passo1 |
---|
| Os dados integrados são: API | Descrição | Coluna | Tipo | Obrigatório | situacaoPreVenda | 0 = CANCELADA
1 = RECEBIDO
2 = DISPONIVEL
3 = RESGATADA |
| int | SIM | numero | Identificação do pedido no PDV. | PCPEDC.NUMPEDHUBE | String | SIM | observacoes |
| PCPEDC.OBS | operador.idRetaguarda
|
| idOperadorRetaguarda | Matricula do funcionário. Caso não informado irá usar o RCA do parâmetro 4012. | PCPEDC.CODUSUR | long | NÃO | loja.idRetaguardaidLojaRetaguarda | Código da | filial filial. |
|
| SIM | preVendaItens.*.quantidade | Deve ser maior que | zero zero. | PCPEDI.QT | int | SIM | preVendaItens.*.preco | Deve ser maior que | zero zero. | PCPEDI.PVENDA |
|
| preVendaItens.*.desconto | Valor de | desconto desconto. |
|
| NÃO | preVendaItens.*.descontoPercentual | Percentual de | desconto desconto. |
|
| NÃO | preVendaItens.*. | produto.idRetaguardaidProdutoRetaguarda | Código auxiliar mais o código do produto. Ex: 123-1. | PCPEDI.CODPROD |
| SIM | preVendaItens.*. | vendedor.idRetaguardaidVendedorRetaguarda | 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.*. | lojaEntregaentrega. | idRetaguardaidRetaguardaLojaEntrega | Có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 winthor . |
|
| NÃO | cliente.bairro | 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.telefone | Caso não preenchido será usado o campo celular |
|
| NÃO | cliente.celular | Caso não preenchido será usado o campo telefone |
|
| NÃO | cliente.cep | 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.cidade | 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.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.email | 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.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.estado | 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.idRetaguarda | Código cliente |
|
| NÃO | cliente.numero |
|
|
| NÃO | idRetaguarda | Número da reserva no WinThor. Só deverá ser enviado caso deseje alterar a reserva. | NUMPED |
| NÃO |
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | passo2 |
---|
| Exemplo do envio da requisição: Bloco de código |
---|
| method: 'POST',
url: '/apiwinthor/varejo/wholesalematcon/v1/orders/pdvsync' |
Bloco de código |
---|
language | js |
---|
title | Body Request |
---|
| {
"situacaoPreVenda": "1DISPONIVEL",
"numeroid": "1234556"{{numPedHube}},
"numero": {{numPedHube}},
"observacoes": "venda de teste",
"operador": {
"idRetaguardaidOperadorRetaguarda": "1"
},
"loja": {
"idRetaguardaidLojaRetaguarda": "1",
},
"preVendaItens": [
{
"quantidade": 1.0,
"preco": 24.9,
"desconto": 0.0,
"descontoPercentual": 0.0,
"idProdutoRetaguarda": "303-13",
"produto"idVendedorRetaguarda": "1",
"entrega": {
"idRetaguardaidRetaguardaLojaEntrega": "2-21"
},
"vendedoritensKit": [
{
"idRetaguarda": "string"
"idProdutoRetaguarda": "7891045008397-75110",
"sequencial": 1,
"preco": 100.0,
"quantidade": 2
},
{
"lojaEntrega": { "idRetaguarda": "1" } "idProdutoRetaguarda": "7897595903693-77300",
"sequencial": 2,
"preco": 12.00,
"quantidade": 4
}
]
}
]
} |
Bloco de código |
---|
language | js |
---|
title | Body Response |
---|
| {
"success": true,
"hasNext": false,
"message": "",
"data": {
"idRetaguardaPedido": "54434",
"message": "",
"success": true
}
} |
|
|