Integrar a Salsify com o Magento é fazer chegar à loja o conteúdo de produto preparado na plataforma de experiência de produto (PXM): descrições, atributos, imagens e ativos. Pode fazer-se com um conector existente ou com um serviço próprio que usa as APIs REST do Adobe Commerce e do Magento Open Source. A escolha depende do volume do catálogo e do controlo que a empresa quer ter.
Para a empresa, o ganho está em publicar uma só vez e ver o conteúdo atualizado na loja sem retrabalho. Sem essa ligação, cada correção na plataforma de conteúdo tem de ser repetida no Magento, e as diferenças acumulam-se. Na Avafa tratamos esta ligação na nossa área de integração de PIM com ecommerce.
Neste guia vê as duas formas de ligar, o que a documentação oficial diz sobre as APIs assíncronas do Adobe Commerce, como tratar produtos configuráveis, que dados vão em cada sentido, os riscos e uma lista de verificação antes de arrancar.
Como se liga a Salsify ao Magento?
Liga-se por um conector ou por um serviço próprio. Os dois escrevem no Adobe Commerce ou no Magento Open Source através da API; a diferença está em quem mantém o mapeamento e o tratamento de erros.
Segundo o comunicado de lançamento da Salsify, de 26 de agosto de 2021, existe um conector que liga o Salsify ProductXM ao Adobe Commerce e ao Magento Open Source e permite enviar o conteúdo de produto para a loja. O comunicado indica que, depois de o conteúdo ser publicado, as alterações são sincronizadas automaticamente, e que o conector foi desenvolvido com a Blue Acorn iCi. O comunicado não especifica a frequência da sincronização nem outros tipos de dados, pelo que isso deve ser confirmado antes de assumir o âmbito.
Quando o conector não cobre o seu modelo de dados, o caminho é um serviço próprio. Aí o Adobe Commerce oferece as APIs REST, incluindo os endpoints assíncronos e em bloco, que são os adequados a catálogos grandes.
Como funcionam as APIs assíncronas do Adobe Commerce?
Colocam cada pedido numa fila de mensagens e processam-nos mais tarde, um a um. Segundo a documentação oficial, o endpoint assíncrono interceta o pedido, coloca-o na fila e atribui-lhe um identificador único; depois um consumidor processa as mensagens.
- suportam os métodos POST, PUT, DELETE e PATCH; o método GET não é suportado;
- nas instalações próprias e no PaaS, a rota coloca o segmento async antes da versão da API, por exemplo no caminho dos produtos;
- a resposta traz o identificador do lote e, para cada item, um estado, que neste momento é sempre aceite;
- é preciso arrancar o consumidor de operações assíncronas, com o comando indicado na documentação, para que a fila seja processada.
O ponto de atenção é o estado «aceite». Significa que o pedido entrou na fila, não que o produto foi criado. A documentação diz que o campo de erros é, por agora, sempre falso e que os erros reais devolvem-se como exceções normais da API; por isso o serviço tem de consultar depois o estado do lote através do identificador e não pode assumir sucesso.
Outro ponto é o âmbito da loja. Na documentação, a rota inclui o código da vista de loja ou a palavra que designa todas as lojas. Sem código de loja, as atualizações aplicam-se apenas à loja por omissão. Se o seu catálogo tem várias línguas ou vistas, isto decide onde cada texto aparece.
Como tratar produtos configuráveis?
Cria-se o produto pai e, depois, os produtos simples que correspondem a cada variante. O tutorial oficial do Adobe Commerce sobre produtos configuráveis com a API REST usa como exemplo uma t-shirt cinzenta em três tamanhos: um produto configurável, um produto simples ligado para cada tamanho e uma opção de texto para o cliente. O tutorial tem cinco passos e todas as chamadas exigem um token de administrador.
Para a Salsify, isto implica decidir como se representam as variantes. Se a plataforma de conteúdo tem um produto por tamanho, o serviço agrupa-os no pai; se tem um produto pai com variantes, o serviço desdobra-os. Em ambos os casos, o código de cada variante tem de ser estável.
Conector ou serviço próprio?
O conector serve quando o seu modelo se ajusta ao dele; o serviço próprio serve quando precisa de controlo. Esta é a matriz que usamos para decidir.
| Critério | Conector | Serviço próprio |
|---|---|---|
| Arranque | Mais rápido | Exige desenvolvimento |
| Modelo de dados | Fechado ao do conector | À medida |
| Tratamento de erros | Definido pelo fornecedor | Definido por si |
| Manutenção | Do fornecedor | Da equipa ou da agência |
Comece por perguntar ao fornecedor o que o conector cobre. Se faltar algo essencial, como variantes complexas ou várias vistas de loja, o serviço próprio evita contornos improvisados.
Que dados vão em cada sentido?
Cada dado deve ter um único sistema mestre.
| Dado | Sistema mestre | Sentido |
|---|---|---|
| Descrições e atributos | Salsify | Salsify para loja |
| Imagens e ativos | Salsify | Salsify para loja |
| Categorias | Salsify ou ERP | Origem para loja |
| Preços e stock | ERP | ERP para loja |
| Encomendas | Magento | Loja para ERP |
O erro mais comum é deixar a plataforma de conteúdo escrever preços ou stock. Se o ERP os governa, esses dados devem ter o seu próprio circuito.
Que riscos tem esta integração e como se evitam?
| Risco | Onde aparece | Prevenção |
|---|---|---|
| Consumidor parado | Produtos que não chegam | Monitorizar a fila |
| Sucesso assumido | Lotes com erros | Consultar o estado do lote |
| Âmbito de loja errado | Texto na vista errada | Indicar a vista em cada pedido |
| Variantes instáveis | Produtos duplicados | Código estável por variante |
| Dois mestres do mesmo dado | Textos diferentes | Matriz de mestres escrita |
O consumidor parado é o risco mais traiçoeiro, porque os pedidos continuam a ser aceites mas nada é processado. A documentação refere que é preciso arrancar o consumidor de operações assíncronas; num ambiente em produção, isso tem de estar sob supervisão e com alerta.
Os custos escondidos também contam: manutenção do mapeamento quando surgem atributos, testes a cada atualização do Adobe Commerce e acompanhamento da fila. Devem entrar no orçamento desde o início.
Como verificar que um lote foi processado?
Guarda-se o identificador devolvido em cada pedido e consulta-se depois o estado da operação. A documentação do Adobe Commerce refere esse identificador como a forma de encontrar o estado nos endpoints de estado das operações. O serviço deve registar o identificador, a hora e o número de itens enviados.
Uma rotina simples resolve a maioria dos casos: enviar o lote, esperar, consultar o estado e reenviar apenas os itens que falharam. Se a fila acumular atrasos, o alerta deve disparar antes de o cliente reparar que um produto novo não aparece na loja. Este controlo é pouco visível, mas é o que separa uma integração fiável de uma que só funciona nos dias bons.
Lista de verificação antes de arrancar
- Cada dado tem um sistema mestre escrito e aceite.
- Existe um identificador de produto comum, que não muda depois de criado.
- Está decidido se se usa o conector ou um serviço próprio.
- O consumidor de operações assíncronas está ativo e monitorizado.
- O serviço consulta o estado de cada lote e não assume sucesso.
- A vista de loja de cada texto está definida.
- Há um ambiente de teste com um lote representativo, incluindo configuráveis.
- Existe registo de erros e alguém que o lê todos os dias.
Se três ou mais respostas forem negativas, o projeto ainda não está pronto para desenvolvimento.
Como trabalhamos na Avafa
Começamos por mapear dados e responsáveis e só depois decidimos entre conector e serviço próprio. Desenhamos a consulta de estado dos lotes e a monitorização da fila desde o início. Para ver como abordamos estes projetos, comece pela página de integração de PIM com ecommerce.
Perguntas frequentes
A Salsify tem conector para o Magento?
Segundo o comunicado de lançamento de 2021, existe um conector para o Adobe Commerce e o Magento Open Source. Confirme com a Salsify o que cobre na sua versão.
O que significa o estado aceite numa API assíncrona?
Que o pedido entrou na fila. Não garante que o produto foi criado; é preciso consultar o estado do lote depois.
Preciso de um middleware?
Não necessariamente. Um serviço próprio pode bastar para dois sistemas. O middleware compensa quando a cadeia inclui ERP, marketplaces e outros canais.
Como crio um produto configurável?
Cria-se o produto pai e um produto simples por variante, e ligam-se. O tutorial oficial do Adobe Commerce mostra os passos com um exemplo em três tamanhos.
Posso começar por uma parte do catálogo?
Pode, e recomendamos. Uma marca ou uma categoria permite validar o mapeamento antes de abranger tudo.
Guias relacionados do mesmo cluster
Se a plataforma de destino ainda não está decidida, estes guias comparam a Salsify com outras opções: