Integrar o SAP S/4HANA com o Magento é fazer com que o ERP e a loja partilhem o mesmo estado de pedidos, stock e preços, sem ninguém a copiar dados entre ecrãs. O SAP continua a ser a fonte de verdade; o Magento mostra o catálogo, recebe encomendas e devolve-as ao ERP para faturação e expedição.
Na prática, esta ligação resolve três problemas que se repetem: encomendas que chegam tarde ao ERP, stock que a loja mostra e o armazém não tem, e preços que mudam no SAP mas não na loja. Na Avafa acompanhamos estes projetos dentro da nossa área de integração de SAP com ecommerce.
Este guia explica quando a integração compensa, como se desenha, como tratar pedidos, stock e preços, que limites técnicos existem e que lista validar antes de contratar.
Quando faz sentido ligar o SAP S/4HANA ao Magento?
Faz sentido quando o ERP já gere preços, stock e clientes e a loja deixou de ser um canal pequeno. Quatro situações pedem a integração:
- As encomendas online são reintroduzidas à mão no SAP.
- O stock é atualizado por ficheiro, uma ou duas vezes por dia, e há vendas sem disponibilidade.
- Existem tabelas de preços, descontos por cliente ou condições de pagamento no ERP.
- A equipa de armazém e de faturação depende das encomendas da loja para trabalhar.
Se a loja tem poucas referências e os preços são iguais para todos, comece por um fluxo simples e só automatize o resto quando houver volume que o justifique.
Que arquitetura usar entre o SAP e o Magento?
O desenho mais seguro coloca uma camada de integração entre os dois sistemas, em vez de ligar o Magento diretamente ao SAP. Essa camada recebe, transforma, guarda em fila e reenvia, e é onde se vê o que falhou e porquê.
O SAP S/4HANA disponibiliza os dados por serviços OData. Quando se escreve no SAP, o serviço pede normalmente um token CSRF, obtido com um GET prévio que leva o cabeçalho x-csrf-token com o valor fetch. Nas versões em cloud, o acesso de sistemas externos define-se com acordos de comunicação, e o método de autenticação recomendado para produção é o OAuth 2.0, não o utilizador e palavra-passe.
Do lado do Magento, a ligação usa a API REST. A documentação da Adobe para o Commerce, cuja base técnica o Magento Open Source partilha, descreve pontos de acesso assíncronos: o pedido é gravado numa fila de mensagens e um consumidor executa-o mais tarde. Confirme sempre a versão e os módulos instalados na sua loja antes de assumir que estão disponíveis.
Como tratar pedidos, stock e preços
Cada um destes três dados tem um ritmo e um risco diferentes, por isso não devem partilhar o mesmo fluxo.
| Dado | Sentido | Modo recomendado | Risco principal |
|---|---|---|---|
| Encomendas | Magento para SAP | Evento, em fila | Duplicados |
| Stock | SAP para Magento | Evento e reconciliação | Venda sem stock |
| Preços | SAP para Magento | Lote ou evento | Preço desatualizado |
| Estados de expedição | SAP para Magento | Evento | Cliente sem informação |
Pedidos
A encomenda deve ser enviada ao SAP com uma chave única da loja. Se o envio falhar e for repetido, o SAP reconhece a chave e não cria um segundo documento. Os estados de volta (em preparação, expedido, faturado) devem seguir o caminho inverso, para o cliente não ter de ligar a perguntar.
Stock
O stock vendável não é o stock físico. Convém decidir se a loja mostra o disponível do SAP, descontadas as reservas, e por armazém. O Magento permite trabalhar com várias origens de stock, mas só compensa se o SAP também as distinguir.
Preços
Se os preços dependem do cliente, defina quem calcula: o SAP devolve o preço final ou o Magento aplica regras próprias. Misturar as duas abordagens é a causa mais comum de preços diferentes entre o orçamento e a loja.
Limites técnicos a conhecer
Os pontos de acesso em lote não confirmam sucesso, apenas receção. Segundo a documentação da Adobe, a resposta devolve um identificador de lote (bulk_uuid) e o estado “accepted”, mesmo quando o item falha depois no processamento. A integração tem de consultar o estado da operação e registar o que não correu bem.
- Os pedidos em lote aceitam POST, PUT e DELETE, mas não GET.
- Nas instalações próprias, os consumidores de fila dependem de RabbitMQ e de tarefas cron configuradas.
- O código da vista de loja na rota define onde se aplica a alteração; sem ele, aplica-se à vista predefinida.
- Importar descrições e preços por idioma exige decidir antes se a alteração vale para todas as vistas.
Lote ou eventos: como decidir
A sincronização por lote é mais simples e a por eventos é mais rápida; a escolha depende do dado, não da preferência técnica. Esta é a matriz de decisão que usamos no levantamento.
| Pergunta | Se a resposta é sim | Modo |
|---|---|---|
| Muda várias vezes por dia? | Atraso custa vendas | Eventos |
| Afeta o que o cliente vê agora? | Erro é visível | Eventos |
| Muda por campanha ou época? | Atraso é aceitável | Lote |
| Há milhares de linhas de uma vez? | Carga pesada | Lote em fila |
Passo a passo de um arranque seguro
Um arranque bem feito é gradual: primeiro leitura, depois escrita, e só no fim os dados que mexem em dinheiro.
- Ligar em modo de leitura: trazer artigos, stock e preços do SAP para o Magento num ambiente de staging.
- Comparar, para uma amostra de referências, o que a loja mostra com o que o SAP indica.
- Ativar o envio de encomendas de teste e confirmar que o documento no SAP está completo: moradas, IVA, portes e condições de pagamento.
- Simular falhas de propósito, como o SAP indisponível, para ver se a fila guarda e reenvia sem duplicar.
- Entrar em produção por fases, com acompanhamento diário das primeiras semanas e um relatório de diferenças.
Riscos e como evitá-los
- Dados mestre sujos no SAP: unidades, IVA e descrições incompletas aparecem logo na loja.
- Sem monitorização: um fluxo pára e só se descobre quando um cliente reclama.
- Falta de ambiente de testes: alterar preços em produção para testar é um erro caro.
- Personalizações do Magento que mudam o formato dos dados e partem a ligação nas atualizações.
- Ninguém responsável pelo fluxo depois de entrar em produção.
Lista de verificação antes de contratar
- Quem manda em cada dado está definido por escrito.
- Os artigos têm SKU único igual nos dois sistemas.
- Existe um ambiente de testes do SAP e um de staging do Magento.
- Está decidido como se tratam falhas e quem as corrige.
- Os preços por cliente têm uma regra de cálculo única.
- Há reconciliação periódica de stock e de encomendas.
- A versão do Magento e das extensões está suportada e atualizada.
Como trabalhamos na Avafa
Começamos por mapear os dados e os responsáveis antes de falar de ferramentas. Depois propomos a camada de ligação, os fluxos prioritários e o plano de testes. Pode ver como organizamos estes projetos na nossa página de integração de SAP com ecommerce.
Outras plataformas ligadas ao SAP
- SAP S/4HANA com Adobe Commerce
- SAP S/4HANA como retaguarda do PrestaShop
- SAP S/4HANA com BigCommerce
- SAP S/4HANA com WooCommerce
- SAP Business One e Magento: mapeamento de pagamentos
Perguntas frequentes
O Magento liga-se diretamente ao SAP S/4HANA?
Pode ligar-se, mas não é o mais aconselhável. Uma camada intermédia trata filas, repetições e registo de erros, e evita que a lógica fique dentro de um dos dois sistemas.
Qual é o primeiro fluxo a automatizar?
Normalmente o stock e as encomendas, porque são os que mais erros visíveis causam. Preços por cliente e clientes novos seguem depois, quando a ligação base estiver estável.
Preciso de RabbitMQ?
Para usar os pontos de acesso assíncronos e em lote numa instalação própria, a documentação da Adobe indica que o RabbitMQ deve estar instalado e configurado. Em serviços geridos, esta parte pode vir tratada pela plataforma.
Como evito encomendas duplicadas?
Enviando cada encomenda com uma chave única e fazendo o SAP recusar repetições dessa chave. Assim, repetir um envio falhado não cria um segundo documento.
Quem deve ser o dono dos preços?
Em regra, o SAP. A loja mostra o que o ERP calcula; se a loja aplicar regras próprias por cima, os preços começam a divergir da faturação.