Integrar o SAP Business One com o Salesforce Commerce Cloud é ligar um ERP pensado para a média empresa a uma plataforma de comércio digital de grande escala. O Business One mantém artigos, preços, stock e documentos; o Salesforce B2C Commerce, nome técnico do Commerce Cloud, vende, recebe encomendas e devolve-as ao ERP.
O desafio é o desequilíbrio entre os dois sistemas: a plataforma Salesforce foi feita para muito tráfego e muitos visitantes anónimos, enquanto o Business One, em regra instalado na própria empresa, tem de ser protegido e não deve ser consultado a cada visita. Tratamos esta ligação dentro da nossa área de integração de SAP com ecommerce.
Este guia explica quando a combinação faz sentido, como se liga cada lado, que fluxos montar, que limites a documentação da Salesforce impõe e que lista validar antes de contratar.
Quando faz sentido ligar o SAP Business One ao Commerce Cloud?
Faz sentido quando a empresa já usa Business One como ERP e a loja online exige capacidade, marca e funcionalidades que uma plataforma mais simples não oferece. Os cenários típicos:
- Marcas com muito tráfego, campanhas sazonais e picos de visitas.
- Várias lojas, países ou marcas sobre o mesmo catálogo.
- Necessidade de personalização e de promoções avançadas na loja.
- Equipa de TI com capacidade para manter a ligação ou um parceiro que a faça.
Se a empresa é pequena e o tráfego é moderado, o custo e a complexidade do Commerce Cloud raramente se justificam. Nesse caso compare com plataformas mais leves antes de decidir.
Como se liga o Business One ao Commerce Cloud
A regra de ouro é nunca fazer o Business One responder diretamente a pedidos de visitantes da loja. O Business One alimenta a loja por cargas e eventos, e a loja serve os visitantes com os dados que já tem.
Do lado do Business One
O Business One expõe os dados pelo Service Layer, uma API REST com OData. O cliente inicia sessão com a base de dados da empresa, o utilizador e a palavra-passe, e recebe um identificador de sessão que acompanha os pedidos seguintes. A sessão expira por inatividade, pelo que a integração deve reutilizá-la e voltar a autenticar quando necessário. Cada sessão pertence a uma só base de dados de empresa.
O Service Layer corre normalmente na rede da empresa. Isso obriga a decidir como é que a camada de integração lá chega: VPN, lista de endereços permitidos ou um proxy inverso. Os campos personalizados (prefixo U_) variam por cliente e têm de ser levantados no início.
Do lado do Commerce Cloud
Segundo a documentação da Salesforce, a API do B2C Commerce (SCAPI) divide-se em duas famílias. As Shopper APIs são para os visitantes, usam o SLAS (OAuth 2.1), foram desenhadas para grande escala e são só de leitura, exceto cestos e encomendas. As Admin APIs são para a gestão de produtos, encomendas e inventário, usam um token do Account Manager e permitem leitura e escrita. É por estas últimas que a integração com o ERP trabalha.
| Aspeto | Shopper APIs | Admin APIs |
|---|---|---|
| Utilizador | Visitante da loja | Gestão e integrações |
| Autenticação | SLAS (OAuth 2.1) | Token Account Manager |
| Escrita | Só cestos e encomendas | Leitura e escrita |
| Tempo máximo | 10 segundos | 60 segundos |
A documentação refere ainda que os pedidos à SCAPI têm limite de ritmo e que os corpos de pedido e resposta têm limites de tamanho. Uma integração que envia o catálogo inteiro num só pedido está a pedir problemas.
Que fluxos montar
O sentido de cada fluxo e o seu dono devem ser definidos antes de qualquer desenvolvimento. Esta é a matriz de arranque:
| Fluxo | Sentido | Mecanismo | Cuidado |
|---|---|---|---|
| Artigos e preços | Business One para loja | Carga em lotes | Tamanho dos pedidos |
| Stock | Business One para loja | Eventos e lotes | Stock vendável |
| Encomendas | Loja para Business One | Fila | Duplicados |
| Clientes | Loja para Business One | Na compra | Dados fiscais |
| Estados e faturas | Business One para loja | Eventos | Envio de avisos |
Para os lotes, o Service Layer permite agrupar várias operações num só pedido, e as operações de um mesmo grupo são aplicadas em conjunto ou revertidas em conjunto. Isto é útil para encomendas com várias linhas, em que não se quer um documento a meio.
Limites e cuidados técnicos
- Paginação: o Service Layer devolve páginas de tamanho limitado e uma ligação para a seguinte; leituras longas têm de seguir essas páginas.
- Uma só entidade por pedido: cruzar dados de várias entidades faz-se do lado da integração.
- Ambientes: o Commerce Cloud tem instâncias de desenvolvimento, preparação e produção, e a integração deve ser testada em cada uma antes de ir a produção.
- Credenciais: o token do Account Manager e as credenciais do Business One devem estar num cofre, não no código.
- Migração: a Salesforce recomenda a SCAPI a quem vem da OCAPI, pelo que novas integrações devem partir já da SCAPI.
Passo a passo de um arranque seguro
Num projeto com este desequilíbrio entre sistemas, a ordem das tarefas importa tanto como a tecnologia. O percurso que recomendamos é gradual e começa por leitura.
- Levantar no Business One os artigos, as listas de preços, os armazéns e os campos personalizados que a loja vai usar.
- Criar as credenciais da integração nos dois lados, com permissões mínimas, e guardá-las num cofre.
- Carregar um subconjunto do catálogo para uma instância de preparação do Commerce Cloud e comparar com o Business One.
- Ativar o envio de encomendas de teste e validar o documento criado: linhas, IVA, portes e condições de pagamento.
- Simular indisponibilidade do Business One e confirmar que a fila guarda e reenvia sem duplicar.
- Passar a produção por fases, com um relatório diário de diferenças nas primeiras semanas.
Este percurso demora mais do que ligar tudo de uma vez, mas evita o cenário mais caro: descobrir os erros com clientes reais a comprar.
Riscos mais comuns
- Consultar o Business One a cada visita para mostrar stock, o que sobrecarrega o ERP.
- Encomendas duplicadas por reenvio sem chave única.
- Campos personalizados que existem num ambiente e não noutro.
- Sessões do Service Layer que expiram a meio de uma carga.
- Preços e promoções definidos em dois sítios e que deixam de coincidir.
Lista de verificação antes de contratar
- Está definido o que manda em artigos, preços, stock, clientes e promoções.
- O acesso da camada de integração ao Business One está resolvido e seguro.
- Os campos personalizados do Business One estão levantados e documentados.
- O desenho dos lotes respeita os limites de tamanho e de ritmo da SCAPI.
- Há instâncias de teste nos dois lados e dados realistas para validar.
- Cada falha tem dono, aviso e procedimento de recuperação.
- Existe reconciliação periódica entre encomendas e stock dos dois sistemas.
Como trabalhamos na Avafa
Começamos por mapear dados, responsáveis e casos de erro, e só depois escolhemos a camada de ligação. Pode ver como organizamos estes projetos na nossa página de integração de SAP com ecommerce.
Outras combinações com SAP
- SAP Business One com BigCommerce
- SAP Business One e SAP Commerce Cloud
- SAP Business One e Adobe Commerce
- SAP S/4HANA com Salesforce Commerce Cloud
- SAP Business One e WooCommerce
Perguntas frequentes
O Salesforce Commerce Cloud liga-se diretamente ao SAP Business One?
Não existe uma ligação pronta no Business One para este fim. Faz-se com uma camada intermédia que fala com o Service Layer de um lado e com a SCAPI do outro.
Que API do Commerce Cloud usa a integração?
As Admin APIs, que servem para gerir produtos, encomendas e inventário e usam um token do Account Manager. As Shopper APIs são para os visitantes da loja.
O Business One aguenta o tráfego da loja?
Não deve ser exposto a esse tráfego. A loja serve os visitantes com os dados que já recebeu, e o Business One só trata cargas e encomendas.
Como evito duplicar encomendas?
Enviando cada encomenda com uma chave única e fazendo a camada de integração recusar repetições dessa chave.
Posso começar só pelo stock e pelos preços?
Sim. São os dados que mais erros visíveis causam e permitem validar a ligação antes de tratar encomendas e clientes.