Duas instalações PrestaShop distintas que vendem os mesmos produtos a partir do mesmo stock físico: o caso é corrente. Um site para o grande público e um site profissional, uma loja portuguesa e uma loja espanhola sob domínios separados, ou uma marca principal e um outlet.
Enquanto o stock não for partilhado, cada loja julga dispor da totalidade. A primeira sobrevenda chega na primeira semana.
Três arquiteturas possíveis
O multiloja nativo. Uma única instalação, várias lojas lógicas. O stock é partilhado nativamente, a questão não se coloca. É a solução mais simples, e é muitas vezes afastada sem razão: muitos projetos partem para duas instalações separadas quando o multiloja teria chegado.
Duas instalações sincronizadas. Cada uma tem a sua base, o seu tema, os seus módulos, e um mecanismo mantém a coerência do stock. Mais pesado, mas necessário assim que os dois sites devem evoluir de forma independente ou pertencer a entidades jurídicas diferentes.
Um sistema terceiro mestre. Um ERP ou um software de gestão detém o stock, e as duas lojas consomem-no. É a arquitetura mais sã assim que existe um terceiro canal, loja física ou marketplace.
Antes de construir uma sincronização, verifique que a primeira opção não serve. Ela suprime o problema em vez de o gerir.
Um mestre, um só
É a decisão fundadora, e a sincronização bidirecional ingénua é a armadilha clássica.
Se as duas lojas podem modificar o stock e devolvê-lo uma à outra, obtém ciclos: a loja A decrementa, envia a B, B aplica e devolve a A, que decrementa de novo. Os stocks divergem em poucas horas, no mau sentido.
Existem dois modelos corretos.
O modelo mestre-escravo: uma loja detém a verdade, a outra recebe. Simples, mas as vendas da escrava têm de subir, o que supõe um canal distinto para os decrementos.
O modelo de stock centralizado: nem uma nem outra detém o stock, um referencial externo fá-lo. Cada venda dispara um decremento nesse referencial, que redistribui. É mais robusto, e supõe uma peça suplementar.
Sincronização Multiloja: Módulo PrestaShop 8 e 9Sincronize catálogo, stock e preços entre várias lojas PrestaShop99,00€
A frequência, e a janela de sobrevenda
Toda a sincronização periódica deixa uma janela durante a qual as duas lojas têm uma visão diferente. Essa janela calcula-se.
Se sincroniza a cada quinze minutos e vende três unidades por hora de uma referência, a janela representa em média menos de uma unidade: o risco é baixo. Numa venda relâmpago a cinquenta unidades por hora, a mesma janela deixa passar uma dúzia de encomendas a mais.
Daí decorrem três afinações. Uma frequência elevada, cinco a quinze minutos, nas referências de rotação rápida. Uma sincronização por evento em vez de periódica nos produtos críticos: cada venda dispara imediatamente a propagação. E uma margem de segurança, reservando uma ou duas unidades por loja, que absorve a janela sem complexidade adicional.
A correspondência das referências
Ponto técnico que decide a viabilidade. Os identificadores de produto nunca são os mesmos entre duas instalações: o produto 421 na loja A não é o produto 421 na loja B.
A correspondência deve portanto apoiar-se numa chave de negócio estável, presente dos dois lados e nunca modificada. A referência de produto serve, desde que esteja preenchida em todo o lado e seja única. O código de barras é uma alternativa sólida.
Duas armadilhas. As variações devem ter a sua própria referência, senão a sincronização faz-se ao nível do produto e o stock por tamanho continua errado. E os produtos presentes só de um lado devem ser explicitamente ignorados, não tratados como erros a cada ciclo.
O que não se sincroniza
A tentação é alinhar tudo. É um erro, e torna o sistema frágil.
Não sincronize os preços se as suas duas lojas têm posicionamentos diferentes, o que é quase sempre a razão da sua existência separada. Não sincronize as descrições traduzidas nem os metadados SEO, sob pena de criar conteúdo duplicado entre dois domínios. Não sincronize as encomendas nem os clientes, salvo necessidade explícita: são dados com forte carga regulamentar.
O perímetro mínimo que funciona: o stock, a disponibilidade, e eventualmente o estado ativo ou inativo do produto.
Os conflitos, e a retoma após incidente
Duas situações a prever desde a conceção.
O conflito. Os dois lados mudaram entre duas sincronizações. A regra deve estar escrita: ou o mestre ganha sempre, ou o valor mais baixo prevalece, o que é prudente em stock. Uma regra não escrita torna-se uma regra aleatória.
A avaria. O que acontece se a sincronização parar durante seis horas sem que ninguém repare? Três proteções: um registo consultável das sincronizações com o seu resultado, um alerta em caso de falha repetida, e uma ressincronização completa disparável manualmente.
Esta última é a que se esquece sistematicamente, e a de que se precisa com urgência num sábado de manhã.
Controlar
Um desvio de stock não se vê, constata-se no momento da sobrevenda. Um controlo semanal a comparar as quantidades dos dois lados, referência por referência, leva alguns minutos e revela as derivas antes que custem uma encomenda anulada.
O módulo Sincronização Multiloja trata esta cadeia no PrestaShop 8 e 9: correspondência por referência ou código de barras ao nível das variações, sincronização do stock com sentido e frequência parametrizáveis, registo das operações e ressincronização completa a pedido.