Uma camada de integração personalizada, composta por dois plugins, que liga o nopCommerce ao Powerall, a plataforma de gestão empresarial neerlandesa que reúne oficina, armazém, planeamento, administração e vendas num único sistema para mais de 6.000 utilizadores. Criada para a On-Site BV, parceira de soluções nopCommerce sediada em Roterdão e especializada em comércio B2B complexo, a integração permite que os seus clientes façam funcionar uma montra nopCommerce sobre o Powerall como fonte única de verdade - sem que ninguém tenha de manter o catálogo duas vezes.
O desafio
O Powerall é o dono dos dados de produto, e é dono deles em formato de ERP: ficheiros de propriedades de grupo, propriedades técnicas, variantes e registos de país que nunca foram modelados para uma loja online. Uma importação genérica ou achatava tudo isso em campos de texto inutilizáveis, ou obrigava um programador a codificar à mão um mapeamento para cada novo grupo de produtos. A On-Site precisava de algo que os seus consultores pudessem configurar cliente a cliente, e não de um script feito de uma só vez.
Uma arquitetura de dois plugins
Dividimos o trabalho por uma linha limpa, para que cada lado possa evoluir e ser implementado por si só:
- Nop.Plugin.Misc.Powerall.Import - a camada de mapeamento e de modelação de dados que transforma as exportações do Powerall num catálogo nopCommerce em condições
- Nop.Plugin.Misc.Powerall.Integration - a ligação em tempo real que mantém os dois sistemas em sintonia e devolve as encomendas
Ambos seguem a arquitetura padrão de plugins do nopCommerce - entidades de domínio com a sua própria camada de dados e migrações, serviços, fábricas de modelos, componentes de vista e vistas de administração - pelo que nada se infiltra no núcleo e as atualizações continuam a ser rotina.
Powerall.Import: mapeamento orientado por comportamentos
Em vez de um mapa de campos fixo, o plugin de importação assenta em Comportamentos de Importação configuráveis: regras reutilizáveis que descrevem como um dado do Powerall deve aterrar no nopCommerce.
- Os Comportamentos de Propriedade de Produto decidem, propriedade a propriedade, se um valor do Powerall se torna um atributo de especificação, um atributo de produto que gera variantes ou simples conteúdo do produto
- Os metadados de categoria são derivados do ficheiro de propriedades de grupo, pelo que a estrutura de categorias e os metadados de SEO saem dos dados do ERP em vez de serem escritos de novo à mão
- As especificações e as variantes são mapeadas em conjunto, mantendo os dados técnicos filtráveis na página de catálogo e as combinações compráveis corretas na página de produto
- Um menu de Comportamentos dedicado na administração apresenta as regras como cartões, para que seja um consultor - e não um programador - a configurar o mapeamento
- Os dados são validados antes de a importação correr, e todas as definições incluem recursos de texto localizados e descrições em linha
Powerall.Integration: manter os dois sistemas em sintonia
- Sincronização inicial para pôr uma loja nova totalmente em linha com o Powerall numa só passagem
- Tarefa de sincronização agendada com lógica de filtragem, para que as execuções recorrentes toquem apenas nos produtos que efetivamente se qualificam, em vez de percorrerem todo o catálogo
- Sincronização orientada por eventos ligada aos eventos do nopCommerce, para alterações que não podem esperar pela próxima execução agendada
- Sincronização das encomendas de volta para o Powerall, incluindo um botão de sincronização manual na administração para encomendas individuais que precisem de um empurrão
- Mapeamento de países entre os registos de país do Powerall e os países do nopCommerce, com tratamento defensivo de dados de ERP incompletos
- Um caminho de desinstalação completo que remove definições, esquema e tarefas de forma limpa - importante para uma integração distribuída por várias lojas de clientes
Experiência de administração e observabilidade
Ambos os plugins acrescentam as suas próprias entradas de menu e ecrãs de configuração à administração do nopCommerce. A integração escreve um registo de sincronização detalhado, com vistas de registo dedicadas, para que, quando uma encomenda ou um produto não aparece onde devia, a resposta esteja a um clique de distância em vez de exigir um pedido de suporte e uma sessão no servidor.
Base técnica
Criado para o nopCommerce 4.80 sobre ASP.NET Core, empacotado como dois plugins independentes com as suas próprias definições, valores predefinidos, migrações e localização. O resultado é reutilizável: a On-Site pode implementar a mesma integração para qualquer cliente que use o Powerall e configurá-la loja a loja através da administração, em vez de bifurcar o código.
O resultado
Uma integração em produção que dá à On-Site BV uma resposta repetível à pergunta «conseguem ligar a nossa loja online ao Powerall?» - dados de produto detidos pelo ERP a chegar como um catálogo nopCommerce devidamente estruturado e filtrável, encomendas a fluir de volta automaticamente, e todo o mapeamento configurável por um consultor em vez de reconstruído em código a cada implementação.