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

Versões comparadas

Chave

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

Objetivo

Este documento tem como objetivo explicar o funcionamento da geração de pedidos provenientes da integração com o PDVSync. 

Pré-Requisitos e Restrições

  • Necessário a instalação do  serviço winthor-pedido-venda
  • Para gerar o pedido, o campo situacaoPreVenda deve está igual a RECEBIDO.
  • 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 envio do json, é obrigatório a informação do campo idRetaguarda. Esse campo é referente a reserva realizada anteriormente.
  • Caso exista algum dos itens com o tipoEntrega = 1 (Retira posterior), serão gerados 2 pedidos, um pedido TV7 (ENTREGA FUTURA) com o mesmo número do pedido gerado na reserva, e um pedido TV8 (SIMPLES ENTREGA) relacionado a esse pedido TV7 através no campo PCPEDC.NUMPEDENTFUT. Esse processo considera que a baixa dos itens será realizada do pedido TV8 que será gerado automaticamente. Base de conhecimento: https://centraldeatendimento.totvs.com/hc/pt-br/articles/360025267372-WINT-Como-realizar-venda-para-entrega-futura-TV7-TV8-na-rotina-316
  • 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 do pedido.
  • A regra para gravação ou alteração do cliente seguirá o definido definido na api de clientes que já existe hoje. Doc: APIs Integrações - Clientes
  • 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";

'

 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
NÃO
idOperadorRetaguardaMatricula do funcionário. Caso não informado irá usar o RCA do parâmetro 4012.PCPEDC.CODUSURlongNÃO
idLojaRetaguardaCódigo da filial.

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

NÃO
preVendaItens.*.descontoPercentualPercentual de desconto. 

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


NÃO
preVendaItens.*.entrega.idRetaguardaLojaEntregaCódigo da filial retira.PCPEDI.CODFILIAL
SIM 
preVendaItens.*.entrega.tipoEntrega

0 = RETIRA_IMEDIATA("RI", "Retira Imediata"),

1 = RETIRA_POSTERIOR("RP", "Retira Posterior"),

2 = ENTREGA_NORMAL("EN", "Entrega Normal")

PCPEDI.TIPOENTREGA
SIM
preVendaItens.*.entrega.dataEntregaData da entrega do itemPCPEDI.DTENTREGANÃO 

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
PreVendaPagamentos.valorLiquidoValor líquidoPCFORMAPGTOPEDIDO.VALOR
SIM
PreVendaPagamentos.idPagamentoFormaRetaguardaForma de pagamentoPCFORMAPGTOPEDIDO.CODCOB
SIM
PreVendaPagamentos.preVendaPagamentoItens.valorParcelaValor da parcelaPCFORMAPGTOPEDIDO.VALOR (Só utilizado caso cobrança cartão com parcelas)
NÃO
PreVendaPagamentos.preVendaPagamentoItens.dataVencimentoData de vencimento da parcelaPCFORMAPGTOPEDIDO.DTVENC (Só utilizado caso cobrança cartão com parcelas)
NÃO

PreVendaPagamentos.preVendaPagamentoTefs.nsuHost

NSUPCFORMAPGTOPEDIDO.NSU (Só utilizado caso cobrança cartão com parcelas)
NÃO
Totvs custom tabs box items
defaultno
referenciapasso2

Exemplo do envio da requisição:

Bloco de código
languagejs
titleURI
method: 'POST',
url: '/api/wholesale/v1/orders/pdvsync'
Bloco de código
languagejs
titleBody Request
{     "Numero": {{numPedHube}},
    "NumeroVenda": null,
    "TipoPreVenda": 1,
    "Data": "2023-04-13T16:33:29.946503",
    "CpfConsumidor": null,
    "CpfCliente": "03425067141",
    "DescontoTotal": 0.0,
    "TotalLiquido": 6.130000,
    "TotalBruto": 6.130000,
    "IdLojaRetaguarda": 1,
    "CodigoPromocional": null,
    "situacaoPreVenda": "RECEBIDO",
    "NomeConsumidor": null,
    "EnderecoCliente": "RUA GIOTO",
    "NomeCliente": "Cliente 0123",
    "IdOperadorRetaguarda": 1,
    "SistemaOrigem": "DISPONIVEL"1,
    "TerminalOrigem": null,
    "TipoEntrega": 0,
    "Sincronizado": 0,
    "TipoDescontoAcrescimo": null,
    "idDescontoPercentualTotal": {{numPedHube}}0.0,
    "numeroIdMotivoDesconto": {{numPedHube}}null,
    "observacoesDescricaoMotivoDescontoAcrescimo": "venda de teste"null,
    "IdTransacaoMotorPromocaoTerceiro": null,
    "SerieVenda": null,
    "idOperadorRetaguardaNumeroAutorizacao": null,
    "TipoVenda": 1,
    "TipoCancelamento": null,
    "idLojaRetaguardaIdCanalVenda": null,
    "1DescontoMotorPromocaoAplicado": false,
    "preVendaItensPreVendaItens": [
        {
            "quantidade": 1.0,
            "preco": 24.9,
            "desconto": 0.0,
            "descontoPercentual": 0.0,
            "idProdutoRetaguarda": "303-13",
            "idVendedorRetaguarda": "1",
            "entrega": {
                "idRetaguardaLojaEntrega": "1",
                "TipoEntrega": 1,
                "dataEntrega": "2022-04-25T17:08:56.18511"
            }
        }
    ],
    "PreVendaPagamentos": [
        {
            "valorLiquido": 1.0,
            "valorPago": 24.9,
            "valorTroco": 0.0,
            "idPagamentoCondicaoRetaguarda": 0.0,
            "idPagamentoFormaRetaguarda": "CAR",
            "idPagamentoOperadoraRetaguarda": "1",
            "preVendaPagamentoTefs": [
                {
                    "bandeira": "1",
                    "codigoRede": "1",
                    "idTransacaoDigital": "1",
                    "nsuHost": "1",
                    "numeroAutorizacao": "1",
                    "numeroBin": "1"
                }
            ],
            "preVendaPagamentoItens": [
                {
                    "dataVencimento": "2022-05-10T17:08:56.18511",
                    "valorParcela": 24.9,
                    "numeroParcela": 1
                }
            ]
        }
    ],
    "Cliente": {
        "Nome": "Cliente alterar",
        "Endereco": "RUA GIOTO",
        "Numero": "S/N",
        "Complemento": "",
        "Bairro": "SETOR GENTIL",
        "Cidade": "GOIANIA",
        "Estado": "GO",
        "Cep": "74000-000",
        "Telefone": "",
        "Celular": "62900000000",
        "Email": "[email protected]",
        "DataNascimento": "2001-04-01T00:00:00",
        "PessoaFisica": 1,
        "CpfCnpj": "40141279079",
        "RgInscricao": "6346333",
        "Sexo": 2,
        "EstadoCivil": 2,
        "AvatarUrl": "",
        "Enviarpnet": 0,
        "Atividade": null,
        "Cracha": null,
        "Situacao": 1,
        "Id": 4,
        "IdRetaguarda": "00000000-0000-0000-0000-000000000000",
        "DataCadastro": "2023-03-29T13:51:38.556565",
        "DataAtualizacao": "2023-03-29T13:51:38.55657",
        "_expandables": []
    },
    "Situacao": 0,
    "IdRetaguarda": "1007217",
    "Id": {{numPedHube}},
    "DataCadastro": "2023-04-13T16:32:45.651279",
    "DataAtualizacao": "2023-04-13T16:33:30.123302",
    "_expandables": [] 
}
Bloco de código
languagejs
titleBody Response
{
     
	"success": true,
    "hasNext": false,
    "message": "",
    "data": {
        "idRetaguardaPedido": "1007217",
        "cliente": {
            "idRetaguardaCliente": "54434"770"
        },
        "message": "",
        "success": true
    } 
}