01. DADOS GERAIS

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


02. 
SITUAÇÃO/REQUISITO

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

03. SOLUÇÃO

Foi implementada a integração da integração do Conector IFood com a API Pedido de Venda.


Fluxo via Pooling

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.

Fluxo via Pooling

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.

Logs de integração

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:

NomeDescriçãoObservações
SEQWEBHOOKIdentificador único do pedido no Conector
CODIDPEDIDOIFOODIdentificador único do pedido no IFoodCampo id recebido do IFood
CODPEDIDOIFOODIdentificador amigável do pedido no IFoodCampo shortCode recebido do IFood
DESCMERCHANTIDMerchant Id da empresaInformação cadastrada no Configurações para a Integração na configuração de pedidos.
INDSTATUSSituação de integração do pedido

P - Pendente
I - Integrado
F - Falha

DESCNOMECONSUNome do consumidor do pedidoCampo customer.name recebido do IFood
VLRPAGOCONSUValor total pago do pedidoSoma de todos os pagamentos contidos em payment.methods[0].amount.value recebidos do IFood
DTAPEDIDOData do pedidoCampo createdAt recebido do IFood
DTAWEBHOOKData de recebimento do Pooling ou do WebHookPreenchido pelo Conector IFood no momento da captura do pedido
DESCWEBHOOKConteúdo recebido do IFoodPreenchido com o conteúdo do IFood recebido inicialmente via WebHook ou Pooling
DESCPEDIDOCOMPLETOPedido completo do IFoodPedido completo capturado pelo Conector IFood no formato disponibilizado pelo IFood
DESCRESPOSTAERPResposta recebida após tentativa de integraçãoResposta recebida após tentativa de integração com API Pedido de Venda ou de erros ocorridos durante a integração
SEQPEDIDOERPIdentificador único do pedido na API Pedido de VendaCampo SeqPedido retornado pela API Pedido de Venda após a integração ter sido feita com sucesso.


API de Vendas

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


CampoAçãoOrigem
UsuárioUsuá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
SenhaSenha que será utilizada para autenticação na API Pedido de VendaSenha cadastrada em Usuários - GLSGMUSU01 ou em Cadastro de Usuário - GLO_00002
EmpresaNumero da empresa que será utilizado na para autenticação API Pedido de VendaDeve 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 ItemCampo IFood Observações
idPedidoCanalVendaid
seqCanalVendaCadastrado na tela de Configurações para a IntegraçãoDeve ser cadastrado na dela de Manutenção de Canal de Venda
dtaHorPedidoCanalVendacreatedAt
nroEmpresaCadastrado na tela de Configurações para a Integração
nroSegmentoCadastrado na tela de Configurações para a Integração
codGeralOperCadastrado na tela de Configurações para a Integração
nroRepresentanteCadastrado na tela de Configurações para a Integração
obsPedidoshortCode
nroTabVendaCadastrado na tela de Configurações para a Integração
vlrTotFreteoperationMode.delivery.prices.grossValue.value
vlrDescParceirobenefit.benefitsSoma e aplica todos os descontos contidos no objeto com os campos Target = Cart e Liability = Merchant
clienteDto.cpfCnpjcustomer.document.value
clienteDto.nomeRazaoSocialcustomer.name
clienteDto.cidadecustomer.billingAddress.city
clienteDto.ufcustomer.billingAddress.state
clienteDto.bairrocustomer.billingAddress.country
clienteDto.logradourocustomer.billingAddress.streetName
clienteDto.nroLogradourocustomer.billingAddress.streetNumber
clienteDto.complementoLogradourocustomer.billingAddress.complement
clienteDto.cepcustomer.billingAddress.zipCode
clienteDto.foneDdd1pedidoIfood.customer.phonesTratamento aplicado para buscar os primeiros 2 dígitos
clienteDto.foneNro1pedidoIfood.customer.phonesTratamento aplicado para buscar os próximos 9 dígitos
clienteDto.dtaNascFundcustomer.birthDate
clienteDto.emailcustomer.email
clienteDto.fisicaJuridicacustomer.documentEnvia F caso customer.document.type seja CPF, caso contrario, envia J
itemDto[0].codAcessobag.items[0].ean
itemDto[0].observacaoItembag.items[0].noteLimitado em 250 caracteres
itemDto[0].qtdPedidabag.items[0].quantity
itemDto[0].qtdEmbalagem1A aplicação envia fixamente o número 1
itemDto[0].vlrEmbTabPrecobag.items[0].prices.grossValue.value
itemDto[0].vlrEmbInformadobag.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].seqProdutoitemBag.product.plu ou itemBag.eanA aplicação tenta buscar o seqProduto com base no PLU, depois no EAN como CodAcesso e no final, no EAN como SeqProduto
pagamentoDto[0].nroFormaPagtoCadastrado na tela de Configurações para a Integração
pagamentoDto[0].nroCondPagtoCadastrado na tela de Configurações para a Integração
pagamentoDto[0].valorPagtopayment.methods[0].amount.value
pagamentoDto[0].cnpjInstituicaoPagtoCadastrado na tela de Configurações para a IntegraçãoCaso não haja valor cadastrado, o valor padrão 14380200000121 é informado
pagamentoDto[0].cnpjTransacionalPagtoCadastrado na tela de Configurações para a IntegraçãoCaso não haja valor cadastrado, o valor padrão 14380200000121 é informado
pagamentoDto[0].nsuDto.CodBandeiraCadastrado na tela de Configurações para a IntegraçãoCaso não haja valor cadastrado, o valor padrão 00000 é informado
pagamentoDto[0].nsuDto.NsupagamentoIFood.card.cardNumberCaso 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
tipoEntregapedidoIfood.operationMode.typeCaso 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.

Logs em Texto

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

04. DEMAIS INFORMAÇÕES

Não se aplica

05. ASSUNTOS RELACIONADOS

       API Pedido de Venda

       Processamento de Pedidos (Scheduler)

       Configuração do WebHook

       Manutenção de Canal de Venda

       Usuários - GLSGMUSU01

       Cadastro de Usuário - GLO_00002

       Permissão - Segurança Desktop

       Configurações para a Integração