Uma cadeia regional com 18 lojas físicas lança Shopify em março. Em junho, o responsável de IT descobre que tem três "verdades" para o stock: o Shopify, o POS de loja e uma folha Excel que o armazém mantém "por precaução". O problema não é o Shopify. É a ausência de uma fonte única de verdade entre canais — e essa ausência foi criada no momento em que alguém decidiu "ligar os sistemas" sem decidir qual deles manda.
O volume de negócios do comércio a retalho em Portugal cresceu 4,7% em 2024 (INE, 2024). Mais transações, mais SKUs, mais canais. A pressão sobre o backoffice não diminui com o crescimento; agrava-se. E quando o backoffice não está preparado para ser a fonte de verdade, o crescimento online cria caos operacional em vez de receita.
Este artigo defende uma posição clara: a integração entre MAXIRETAIL e Shopify só funciona se for tratada como uma redefinição do modelo operacional — não como uma ligação técnica entre dois sistemas. A componente técnica é a parte mais fácil. O que falha é sempre a governação dos dados.
O erro que acontece antes de ligar o Shopify ao backoffice
A decisão de "integrar" é tomada antes de se definir qual dos dois sistemas manda. Quem é a fonte de verdade para o stock? Quem publica o preço? Quem fecha o pedido fiscal? Quando essa hierarquia não está documentada e assinada internamente, o resultado é previsível: o Shopify passa a ter stock próprio, o POS tem stock próprio, e o backoffice faz reconciliações manuais todas as noites — ou deixa de as fazer.
Ligar o Shopify ao backoffice sem definir a hierarquia de dados é como instalar dois contabilistas na mesma empresa sem dizer quem assina o balanço.
A hierarquia que ninguém documenta
Numa integração bem desenhada com MAXIRETAIL, o backoffice é sempre a fonte de verdade. O Shopify é um canal de venda — não um sistema de gestão. O catálogo de artigos (referências, descrições, imagens técnicas) é criado e mantido no MAXIRETAIL e publicado no Shopify via API. O stock disponível para venda online é calculado no MAXIRETAIL — com reservas de loja, encomendas pendentes e stock de segurança já deduzidos — e comunicado ao Shopify em tempo real ou em janelas configuráveis. O preço de venda ao público, incluindo promoções e campanhas sazonais, parte do backoffice; o Shopify não gere preços de forma autónoma. Quando uma encomenda Shopify é confirmada, entra no MAXIRETAIL como documento de venda, gera movimento de stock e desencadeia o fluxo fiscal (faturação eletrónica conforme DL 28/2019, com ATCUD).
Esta hierarquia parece óbvia no papel. Na prática, é violada sistematicamente quando a equipa de e-commerce tem acesso direto ao Shopify e começa a fazer ajustes de stock "para não perder vendas". Configure permissões. Audite alterações manuais no Shopify com periodicidade semanal nas primeiras oito semanas após go-live. Não é paranóia — é o único mecanismo que detecta a deriva antes de ela se tornar irreversível.
Arquiteturas de integração: as três opções reais
Não existe uma única forma de ligar MAXIRETAIL ao Shopify. Existem três padrões com trade-offs distintos. A escolha depende do volume de transações, da complexidade do catálogo e da capacidade interna de IT.
| Arquitetura | Mecanismo | Latência de stock | Complexidade de implementação | Adequação |
|---|---|---|---|---|
| Ficheiro plano agendado (FTP/SFTP) | Export CSV/XML do MAXIRETAIL → import Shopify via script | 15 min a 4 horas | Baixa | Catálogos estáveis, menos de 500 SKUs, volume baixo |
| API REST bidirecional | Webhooks Shopify → endpoint MAXIRETAIL; MAXIRETAIL publica stock via API Shopify | Menos de 60 segundos | Média | Catálogos dinâmicos, promoções frequentes, BOPIS |
| Middleware iPaaS (Make, Boomi, Zapier Enterprise) | Plataforma de integração gere filas, retry, transformação de dados | Configurável (segundos a minutos) | Alta — mas mais resiliente a falhas | Multi-loja, multi-armazém, mais de 5 000 SKUs |
A opção de ficheiro plano é subestimada. Para uma cadeia de retalho especializado com catálogo estável — óptica, ferramentas, vestuário de coleção — uma sincronização a cada 30 minutos é suficiente e elimina a complexidade de gerir webhooks. O erro é aplicar a arquitetura API bidirecional a tudo porque "é mais moderno". Modernidade sem necessidade é custo de manutenção que ninguém orçamentou.
Webhooks Shopify: o que falha e como prevenir
A API Shopify funciona bem em condições normais. Falha em três situações que raramente são antecipadas no desenho. Em picos de tráfego — Black Friday, saldos de janeiro — o Shopify pode atrasar ou descartar webhooks quando o volume de eventos é muito elevado; implemente uma fila de mensagens (RabbitMQ, Azure Service Bus) entre o Shopify e o MAXIRETAIL para garantir que nenhum pedido se perde. Quando o servidor MAXIRETAIL demora mais de 5 segundos a responder, o Shopify marca o webhook como falhado e tenta novamente; configure o endpoint para responder imediatamente com HTTP 200 e processar a lógica de forma assíncrona. Por fim, a Shopify deprecia versões de API com aviso prévio — defina um calendário de revisão semestral da versão utilizada antes que a depreciação aconteça em produção.
Stock disponível para venda online: o cálculo que o Shopify não faz
O Shopify mostra o stock que lhe é comunicado. Não sabe que aquele par de sapatos está reservado para um cliente de loja que ligou de manhã, nem que o armazém tem 12 unidades mas 4 estão em quarentena por devolução. O MAXIRETAIL calcula o stock disponível para venda online como:
Stock físico − Reservas de loja − Encomendas pendentes de outros canais − Stock de segurança configurado por canal
Este valor — e não o stock físico bruto — é o que deve ser publicado no Shopify. Configurar este cálculo corretamente é a diferença entre vender o que existe e vender o que não existe.
Faturação eletrónica e SAF-T: o que não pode falhar
Uma encomenda Shopify paga online é, para efeitos da Autoridade Tributária, uma venda sujeita a faturação eletrónica nos termos do DL 28/2019. O MAXIRETAIL, certificado pela AT, emite a fatura com ATCUD e comunica via SAF-T (Portaria 195/2020). Há cinco pontos que a integração tem de garantir sem exceção.
A encomenda Shopify entra no MAXIRETAIL com os dados fiscais do cliente (NIF, morada de faturação) antes de qualquer movimento de stock. O MAXIRETAIL emite a fatura e envia o PDF ao cliente por email — não o Shopify, que não é software certificado pela AT. O ATCUD gerado pelo MAXIRETAIL é único por documento; não pode haver duplicação por retransmissão de webhooks. As devoluções online geram nota de crédito no MAXIRETAIL, não um simples ajuste de stock no Shopify. E o ficheiro SAF-T mensal inclui todas as vendas online — verifique que o MAXIRETAIL não as exclui por terem origem num canal externo.
O Shopify não é software certificado pela AT. Quem emite a fatura é o backoffice. Sempre.
Este ponto parece elementar. Na prática, há implementações em que o Shopify emite um "recibo" próprio e o backoffice emite uma fatura separada — dois documentos para a mesma transação, com numeração diferente. A AT não aceita esta duplicidade. Defina no contrato com o parceiro de implementação quem emite o documento fiscal e como se garante a unicidade. Coloque-o por escrito antes de assinar o projecto.
RGPD e dados de clientes: onde o Shopify guarda o quê
O Shopify armazena dados pessoais de clientes nos seus servidores — que podem estar fora da UE dependendo do plano e da configuração. O RGPD (Regulamento UE 2016/679), transposto pela Lei 58/2019, exige que o responsável pelo tratamento saiba onde os dados estão e com que base legal são tratados. Configure o Shopify para armazenamento de dados na UE (disponível nos planos Shopify Plus com configuração explícita). O MAXIRETAIL, como sistema de backoffice, é o repositório principal de dados de clientes para efeitos de CRM e fidelização; o Shopify deve ser configurado para não duplicar perfis — use o NIF ou email como chave de deduplicação. O direito de apagamento (artigo 17.º RGPD) tem de ser executado em ambos os sistemas; documente o procedimento antes do go-live, não depois da primeira reclamação.
Cenários de operação: BOPIS, ship-from-store e devoluções
BOPIS: comprar online, levantar na loja
O BOPIS (Buy Online, Pick Up In Store) é o cenário que mais stresses a integração. O cliente compra no Shopify, escolhe uma loja para levantamento, e espera confirmação em minutos. A encomenda Shopify chega ao MAXIRETAIL com a loja de levantamento identificada. O MAXIRETAIL verifica stock nessa loja específica — não no stock global — e, se disponível, reserva o artigo e envia confirmação ao cliente. O POS da loja mostra a encomenda pendente de levantamento sem intervenção manual do responsável de loja. No momento do levantamento, o POS regista a saída e fecha o documento fiscal.
O quarto passo é onde a maioria das implementações falha. Se o responsável de loja tiver de consultar um email ou um sistema separado para saber que tem uma encomenda para levantar, o processo degrada-se rapidamente. O POS tem de mostrar as encomendas BOPIS pendentes no ecrã principal, sem que o operador precise de as procurar. Este requisito tem de estar especificado — não assumido.
Ship-from-store: o armazém que já existe
Para cadeias com lojas bem distribuídas geograficamente, o ship-from-store reduz custos de transporte e prazos de entrega. O MAXIRETAIL pode configurar regras de atribuição de encomendas por proximidade geográfica, stock disponível e capacidade de expedição de cada loja. O Shopify recebe a confirmação de expedição com o número de seguimento — gerado pela loja, não pelo armazém central. A gestão de stock centralizada versus fragmentada tem implicações diretas aqui: ship-from-store só funciona se o stock de cada loja for visível e fiável em tempo real no backoffice.
Devoluções online: o fluxo inverso que ninguém desenha bem
O cliente devolve um artigo comprado online — na loja ou por correio. O MAXIRETAIL tem de emitir nota de crédito referenciada à fatura original (obrigação fiscal), registar o artigo devolvido em quarentena ou stock disponível conforme o estado, atualizar o stock no Shopify se o artigo voltar a estar disponível para venda, e processar o reembolso — que pode ser por Shopify Payments, MB Way, transferência ou crédito em loja. Configure o fluxo de devoluções antes do go-live. É o fluxo com mais variações e o que mais frequentemente fica por especificar nos projectos de integração.
Matriz de decisão: qual arquitetura para o seu perfil
| Perfil do retalhista | Volume SKU | Lojas físicas | Arquitetura recomendada | Prioridade de configuração |
|---|---|---|---|---|
| Retalho especializado (óptica, ferramentas, vestuário) | Menos de 500 | 1–5 | Ficheiro plano agendado (30 min) | Hierarquia de preços + faturação AT |
| Cadeia regional alimentar ou especializado | 500–3 000 | 5–20 | API REST bidirecional | BOPIS + stock por loja + devoluções |
| Franchising ou multi-insígnia | 1 000–10 000 | Mais de 20 | Middleware iPaaS + API | Deduplicação de clientes + SAF-T consolidado |
| Retalho com dynamic pricing ou promoções diárias | Qualquer | Qualquer | API REST com webhooks de preço | Sincronização de preços em menos de 5 minutos |
O que funciona na prática
Stock de segurança diferenciado por canal
Uma cadeia de retalho de vestuário com 12 lojas no Norte do país pode configurar um stock de segurança de 2 unidades por referência para o canal online — independentemente do stock físico total. Se uma referência tem 3 unidades em armazém, o Shopify mostra 1 disponível. Isto elimina a situação de vender online o que está reservado para reposição de loja. O custo é uma taxa de conversão ligeiramente menor no online; o benefício é zero ruturas de stock com impacto em loja. Para a maioria das cadeias regionais, o trade-off é favorável.
Catálogo online como subconjunto do catálogo total
Nem todos os artigos do backoffice devem estar no Shopify. Uma empresa de distribuição de material de construção com presença no corredor Lousada/Paços pode publicar online apenas os artigos com stock regular e margem suficiente para absorver custos de expedição — filtrando no MAXIRETAIL por categoria, fornecedor ou margem mínima. O Shopify recebe apenas esse subconjunto. Isto evita que o catálogo online fique com artigos descontinuados, sem stock ou com preços desactualizados. É uma decisão de negócio, não uma limitação técnica — e tem de ser tomada antes de ligar os sistemas.
KPIs de integração monitorizados no backoffice
Configure um dashboard no Qlik Sense com os indicadores críticos da integração: taxa de sucesso de webhooks, tempo médio de sincronização de stock, encomendas Shopify sem fatura gerada, devoluções pendentes de nota de crédito. Estes KPIs não são métricas de negócio — são métricas de saúde da integração. Sem eles, os problemas só são detetados quando o cliente reclama.
A integração não falha de repente. Degrada-se lentamente — um webhook perdido aqui, um stock desatualizado ali — até ao dia em que o responsável de IT recebe 40 reclamações num fim de semana.
Implementação: sequência sem atalhos
- Defina a hierarquia de dados (semana 1): documente quem é a fonte de verdade para stock, preço, catálogo e dados de cliente. Assine internamente. Não avance sem este documento.
- Mapeie o catálogo (semanas 2–3): identifique quais os artigos a publicar no Shopify, quais os campos obrigatórios (EAN, descrição, imagem, IVA, peso para expedição) e quais os que faltam no backoffice. Limpe os dados antes de ligar.
- Configure a faturação AT (semana 4): valide com o parceiro MAXIRETAIL que as encomendas Shopify geram fatura com ATCUD e que o SAF-T as inclui. Faça um teste com uma encomenda real antes de abrir ao público.
- Implemente e teste o fluxo de devoluções (semana 5): simule uma devolução em loja e uma por correio. Verifique nota de crédito, movimento de stock e reembolso.
- Active a monitorização (semana 6): configure alertas para webhooks falhados, stock negativo no Shopify e encomendas sem fatura. Defina um responsável por cada alerta — não um grupo, uma pessoa.
- Go-live faseado (semanas 7–8): abra com um subconjunto do catálogo. Valide durante duas semanas antes de publicar o catálogo completo.
Para franchisados com backoffice partilhado, a sequência tem variações importantes — veja como o backoffice MAXIRETAIL gere franchisados antes de definir a arquitetura de integração.
O que o MAXIRETAIL resolve que um conector genérico não resolve
Existem conectores Shopify genéricos no mercado. Funcionam para ERPs generalistas que não têm lógica de retalho incorporada. O MAXIRETAIL já tem POS, backoffice de loja, fidelização e gestão de promoções integrados — o que muda a natureza da integração. As promoções configuradas no MAXIRETAIL (desconto por quantidade, campanha sazonal, preço de sócio) são publicadas no Shopify sem reconfiguração; um conector genérico não sabe que um artigo tem preço diferente para cliente fidelizado. O BOPIS é nativo — o POS de loja já tem o conceito de encomenda para levantamento, não é um workaround. E a faturação AT é gerida pelo MAXIRETAIL, que é software certificado; o conector genérico deixa esta responsabilidade para o retalhista resolver por fora — o que, na prática, significa que fica por resolver até à primeira inspecção.
Para cadeias com gestão de promoções complexa, veja também gestão de promoções e sazonalidade em cadeia de lojas — o tema intersecta diretamente com a sincronização de preços para o Shopify. A integração com KORA Inventory Suite é relevante quando o fulfillment online é feito a partir de um armazém dedicado ou de uma dark store: o picking, o packing list e a expedição ficam integrados com o mesmo backoffice que alimenta o Shopify.
O erro que os manuais não referem
Há um padrão de falha que vemos repetido em implementações de retalho omnicanal em Portugal: a equipa de e-commerce e a equipa de loja nunca falam entre si durante o projecto. O IT faz a integração técnica, o e-commerce configura o Shopify, e o responsável de loja descobre o BOPIS no dia do go-live. O resultado é um processo tecnicamente correto que operacionalmente não funciona — porque o operador de loja não sabe o que fazer quando aparece uma encomenda para levantamento no POS.
Inclua o responsável de loja — ou o chefe de armazém, no caso de ship-from-store — nas sessões de especificação. Não nas de validação técnica: nas de especificação. É ele que identifica os casos de exceção que o IT não antecipa: o cliente que quer levantar metade da encomenda hoje e metade amanhã, o artigo que chegou danificado e não pode ser entregue, a promoção que o Shopify mostra mas que a loja não reconhece. Estes casos não são raros — são o quotidiano de qualquer loja com volume razoável.
As tendências de retalho omnicanal para 2026 apontam para uma convergência crescente entre canais físicos e digitais. Quem não resolver a governação dos dados agora vai ter de a resolver com mais lojas, mais SKUs e mais clientes a reclamar.
Quem trata a integração MAXIRETAIL-Shopify como uma ligação de sistemas vai ter três "verdades" para o stock dentro de seis meses. Quem a trata como uma redefinição do fluxo de venda vai ter um canal online que funciona — e um backoffice que ainda consegue ser auditado.
Fontes
- INE — Instituto Nacional de Estatística. Índice de Volume de Negócios no Comércio a Retalho, 2024. Disponível em: www.ine.pt
- Decreto-Lei n.º 28/2019, de 15 de fevereiro — Regras aplicáveis ao processamento de faturas e outros documentos fiscalmente relevantes. Diário da República, 1.ª série, n.º 32.
- Portaria n.º 195/2020, de 13 de agosto — Comunicação mensal dos elementos dos ficheiros SAF-T (PT) à Autoridade Tributária e Aduaneira. Diário da República, 1.ª série, n.º 157.
- Regulamento (UE) 2016/679 do Parlamento Europeu e do Conselho (RGPD), de 27 de abril de 2016. Jornal Oficial da União Europeia, L 119.
- Lei n.º 58/2019, de 8 de agosto — Execução na ordem jurídica nacional do RGPD. Diário da República, 1.ª série, n.º 151.
- Shopify API Reference — versioning e webhooks. Disponível em: shopify.dev/docs/api
Perguntas frequentes
O que é a "fonte única de verdade" numa integração Shopify com MAXIRETAIL?
É a definição clara de qual sistema controla cada tipo de dado. No modelo correto, o MAXIRETAIL é sempre a fonte de verdade: gere o catálogo, o stock disponível para venda (já deduzidas reservas e encomendas pendentes) e os preços. O Shopify funciona como canal de venda, não como sistema de gestão. Sem esta hierarquia documentada, surgem múltiplas "verdades" — stock no Shopify, stock no POS, stock em Excel — criando caos operacional.
Qual é a diferença entre stock físico e stock disponível para venda online?
O stock físico é o total de unidades no armazém. O stock disponível para venda online é calculado subtraindo reservas de loja, encomendas pendentes de outros canais e stock de segurança. O Shopify deve receber sempre este valor ajustado, não o stock bruto. Caso contrário, vende produtos que não estão realmente disponíveis, causando devoluções e insatisfação do cliente.
Quais são as três arquiteturas de integração possíveis?
Ficheiro plano agendado (CSV/XML via FTP, latência 15 min a 4 horas, baixa complexidade); API REST bidirecional com webhooks (menos de 60 segundos, complexidade média); middleware iPaaS como Make ou Boomi (configurável, alta complexidade mas mais resiliente). A escolha depende do volume de transações, complexidade do catálogo e capacidade interna de IT.
Quando é adequada a integração por ficheiro plano?
Para cadeias de retalho especializado com catálogo estável (óptica, ferramentas, vestuário de coleção), menos de 500 SKUs e volume baixo de transações. Uma sincronização a cada 30 minutos é suficiente e elimina a complexidade de gerir webhooks. É uma opção subestimada que reduz custos de manutenção sem comprometer a operação.
O que acontece quando o Shopify falha em comunicar um pedido via webhook?
Em picos de tráfego (Black Friday, saldos), o Shopify pode descartar webhooks se o volume for muito elevado. Implementar uma fila de mensagens (RabbitMQ, Azure Service Bus) entre Shopify e MAXIRETAIL garante que nenhum pedido se perde. O endpoint deve responder imediatamente com HTTP 200 e processar a lógica de forma assíncrona para evitar timeouts.
Como evitar que o backoffice fique desatualizado com alterações manuais no Shopify?
Configure permissões restritivas e audite alterações manuais no Shopify com periodicidade semanal nas primeiras oito semanas após go-live. A equipa de e-commerce não deve ter acesso direto para ajustar stock "para não perder vendas". Esta auditoria detecta a deriva antes de se tornar irreversível e compromete a integridade dos dados.
Qual é a obrigação legal de uma encomenda Shopify em Portugal?
Uma encomenda Shopify paga online é uma venda sujeita a faturação eletrónica nos termos do Decreto-Lei 28/2019. O MAXIRETAIL deve gerar automaticamente o documento de venda, movimento de stock e faturação eletrónica com ATCUD. Esta integração não é opcional — é obrigatória para conformidade fiscal.
