Produto: | TOTVS Varejo Supermercados |
---|---|
Linha de Produto: | Linha Consinco |
Segmento: | Varejo Supermercados |
Módulo: | CONECTOR IFOOD |
Função: | SERVIÇO INTEGRAÇÃO DE PEDIDO - INTIFOOD01 |
Ticket: | |
Requisito/Story/Issue (informe o requisito relacionado) : | DSUPXOMNI-2954 |
Enviar os pedidos recebidos via WebHook enviados pelo IFood para a API Pedido de Venda automaticamente após o recebimento.
Recolher os pedidos via Pooling no ifood enviar os pedidos para a API Pedido de Venda automaticamente
Foi implementada a integração da integração do Conector IFood com a API Pedido de Venda.
No momento que o End Point de recebimento de WebHook de pedidos receber um pedido onde o status do mesmo estiver como SRE - Separation End, o pedido deverá ser enviado automaticamente para a API de vendas do ERP, onde após a execução do PROCESSAPEDIDOS configurado no Processamento de Pedidos (Scheduler), o mesmo deverá ser integrado para a MAD_PEDVENDA.
No momento que o End Point de pedidos do IFood for consultado e nele constar um pedido com o status de SRE - Separation End, o pedido deverá ser enviado automaticamente para a API de vendas do ERP, onde após a execução do PROCESSAPEDIDOS configurado no Processamento de Pedidos (Scheduler), o mesmo deverá ser integrado para a MAD_PEDVENDA.
Após o recebimento do pedido, independente de qual o fluxo escolhido, o mesmo deve ser inserido em ECM_INTSTMWEBOOK onde haverá as seguintes informações:
Nome | Descrição | Observações |
---|---|---|
SEQWEBHOOK | Identificador único do pedido no Conector | |
CODIDPEDIDOIFOOD | Identificador único do pedido no IFood | Campo id recebido do IFood |
CODPEDIDOIFOOD | Identificador amigável do pedido no IFood | Campo shortCode recebido do IFood |
DESCMERCHANTID | Merchant Id da empresa | Informação cadastrada no Configurações para a Integração na configuração de pedidos. |
INDSTATUS | Situação de integração do pedido | P - Pendente |
DESCNOMECONSU | Nome do consumidor do pedido | Campo customer.name recebido do IFood |
VLRPAGOCONSU | Valor total pago do pedido | Soma de todos os pagamentos contidos em payment.methods[0].amount.value recebidos do IFood |
DTAPEDIDO | Data do pedido | Campo createdAt recebido do IFood |
DTAWEBHOOK | Data de recebimento do Pooling ou do WebHook | Preenchido pelo Conector IFood no momento da captura do pedido |
DESCWEBHOOK | Conteúdo recebido do IFood | Preenchido com o conteúdo do IFood recebido inicialmente via WebHook ou Pooling |
DESCPEDIDOCOMPLETO | Pedido completo do IFood | Pedido completo capturado pelo Conector IFood no formato disponibilizado pelo IFood |
DESCRESPOSTAERP | Resposta recebida após tentativa de integração | Resposta recebida após tentativa de integração com API Pedido de Venda ou de erros ocorridos durante a integração |
SEQPEDIDOERP | Identificador único do pedido na API Pedido de Venda | Campo SeqPedido retornado pela API Pedido de Venda após a integração ter sido feita com sucesso. |
A conexão com a API Pedido de Venda é feita através do servidor configurado na tela de Configuração do Servidor Web – GLO00075. Os dados de autenticação devem ser cadastrados na tela de Configurações para a Integração do Conector IFood. Os parâmetros necessários são:
Imagem 1 - Tela de Configurações do Conector Site Mercado - Configurações da API do IFood
Campo | Ação | Origem |
---|---|---|
Usuário | Usuário que será utilizado para autenticação na API Pedido de Venda | Usuário cadastrado em Usuários - GLSGMUSU01 ou em Cadastro de Usuário - GLO_00002 |
Senha | Senha que será utilizada para autenticação na API Pedido de Venda | Senha cadastrada em Usuários - GLSGMUSU01 ou em Cadastro de Usuário - GLO_00002 |
Empresa | Numero da empresa que será utilizado na para autenticação API Pedido de Venda | Deve ser vinculado em Permissão - Segurança Desktop |
Os pedidos são recebidos através do WebHook configurado em Configuração do WebHook, após o recebimentos dos mesmo, caso a situação dele seja de SPE - Separation End no IFood, o mesmo será capturado, formatado e enviado para a API Pedido de Venda
Campo Item | Campo IFood | Observações |
---|---|---|
idPedidoCanalVenda | id | |
seqCanalVenda | Cadastrado na tela de Configurações para a Integração | Deve ser cadastrado na dela de Manutenção de Canal de Venda |
dtaHorPedidoCanalVenda | createdAt | |
nroEmpresa | Cadastrado na tela de Configurações para a Integração | |
nroSegmento | Cadastrado na tela de Configurações para a Integração | |
codGeralOper | Cadastrado na tela de Configurações para a Integração | |
nroRepresentante | Cadastrado na tela de Configurações para a Integração | |
obsPedido | shortCode | |
nroTabVenda | Cadastrado na tela de Configurações para a Integração | |
vlrTotFrete | operationMode.delivery.prices.grossValue.value | |
vlrDescParceiro | benefit.benefits | Soma e aplica todos os descontos contidos no objeto com os campos Target = Cart e Liability = Merchant |
clienteDto.cpfCnpj | customer.document.value | |
clienteDto.nomeRazaoSocial | customer.name | |
clienteDto.cidade | customer.billingAddress.city | |
clienteDto.uf | customer.billingAddress.state | |
clienteDto.bairro | customer.billingAddress.country | |
clienteDto.logradouro | customer.billingAddress.streetName | |
clienteDto.nroLogradouro | customer.billingAddress.streetNumber | |
clienteDto.complementoLogradouro | customer.billingAddress.complement | |
clienteDto.cep | customer.billingAddress.zipCode | |
clienteDto.foneDdd1 | pedidoIfood.customer.phones | Tratamento aplicado para buscar os primeiros 2 dígitos |
clienteDto.foneNro1 | pedidoIfood.customer.phones | Tratamento aplicado para buscar os próximos 9 dígitos |
clienteDto.dtaNascFund | customer.birthDate | |
clienteDto.email | customer.email | |
clienteDto.fisicaJuridica | customer.document | Envia F caso customer.document.type seja CPF, caso contrario, envia J |
itemDto[0].codAcesso | bag.items[0].ean | |
itemDto[0].observacaoItem | bag.items[0].note | Limitado em 250 caracteres |
itemDto[0].qtdPedida | bag.items[0].quantity | |
itemDto[0].qtdEmbalagem | 1 | A aplicação envia fixamente o número 1 |
itemDto[0].vlrEmbTabPreco | bag.items[0].prices.grossValue.value | |
itemDto[0].vlrEmbInformado | bag.items[0].prices.grossValue.value | Esse valor é alterado de acordo com os benefícios retornados nos campos benefit.benefits. OS descontos aplicados são todos os descontos contidos no objeto com os campos Target = Item e Liability = Merchant |
itemDto[0].seqProduto | itemBag.product.plu ou itemBag.ean | A aplicação tenta buscar o seqProduto com base no PLU, depois no EAN como CodAcesso e no final, no EAN como SeqProduto |
pagamentoDto[0].nroFormaPagto | Cadastrado na tela de Configurações para a Integração | |
pagamentoDto[0].nroCondPagto | Cadastrado na tela de Configurações para a Integração | |
pagamentoDto[0].valorPagto | payment.methods[0].amount.value | |
pagamentoDto[0].cnpjInstituicaoPagto | Cadastrado na tela de Configurações para a Integração | Caso não haja valor cadastrado, o valor padrão 14380200000121 é informado |
pagamentoDto[0].cnpjTransacionalPagto | Cadastrado na tela de Configurações para a Integração | Caso não haja valor cadastrado, o valor padrão 14380200000121 é informado |
pagamentoDto[0].nsuDto.CodBandeira | Cadastrado na tela de Configurações para a Integração | Caso não haja valor cadastrado, o valor padrão 00000 é informado |
pagamentoDto[0].nsuDto.Nsu | pagamentoIFood.card.cardNumber | Caso o parâmetro pagamentoIFood.card.cardNumber tenha valor informado, a aplicação informa o valor de CodBandeira cadastrado. Caso não haja o valor 00000 é informado |
tipoEntrega | pedidoIfood.operationMode.type | Caso a informação do campo seja DELIVERY é informado E, caso contrário, R |
Após isso o pedido é enviado para a API Pedido de Venda.
No caso de integração via Pooling, os logs em texto são salvos em C:\TOTVS_Varejo_Supermercados\Logs\Conector_IFOOD\Pedido
No caso de integração via WebHook, os logs em texto são salvos em C:\TOTVS_Varejo_Supermercados\Logs\Conector_IFOOD\PedidoWebHook
Não se aplica
Processamento de Pedidos (Scheduler)
Cadastro de Usuário - GLO_00002
Configurações para a Integração