Skip to content

Totali Middleware – Versão 6.1G | Integração com e-commerce Magazord.

O Magazord é uma plataforma de E-commerce que oferece suporte e funcionalidades em todos os aspectos que envolvem uma operação de comércio online e que é utilizado por nosso cliente Pontão Calçados.

Configuração ​

Totali Config ​

No cadastro de filiais, selecione a filial que será usada no E-Commerce e marque a opção [Exportar para Web?]

Caso seja utilizado algum Subestoque, deverá ser marcada a opção [Exportar para Web].

WSMiddleware ​

Nas abas [ Integração ], [ Magazord ], marcar [ Ativada ] e informar [ Tempo (em minutos) ] (de quanto em quanto tempo será executada a integração).

Acesse a aba [ Configurações Empresa ], edite a empresa que fará a integração com Magazord.

Nas abas [ 7 – Integração ], [ Magazord ] informe todos os campos.

Nas abas [ Integração ], [ Magazord ], marque [ Ativada ] e informe [ Tempo (em minutos)]. Esse será o intervalo de tempo em que será executada a integração.

Organograma do fluxo completo da integração.

API Magazord ​

A API Magazord trata as derivações em 4 itens distintos:

1 – COR EXIBE PAI | 2 – TAMANHO |  3 – ÚNICO | 4 – COR EXIBE FILHOS

Commerce ​

No Commerce, tratamos esses valores como Divisão e Subdivisão e para adequação nos relacionamentos com as informações da API e será necessário incluir esses relacionamentos na tabela integracaoChave da Guarda de forma manual.

Script para inclusão e criação dos relacionamentos:

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-11 17:31:58.662’, ‘2022-11-14 14:30:07.139’, ‘F’, 6, ‘derivacoes’, ‘4’, ‘derivacao’, ‘COR EXIBE FILHOS’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-11 17:31:59.489’, ‘2022-11-14 14:30:08.600’, ‘F’, 6, ‘derivacoes’, ‘2’, ‘derivacao’, ‘TAMANHO’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-11 17:31:59.240’, ‘2022-11-11 17:56:09.549’, ‘F’, 6, ‘derivacoes’, ‘3’, ‘derivacao’, ‘ÚNICO’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-11 17:32:01.500’, ‘2022-11-11 17:56:12.161’, ‘F’, 6, ‘derivacoes’, ‘1’, ‘derivacao’, ‘COR EXIBE PAI’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-16 16:50:21.395’, ‘2022-11-16 16:50:21.395’, ‘F’, 6, ‘derivacoes’, ‘3’, ‘derivacao’, ‘SUB DIVISAO’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-14 10:16:36.210’, ‘2022-11-14 10:16:36.210’, ‘F’, 6, ‘derivacoes’, ‘3’, ‘derivacao’, ‘DIVISAO’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-11 17:32:01.500’, ‘2022-11-14 14:30:11.586’, ‘F’, 6, ‘derivacoes’, ‘1’, ‘derivacao’, ‘1’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-11 17:32:01.500’, ‘2022-11-14 14:30:08.251’, ‘F’, 6, ‘derivacoes’, ‘1’, ‘derivacao’, ‘COR’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-11 17:32:01.500’, ‘2022-11-14 14:30:08.251’, ‘F’, 6, ‘derivacoes’, ‘2’, ‘derivacao’, ‘2’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-11 17:31:58.662’, ‘2022-11-14 14:30:07.139’, ‘F’, 6, ‘derivacoes’, ‘4’, ‘derivacao’, ‘4’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-16 16:50:22.803’, ‘2022-11-16 16:50:22.803’, ‘F’, 6, ‘derivacoes’, ‘3’, ‘derivacao’, ‘SEMENTE’);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-16 16:50:22.793’, ‘2022-11-16 16:50:22.793’, ‘F’, 6, ‘derivacoes’, ‘2’, ‘derivacao’, ’41/42′);

INSERT INTO public.integracaochave (intchv_cnpj, intchv_datinc, intchv_atu_em, intchv_export, intchv_tipint, intchv_tabint, intchv_chvint, intchv_tabcom, intchv_chvcom) VALUES(‘11111111111111’, ‘2022-11-11 17:32:01.500’, ‘2022-11-14 14:30:08.251’, ‘F’, 6, ‘derivacoes’, ‘3’, ‘derivacao’, ‘0’);

O Projeto ​

Neste projeto não serão importados os pedidos, mas as vendas, ou seja, as NF-e através do arquivo XML  e também os clientes, porque, obrigatoriamente, a Magazord exige que a emissão da nota seja pelo seu sistema.

Conforme análise, foi criado um processo de integração contínua no qual será possível realizar a configuração do tempo para integração, onde o processo irá executar conforme o tempo definido e irá exportar ou importar os documentos alterados ou incluídos no período.

Ex.: Supondo que a última execução foi as 01/08/2022 00:00:00, e agora seja 03/08/2022 18:00:00 o sistema deverá pegar as mudanças de cadastros que ocorreram nesse intervalo e realizar o processo de envio ao e-commerce, assim como deverá pegar as notas emitidas pelo e-commerce nesse intervalo e realizar a importação. Nesse sentido foi criado a rotina de sincronização conforme o tempo configurado.

Também foi criado a integração de documentos e envio dos cadastros em rotinas em paralelo pois a integração de cadastros pode levar 2 horas e não podemos ficar esse tempo sem importar as notas geradas pelo e-commerce, processo similar a sincronização do Totali Mobi.

Considerando o escopo, o projeto está dividido em duas partes:

  1. Exportação dos Cadastros
  2. Importação das Notas Fiscais

EXPORTAÇÃO DOS CADASTROS ​

Para integração dos produtos, foi necessário criar a integração dos seguintes dados:

CATEGORIAS ​

Pode ser selecionada de acordo com uma tabela específica para esta finalidade junto ao cliente, tendo como origem obrigatória uma das seguintes tabelas: TD_DEP, TD_CLI1, TD_CLI2, TD_CLI3 ou TD_CLI4.

MARCAS ​

Tem como origem das informações, a tabela TT_MAR do Commerce

DERIVAÇÕES ​

Tem como origem das informações, as 4 derivações existentes na API Magazord (conforme INSERT disponibilizado acima)

ITENS VINCULADOS ÀS DERIVAÇÕES > ItemDerivacao ​

Tem como origem das informações, as tabelas TT_DIV e TT_SUB do Commerce com relacionamento para TD_DIV e TD_SUB respectivamente, das quais com base no relacionamento especificado no INSERT do item 2 serão retornados os itens associados a COR, TAMANHO, ÚNICO de acordo com seus respectivos registros de Divisão e Subdivisão.

ITENS DA DIVISÃO ​

ITENS DA SUBDIVISÃO ​

Esses itens deverão ser associados de forma automática ao executar o serviço do middleware onde conforme os registros são retornados da API Magazord, os mesmos terão suas respectivas associações com um identificador chave na tabela integracaoChave da Guarda.

Exemplo:

PRODUTO ​

Tem como origem das informações, a tabela TT_PRO com relacionamento com as tabelas TT_MAR, TD_DEP, TD_CL1, TD_CL2, TD_CL3, TD_CL4, TD_MED, TD_GRA, TD_DIV E TD_SUB

O produto é enviado a API conforme o seguinte modelo:

{

“codigo”: “00154604A”,

“nome”: “TENIS BEIRA RIO”,

“marca”: 7782,

“derivacoes”: [1,2],

“categorias”: [44],

“unidadeMedida”: “PC”,

“origemFiscal”: 0,

“produtoLoja”: [{“titulo”:””,”loja”:1}],

“modelo”: “TENIS BEIRA RIO 4174419 VERMELHO”,

“acompanha”: “”,

“palavraChave”: “TENIS”,

“peso”: 0,

“altura”: 0,

“largura”: 0,

“comprimento”: 0,

“ativo”: true,

“ncm”: “64029990”,

“cest”: “”

}

É obrigatório o envio das seguintes informações:

codigo       = [PRO.REFBAS];

nome         = [PRO.DESMAT];

marca        = [MAR.CODMAR];

origemFiscal = [PRO.ORIPRO];

derivacoes   = [1], [2], [3] ou [1,2];

categorias   = [CODTAB]; Tabela vinculada em Busca Categoria Em WSMiddleware

produtoLoja  = [IDLOJA]; De acordo com informado em ID Loja WSMiddleware

**Importante:**Marcas e Categorias deverão ser enviadas antes do envio do Produto.

GRADE ​

produtoDerivacao > Magazord

Tem como origem das informações, a tabela TT_GRA com relacionamento com as tabelas TT_PRO, TT_EAN, TD_GRA, TD_DIV, TD_SUB, TT_DIV e TT_SUB. Nesse processo, enviamos todos os itens da grade relacionados com os produtos enviados anteriormente, assim como as derivações que pertence a ele.

Exemplo:

Para o produto enviado no exemplo acima código: 00154604A

Enviaremos todos os itens da grade relacionados a ele:

O item da grade é enviado a API conforme o seguinte modelo:

{

“codigoProduto”: “00154604A”,

“codigo”: “08393487”,

“nome”: “TENIS BEIRA RIO”,

“peso”: 0,

“altura”: 0,

“largura”: 0,

“comprimento”: 0,

“ativo”: false,

“derivacoes”: [{

“derivacao”: 2,

“valor”: “37”

}, {

“derivacao”: 1,

“valor”: “VERMELHO”

}

],

“lojas”: [1]

}

É obrigatório o envio das seguintes informações:

codigoProduto = [PRO.REFBAS];

codigo        = [GRA.REFPRO];

nome          = [PRO.DESMAT];

derivacoes    = [1], [2], [3] ou [1,2];

produtoLoja   = [IDLOJA]; De acordo com informado em ID Loja WSMiddleware

Como no envio do produto informamos que possui “derivacoes”: [1,2], no envio dos itens da grade informaremos quais são as respectivas derivações, nesse caso acima:

“derivacoes”: [{

“derivacao”: 2,

“valor”: “37”

}, {

“derivacao”: 1,

“valor”: “VERMELHO”

}

],

1 = COR e 2 = TAMANHO

LISTA DE PREÇOS ​

Tem como origem das informações a tabela TT_PRE com relacionamento com as tabelas TT_GRA e TT_CFG.

Nesse processo foi considerado a tabela de preço padrão configurada para operação de venda em TT_CFG.FILPRE e TT_CFG.CODPRE e o envio do preço é realizado para cada item da grade dentro da filial.

É obrigatório o envio das seguintes informações:

produto     = [GRA.REFPRO];

tabelaPreco = [PRE.CODPRE];

precoVenda  = [PRE.PRECOV];

ESTOQUE ​

Tem como origem das informações a tabela TT_SAL com relacionamento com as tabelas TD_FIL, TD_MUL, TD_SUB, TT_SUB, TV_IPR, TT_GRA, TT_PRO e TT_CFG.

Nesse processo carregamos o saldo conforme TT_SAL, o qual faz o filtro pela filial e sub-estoque que será exportado para API, verifica-se a diferença para o estoque atual da API e gera a requisição para acerto de estoque conforme saldo atual no sistema.

É obrigatório o envio das seguintes informações:

produto      = [PRO_REFERENCIA];

deposito     = [1]; Não é devolvido o código do depósito pela API então enviamos 1

quantidade   = [PRO_SALDO];

tipo         = [1]; Físico  (2 – Previsto, 3 – Reservado, 4 – Virtual)

tipoOperacao = [0]; Ajuste  (1 – Entrada, 2 – Saída)

IMPORTAÇÃO DAS NOTAS FISCAIS ​

Nesse processo, consultamos o método listPedido que retornará uma lista de pedidos filtrando pelo período de alteração do status  “dataHoraUltimaAlteracaoSituacao” e “situacao in (6-Nota Fiscal Emitida, 7-Transporte, 8-Entregue, 20-Devolvido Estoque (Dep. 1), 21-Devolvido Estoque (Outros Dep.), 28-Nota Fiscal Denegada)”.

Com o retorno dos dados, realizamos uma nova consulta ao método getPedido informando o pedidoCodigo que por sua vez retornará o ID referente a sua respectiva Nota Fiscal.

Novamente consultamos um novo método getNotaFiscalById – Consulta Nota Fiscal pelo ID que enfim retorna o arquivo XML para que possamos realizar a sua importação para a base do Middleware e do Commerce.

Nesse ponto usamos o método já existente no middleware para realizar as importações, persistência dos dados e finalmente a gravação das informações da NF-e através do arquivo XML na base de dados do cliente.

2022052163