Desenvolvimento Millen-22253 – Integração e- Millennium X hub Plugg To
Release 102
Versão 5
Autor Jaciara Silva
Processo: Vendas
Nome do Processo: Movimentações
Motivação
Na atual integração com o Hub da Plugg.TO o e-Millenium é sempre passivo, ou seja, somente recebe as chamadas realizadas pelo hub. No entanto, para que o status do pedido de venda seja atualizado, o Plugg.TO tem a necessidade de ler a API de listagem de pedidos constantemente, o que causa lentidão e perda de performance.
Para atender esta necessidade foram desenvolvidos um webhook e um processo de listagem para contingenciamento deste webhook.
No primeiro módulo criado, serão interceptadas as chamadas que aprovam, reservam, faturam, embarcam, entregam e/ou cancelam os pedidos, sendo gravados numa tabela, com a data/hora da chamada, "trans_id" e posição da fila (sequencial). Esse módulo também disponibilizará um endpoint que irá listar, a cada chamada, no máximo 100 'registros' (parametrizável) dessa tabela. Ao serem listados, seguirão para o final da fila, onde ficarão bloqueados por 2 horas (parâmetro customizável).
Quando o cliente que consome o 'feed' realmente tiver processado o pedido, deverá ser realizada a chamada em um segundo endpoint, que será o responsável pela "retirada" da fila, onde, efetivamente, o pedido deixará de existir na tabela.
Obs.: A ação de exclusão do pedido da tabela será parametrizável, sendo:
- Exclusão imediata após tempo configurado;
- Manter o pedido;
- Manter o pedido temporariamente.
No processo exclusivo para o recurso, um segundo módulo consumirá o endpoint da Plugg.TO, onde deverá enviar o pedido e seu status, seguindo o mesmo código gerado pela rotina "processa_status":
0 Aguardando Pagamento
1 Pagamento Confirmado
2 Em Preparação
3 Despachado
4 Entregue
5 Cancelado
6 Problemas
7 Embarcado
8 Falha na Entrega
Após o envio, este pedido deixará de existir na tabela.
Atenção! Este recurso não acompanha a versão do sistema. Para utilizá-lo, solicite aos nossos consultores que forneçam o módulo para instalação. Caso você não consiga fazer a instalação, entre em contato com nosso departamento comercial e solicite a visita de um consultor.
Parâmetros
Instalar os módulos millenium!eco_feed.minst e millenium_eco!webhook.minst. Para informações sobre como fazer a instalação de módulos no e-Millennium acesse o Manual de instalação de módulos no e-Millennium.
No caso desta integração, não haverá uma tela para configuração de acessos, pois o cliente irá instalar o módulo para habilitar o acesso as API's desenvolvidas. Quem vai realizar as configurações e chamadas à API será a Plugg To, que não possui acesso ao e-Millennium. Portanto, não se faz necessária a tela de configurações.
Com os módulos instalados, é possível acessar o método que realizará os cadastros do FEED e WEBHOOK. Através do método: MILLENIUM_ECO!WEBHOOK.VITRINE_CONFIG_WEBHOOK.REGISTRAR.
Serão alimentadas as tabelas: VITRINE_FEED_CONFIG e VITRINE_CONFIG_WEBHOOK;
Deverão ser informadas qual VITRINE queremos configurar e qual URL esta vitrine acessará, conforme exemplo abaixo:
Obs.: A url utilizada aqui é apenas para fins de realização de testes de homologação. O cliente deverá obter a url correta com a Plugg To.
Entradas
Configuração do webhook
Em c:\wts\scheduler!millenium_eco!webhook.ini, temos a configuração do método que inicialmente será com 1 minuto. Este método irá rodar a cada X tempo (de acordo com a configuração), acionando o método MILLENIUM!ECO_FEED.VITRINE_FEED.LISTAR que retornará por padrão o máximo de 100 pedidos que possuam DATA_HORA menor que 2 horas de diferença do horário de execução. Com este retorno será verificado se a VITRINE vinculada ao pedido possui a configuração no webhook, para que possa ter URL a acessar e, se o status do pedido está dentro do configurado. Caso atenta a todos requisitos, será realizada uma chamada POST para URL informada. Caso contrário será adicionado um log, e seguiremos para próxima listagem. Após varrer todos pedidos informados no retorno, eles serão removidos da tabela.
Configuração do feed
Em c:wts\scheduler!millenium_eco!feed.ini
Para fins de teste, está configurado com 1.440 minutos, podendo ser ajustado de acordo com a necessidade do cliente. Onde o método excluirá todos os registros da tabela VITRINE_FEED que possuam o campo DATA_HORA com mais de 7 dias do horário/data atual em que ele for executado.
Também será disponibilizado o acesso a exclusão com o método: MILLENIUM!ECO_FEED.VITRINE_FEED.EXCLUIR, onde será possível escolher: excluir pela vitrine, pelo id de controle da tabela, ou pelo trans_id do feed.
Acompanhamento dos status de envio
Inclusão de pedido de venda – Status 0
Inclusão de pedido de venda com aprovação – Status 1
Pedido em preparação (na inclusão foi feita a reserva/pré-faturamento do pedido) – Status 2
Faturamento do pedido de venda / Despacho – Status 3
Entregue - Status 4
O status Entregue deve-se a integração com Gateway de Frete, quando alteramos o status para Aprovado, é enviado para a plataforma configurada, neste momento podemos ter sucesso ou falha na entrega das informações para a plataforma (considera volume eventos).
Atenção! Não deve ser confundido com a entrega da mercadoria para o consumidor final.
Cancelamento - Status 5
Ocorre quando, nas opções da tela do Pedido de Venda, é acionada a função de Quitar pedido.
Embarcado - Status 7
Ao criar um embarque e vincular os itens (dos pedidos criados) nesse embarque, alterando o status do embarque para "Aprovado", será replicado o status de Embarcado.
Falha na entrega do pedido - Status 8
Falha na entrega deve-se a integração com Gateway de Frete, quando o status é alterado para Aprovado, é enviado para a plataforma configurada, neste momento podemos ter sucesso ou falha na entrega das informações para a plataforma.
Validações e Saídas