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

  • Sem rótulos