Esta documentação tem como objetivo descrever como funciona o envio de status dos pedidos do ERP TOTVS Varejo Supermercados para o Shopify utilizando a plataforma TOTVS iPaaS como middleware de comunicação.
Diagramas do iPaaS envolvidos no processo de envio de status dos pedidos:
O diagrama Status do pedido busca os pedidos através do endpoint: GET SMPedidoVendaAPI/api/v1/PedidoVenda/EventoPedido
Utilizando o controle de data e hora do envio das cargas, dessa forma, consegue gerenciar para obter as alterações ou inclusões desde a ultima movimentação.
Uma vez que é retornado um pedido pela API, este diagrama é responsável por pegar as informações do pedido e enviar ao Hub E-commerce.
2. Faturamento com alteração
Caso seja identificada uma alteração no pedido, o pedido é enviado à outro diagrama FaturadoComAlteracao, que é responsável por fazer as atualizações finais necessárias no pedido na plataforma do Shopify antes do status de Faturado ser enviado. É verificado qual alteração ocorreu no pedido, no caso de inclusão de produto, os dados do produto são buscados no Hub E-commerce e é enviado para a Shopify para que seja adicionado no pedido.
Se identificado que houve um corte no pedido a quantidade atualizada do produto é enviada para Shopify para atualizar o pedido.
3. Envio do Faturamento
O próximo diagrama no processo é o Consulta Envio Faturamento, responsável por identificar os novos pedidos enviados ao Hub E-commerce. Cada pedido faturado é enviado separadamente ao Shopify para confirmar o seu faturamento. Ao obter sucesso no envio ao Shopify, o status do pedido é atualizado no Hub para garantir que o pedido não volte ao fluxo.
4. Cancelamento do Pedido
Caso seja identificado que houve o cancelamento do pedido, o diagrama Envio Cancelamento é responsável por buscar os dados do pedido no Hub E-commerce e o cancelamento é enviado para a plataforma do Shopify.
Regras para retornar os pedidos do ERP
Campos utilizados e suas respectivas referencias no ERP, Hub e na plataforma Shopify
Status Pedido
Campo | ERP (linha Consinco) | Shopify |
Seq. Pedido | Mad_Imppedvenda.seqPedido | Hub: orderERPReferenceKey |
Seq. Canal de Venda | Mad_Imppedvenda.seqCanalVenda | Hub: Não mapeado |
Id Pedido Canal de Venda | Mad_Imppedvenda.idPedidoCanalVenda | Hub: Não mapeado |
Número Pedido de Venda | Mad_Imppedvenda.nroPedVenda | Hub: erpReferenceKey |
Número Empresa | Mad_Pedvenda.nroEmpresa | Hub: Não mapeado |
Data Hora Evento | Mad_Pedvenda.dtahorgeracaonf no caso de Faturamento, Mad_Pedvenda.dtacancelamento para Cancelamento | Hub: erpCreateDate |
Status Evento | Mad_Pedvenda. Quando valor for 'F' enviado 'Faturamento', quando valor 'C' enviado 'Cancelamento' | Hub: orderStatusERPReferenceKey |
Dados Faturamento
Campo | ERP (linha Consinco) | Shopify |
Número Documento Fiscal | mfl_doctofiscal.numeroDf | Hub: number |
Valor Documento Fiscal | Soma das seguintes colunas: (mfl_dfitem.vlritem + mfl_dfitem.vlracrescimo - mfl_dfitem.vlrdesconto - mfl_dfitem.vlrdescincondic) | Hub: value |
Valor Alterado Pedido | Calculo da diferença do valor da quantidade pedida menos o valor da quantidade atendida. ((mad_pedvendaitem.qtdpedida / mad_pedvendaitem.qtdembalagem) * mad_pedvendaitem.vlrembinformado) + valores de impostos ((mad_pedvendaitem.qtdatendida / mad_pedvendaitem.qtdembalagem) * mad_pedvendaitem.vlrembinformado) + valores de impostos | Hub: value |
Chave NFE | mfl_doctofiscal.nfechaveacesso, se nulo então, mfl_doctofiscal.cfechaveacesso | Hub: key |
Dados Cancelamento
Campo | ERP (linha Consinco) | Shopify |
Usuário Cancelamento | Mad_Pedvenda.usucancelamento | Hub: Não mapeado |
Motivo Cancelamento | Mad_Pedvenda.motcancelamento | Hub: Não mapeado |
Link: Detalhamento do fluxo