Como integrar várias instâncias Mirakl com uma única instância de várias lojas do Adobe Commerce

Introdução

A plataforma de marketplace Mirakl pode ser integrada à plataforma Adobe (Magento) Commerce para criar um marketplace online de ponta a ponta. Mirakl fornece um conector Magento para acelerar o processo de integração cobrindo todos os fluxos de processo padrão do marketplace. Este conector permite sincronizar automaticamente os dados entre Mirakl e Magento. Ele também fornece um exemplo de módulo de front-end demonstrando como você pode personalizar páginas para oferecer recursos do Marketplace desenvolvidos pela Mirakl.

Por padrão, o conector é projetado para integrar uma única instância Mirakl com uma única instância Magento. No entanto, para um lançamento em vários países, pode haver uma situação em que cada país tenha sua própria instância Mirakl, mas uma única instância do Magento atende a todos os países com várias vitrines. Nesse cenário, o comportamento do conector padrão deve ser substituído para integrar cada instância Mirakl com sua instância de armazenamento Magento específica. Implementamos isso com sucesso para um de nossos clientes em seu marketplace B2B. As seguintes alterações são feitas para dar suporte a esse cenário. Consulte a figura 1.1 para obter mais detalhes sobre como várias instâncias Mirakl funcionam com uma única instância de várias lojas do Adobe Commerce.

Fig 1.1 Diagrama de arquitetura de várias instâncias Mirakl com uma única instância de várias lojas do Adobe Commerce

Alterações globais de configuração:

URL e chave secreta separados devem ser configurados em um nível de exibição de loja para cada instância Mirakl. Conseguimos isso substituindo a classe auxiliar de configuração para configurar os pontos finais da API no nível de visualização da loja. A classe Console responsável por manipular scripts de sincronização foi substituída para manipular scripts de sincronização específicos de exibição de loja com base no ID da loja sendo passado como parâmetro.

sincronização de taxonomia:

A sincronização de taxonomia entre Magento e Mirakl é obtida usando a chamada da API Mirakl H01. Esta API é invocada para exportar categorias Magento para Mirakl. Mas com uma implementação de várias lojas, temos que garantir que cada loja Magento exporte a taxonomia apenas para sua instância Mirakl específica. Conseguimos isso substituindo a classe auxiliar do conector Mirakl em questão para mapear a instância Mirakl para sua loja Magento específica.

Importação de produto:

Semelhante à sincronização de taxonomia, as importações de produtos também exigem mapeamento da instância Mirakl para a vitrine específica no Magento. A seguir

Os seguintes componentes foram substituídos para conseguir isso:

• Classes de comando para importar os produtos delta para a respectiva visualização da loja onde o ID da loja foi passado como parte dos comandos cli.

• Plugins de interceptação, usados para definir o ID da loja durante o processo de importação do produto, tivemos que definir a categoria raiz.

Importar oferta:

A API OF51F é usada para importar ofertas Mirakl para Magento. Com uma implementação de várias lojas, o script de sincronização de importação de ofertas deve ser substituído para importar ofertas específicas de lojas.

As tabelas OOTB foram modificadas para mapear ofertas com o ID da loja, os Custom Cron Jobs foram escritos para atender às importações de ofertas específicas da loja com base no ID da loja que estava sendo passado como parâmetro.

Importação de atributo:

O conector Mirakl usa a chamada da API PM01 para exportar os atributos do produto do Magento para o Mirakl. Para a implementação multistore, substituímos os scripts de sincronização para garantir que os atributos de uma loja Magento específica sejam exportados apenas para a instância Mirakl mapeada.

Importar listas de valores de atributos:

O conector Mirakl usa a chamada da API VL01 para exportar a lista de valores de atributos do Magento para o Mirakl. Para a implementação multistore, substituímos os scripts de sincronização para garantir que as listas de valores de uma loja Magento específica sejam exportadas apenas para a instância Mirakl mapeada.

Importação da loja:

As lojas Mirakl são importadas para o Magento usando a API S20. Para a implementação multistore, substituímos os scripts de sincronização do S20 para sincronizar informações de loja específicas da loja do Mirakl para a visualização da loja mapeada.

Informação de envio:

Não há trabalhos Cron específicos disponíveis no conector Mirakl para importar e armazenar informações de envio no banco de dados Magento. Os valores são recuperados usando SH01/SH02 em diferentes pontos da jornada do usuário onde as taxas de envio deveriam ser exibidas.

Os módulos front-end foram estendidos e personalizados para recuperar as taxas de envio em diferentes pontos, como PLP, PDP, carrinho, checkout, histórico de pedidos e páginas de detalhes do pedido. Com base na solicitação específica da loja, as cobranças de frete foram recuperadas da instância Mirakl mapeada e exibidas.

Sincronização de pedidos:

A API OR01 é usada para criação de pedidos e a API OR11 para sincronização de status de pedidos entre Mirakl e Magento.

As páginas a seguir foram estendidas e customizadas para atender a implementação específica da loja.

• Página de confirmação do pedido

• Página de histórico de pedidos

• Página de detalhes do pedido

O fluxo de colocação de pedidos foi modificado para exportar o pedido específico da loja para a instância Mirakl mapeada. O conector Mirakl e as classes principais do Magento foram personalizadas para cobrir a criação de pedidos nas respectivas instâncias Mirakl. Os módulos front-end foram estendidos e substituídos para abordar a exibição de status de pedido específico da loja no histórico de pedidos e nas páginas de detalhes do pedido.

Criação e Sincronização de Cotações:

O conector Mirakl não implementa os cenários de cotação B2B. Estendemos a funcionalidade do conector para introduzir novos recursos para criação, atualização e sincronização de cotações específicas da loja do Magento para a instância Mirakl mapeada e vice-versa.

Sete chamadas de API foram implementadas, de Q01 a Q07, para cobrir a funcionalidade completa de cotação do markteplace B2B.

Configurações de preço, moeda e localidade

O Magento fornece configurações específicas de localidade e moeda da loja. Como tínhamos várias instâncias Mirakl, cada uma tinha sua própria localidade, moeda e preços específicos.

As classes de configuração do auxiliar do conector foram substituídas para configurar a sincronização específica da loja.

Alterações na grade de administração

Os trabalhos Cron relacionados à grade de administração foram estendidos e personalizados para oferecer suporte a detalhes de sincronização específicos da loja. Funciona bem para o armazenamento padrão, mas com armazenamentos adicionais, esta seção teve que ser estendida para exibir as atualizações de sincronização específicas do armazenamento.

Módulo Front-end

Componentes de front-end relacionados a Breadcrumbs, PLPs, PDPs, minicarrinho, carrinho, checkout, histórico de pedidos, detalhes do pedido, criação de cotação e páginas de detalhes de cotação foram personalizados para lidar com a funcionalidade de várias lojas.

Encerramento

A chave para uma estratégia de implementação bem-sucedida é poder mapear as vitrines do Magento para instâncias específicas do Mirakl. Usamos o ID da loja como uma maneira única de identificar os dados relacionados a uma determinada loja. Todo o código do conector relacionado à sincronização de dados entre Magento e Mirakl foi impactado neste cenário de várias lojas. Exceto pelo fluxo de cotação, não tivemos que escrever novas classes, estender e personalizar nos ajudou a atingir nosso objetivo. Nossa implementação cobriu a integração de duas instâncias Mirakl com uma instância Magento. Mas o mesmo design pode ser estendido para integrar mais instâncias Mirakl. Embora não tenhamos visto nenhum problema de desempenho devido a isso, ainda precisa ser explorado se o desempenho for afetado à medida que aumentamos o número de vitrines exclusivas, cada uma com sua própria instância Mirakl.

Sobre o autor

Siddhartha Shankar é Arquiteto Técnico da McFadyen Digital. Ele ama todas as coisas de marketplace e tecnologia. Viajante ávido e amante da música, ele se hospeda com a esposa e a filha de seis anos em Bangalore. Sid fez parte de alguns grandes projetos de implementação de eCommerce/marketplace durante seu longo período na McFadyen Digital.