Este documento tem como objetivo explicar o funcionamento de reserva de estoque do PDVSync.
Pré-Requisitos e Restrições
Necessário a instalação do serviçowinthor-pedido-venda.
Para reservar o estoque o campo situacaoPreVenda deve está igual a DISPONIVEL.
Os pedidos será gravado como liberados, e sem a informação da cobrança (pcpedc.codcob vazio).
Caso o atributo "idOperadorRetaguarda" 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" 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).
No envio do JSON deve-se enviar no campo preVendaItens.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;
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âmetro4672 - 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
A integração consiste em receber e enviar dados do pedido que serão utilizados para reserva de estoque
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
idOperadorRetaguarda
Matricula do funcionário. Caso não informado irá usar o RCA do parâmetro 4012.
PCPEDC.CODUSUR
long
NÃO
idLojaRetaguarda
Código da filial.
SIM
preVendaItens.*.quantidade
Deve ser maior que zero.
PCPEDI.QT
int
SIM
preVendaItens.*.preco
Deve ser maior que zero.
PCPEDI.PVENDA
preVendaItens.*.desconto
Valor de desconto.
NÃO
preVendaItens.*.descontoPercentual
Percentual de desconto.
NÃO
preVendaItens.*.idProdutoRetaguarda
Código auxiliar mais o código do produto. Ex: 123-1.
PCPEDI.CODPROD
SIM
preVendaItens.*.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.*.entrega.idRetaguardaLojaEntrega
Código da 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.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.