Dos instalaciones PrestaShop distintas que venden los mismos productos desde el mismo stock físico: el caso es corriente. Un sitio para particulares y un sitio profesional, una tienda francesa y una tienda alemana en dominios separados, o una marca principal y un outlet.
Mientras el stock no esté compartido, cada tienda cree disponer de la totalidad. La primera sobreventa llega en la semana.
Tres arquitecturas posibles
El multitienda nativo. Una sola instalación, varias tiendas lógicas. El stock se comparte de forma nativa, la cuestión ni se plantea. Es la solución más simple, y a menudo se descarta sin razón: muchos proyectos parten con dos instalaciones separadas cuando el multitienda habría bastado.
Dos instalaciones sincronizadas. Cada una tiene su base, su tema, sus módulos, y un mecanismo mantiene la coherencia del stock. Más pesado, pero necesario en cuanto los dos sitios deben evolucionar de forma independiente o pertenecer a entidades jurídicas diferentes.
Un sistema tercero maestro. Un ERP o un programa de gestión posee el stock, y las dos tiendas lo consumen. Es la arquitectura más sana en cuanto existe un tercer canal, tienda física o marketplace.
Antes de construir una sincronización, comprueba que la primera opción no sirva. Elimina el problema en lugar de gestionarlo.
Un maestro, uno solo
Es la decisión fundacional, y la sincronización bidireccional ingenua es la trampa clásica.
Si las dos tiendas pueden modificar el stock y reenviárselo mutuamente, obtienes bucles: la tienda A decrementa, envía a B, B aplica y reenvía a A, que decrementa de nuevo. Los stocks divergen en pocas horas, y en el mal sentido.
Existen dos modelos correctos.
El modelo maestro-esclavo: una tienda posee la verdad, la otra la recibe. Simple, pero las ventas del esclavo deben remontar, lo que supone un canal distinto para los decrementos.
El modelo de stock centralizado: ninguna de las dos posee el stock, lo hace un repositorio externo. Cada venta desencadena un decremento en ese repositorio, que redistribuye. Es más robusto, y supone una pieza adicional.
Sincronización Multi-TiendaSincronice catálogo, stock y precios entre varias tiendas PrestaShop€99,00
La frecuencia, y la ventana de sobreventa
Toda sincronización periódica deja una ventana durante la cual las dos tiendas tienen una visión diferente. Esa ventana se calcula.
Si sincronizas cada quince minutos y vendes tres unidades por hora de una referencia, la ventana representa de media menos de una unidad: el riesgo es bajo. En una venta flash a cincuenta unidades por hora, la misma ventana deja pasar una docena de pedidos de más.
De ahí tres ajustes. Una frecuencia alta, de cinco a quince minutos, en las referencias de rotación rápida. Una sincronización por eventos en lugar de periódica en los productos críticos: cada venta desencadena inmediatamente la propagación. Y un margen de seguridad, reservando una o dos unidades por tienda, que absorbe la ventana sin complejidad adicional.
La correspondencia de referencias
Punto técnico que decide la viabilidad. Los identificadores de producto nunca son los mismos entre dos instalaciones: el producto 421 en la tienda A no es el producto 421 en la tienda B.
La correspondencia debe apoyarse por tanto en una clave de negocio estable, presente en ambos lados y nunca modificada. La referencia de producto sirve, a condición de estar rellenada en todas partes y de ser única. El código de barras es una alternativa sólida.
Dos trampas. Las combinaciones deben tener su propia referencia, si no la sincronización se hace a nivel de producto y el stock por talla sigue siendo falso. Y los productos presentes en un solo lado deben ignorarse explícitamente, no tratarse como errores en cada ciclo.
Lo que no se sincroniza
La tentación es alinearlo todo. Es un error, y hace frágil el sistema.
No sincronices los precios si tus dos tiendas tienen posicionamientos diferentes, que es casi siempre la razón de su existencia separada. No sincronices las descripciones traducidas ni los metadatos SEO, so pena de crear contenido duplicado entre dos dominios. No sincronices los pedidos ni los clientes, salvo necesidad explícita: son datos con fuerte carga regulatoria.
El perímetro mínimo que funciona: el stock, la disponibilidad y, eventualmente, el estado activo o inactivo del producto.
Los conflictos, y la recuperación tras un incidente
Dos situaciones a prever desde el diseño.
El conflicto. Los dos lados han cambiado entre dos sincronizaciones. La regla debe estar escrita: o el maestro gana siempre, o gana el valor más bajo, lo que es prudente con stock. Una regla no escrita se convierte en una regla aleatoria.
La avería. ¿Qué pasa si la sincronización se detiene durante seis horas sin que nadie lo note? Tres protecciones: un registro consultable de las sincronizaciones con su resultado, una alerta en caso de fallo repetido, y una resincronización completa que pueda lanzarse manualmente.
Esta última es la que se olvida sistemáticamente, y la que se necesita con urgencia un sábado por la mañana.
Controlar
Una desviación de stock no se ve, se constata en el momento de la sobreventa. Un control semanal comparando las cantidades de ambos lados, referencia por referencia, lleva unos minutos y revela las derivas antes de que cuesten un pedido anulado.
El módulo Sincronización Multitienda resuelve esta cadena en PrestaShop 8 y 9: correspondencia por referencia o código de barras a nivel de combinaciones, sincronización del stock con sentido y frecuencia configurables, registro de operaciones y resincronización completa bajo demanda.