Portafolio / Plataforma de operación a la medida
De inventarios desconectados a una operación sincronizada.
Kreatup fabrica empaques en unidades y los vende en línea en paquetes. Diseñamos y desarrollamos una plataforma multiempresa que traduce producción en disponibilidad comercial, mantiene WooCommerce sincronizado en los dos sentidos y reúne ventas directas, clientes y cartera en una sola fuente de verdad.

01El reto
La fábrica cuenta unidades. La tienda vende paquetes.
Producción controla existencias caja por caja; la tienda WooCommerce vende paquetes de 25. Ese desfase, pequeño en apariencia, atravesaba toda la operación: el inventario vivía en la tienda, que sabía cuántos paquetes ofrecer pero no cuántas unidades había en bodega, cuántas estaban comprometidas con la web ni qué pasaba con las que no completaban un paquete.
Sobre esa base había que responder preguntas que no tenían una regla escrita: cuándo descontar una venta, qué hacer si WooCommerce repite un aviso, cómo atender a la vez los pedidos web y los que llegan por planta, teléfono o WhatsApp, y cómo separar la operación de otra empresa del grupo sin duplicar la plataforma.
Las preguntas sin regla
- 01¿Cuántas unidades hay físicamente en bodega?
- 02¿Cuántas están comprometidas con la tienda?
- 03¿Qué pasa con las que no completan un paquete?
- 04¿Se descuenta al crear el pedido o al pagarlo?
- 05¿Cómo no descontar dos veces el mismo pedido?
- 06¿Cómo alinear stock, precios, ofertas y escalas?
- 07¿Cómo sumar ventas de planta, teléfono y WhatsApp?
- 08¿Cómo separar Colombia y Estados Unidos?
Nuestro rol
Levantamiento de reglas de negocio, arquitectura de producto y modelo de datos, diseño de la experiencia, desarrollo full-stack, integración con WooCommerce y WordPress, automatizaciones, seguridad, estrategia multiempresa, pruebas, documentación y acompañamiento de la puesta en marcha.
02La regla
Una fórmula que ordenó toda la plataforma.
La tienda nunca ofrece un paquete incompleto.
Paquetes publicados = (unidades asignadas a la web − reservadas) ÷ tamaño del paquete, redondeado hacia abajo. Si producción tiene 1.000 unidades y asigna 540 a una tienda que vende paquetes de 25, la tienda publica 21. Las 15 unidades sobrantes quedan como residuo visible.
Alrededor de esa regla, un reparto de responsabilidades explícito: el panel manda sobre inventario y precios, WooCommerce sobre los pedidos web, la base de datos conserva la verdad y su historia, y la cola absorbe los fallos temporales.
El panel manda en stock y precioWoo manda en pedidosTodo queda en el libro
03Inventario operacional
Cada unidad sabe dónde está.

Total en producción, libre, asignado a la web, paquetes publicados, residuo, lo que reporta WooCommerce y el estado de sincronización, en una sola fila. El saldo no es un número que se sobrescribe: sale de un libro de movimientos que se puede reconstruir.

Entrada de producción, asignar o desasignar web, ajuste o merma. La vista previa recalcula con las mismas reglas del servidor en cada tecla: asignar 150 unidades más lleva el K01 de 181 a 187 paquetes y deja el residuo en 15. Lo imposible —asignar más de lo libre— se rechaza antes de guardar.

En empaqueskreatup.com la ficha vende paquetes de 25 y muestra el precio por unidad según la escala por volumen. Stock, precio, ofertas y escalas llegan desde el panel; nadie los edita en wp-admin.
04Sincronización bidireccional
Qué pasa cuando un pedido se paga.
WooCommerce no es una automatización externa: la integración vive en el núcleo del producto, con webhooks firmados, idempotencia por pedido, protección contra ecos y conciliación periódica.
WooCommerce
Pedidos webWebhook firmado
HMAC + idempotenciaPostgreSQL
Fuente de verdadQStash
Cola y reintentosConciliación
Panel ↔ tiendan8n
Avisos y extensiones
- 01
La tienda avisa
WooCommerce envía el pedido firmado. Si la firma no coincide, no entra.
- 02
Solo cuenta lo pagado
El inventario se descuenta al llegar a Procesando o Completado. Un pedido en espera de transferencia no toca el stock.
- 03
Una transacción por SKU
El movimiento se escribe dentro de una transacción con la fila del SKU bloqueada, así una venta, un ajuste y un webhook no se pisan.
- 04
Repetir no duplica
Si WooCommerce reenvía el mismo aviso, el pedido ya está aplicado y se ignora. Una cancelación devuelve unidades solo si antes se habían descontado.
- 05
La tienda se actualiza por cola
La base confirma primero; el nuevo stock viaja a WooCommerce por la cola. Si la tienda no responde, se reintenta a los 1, 5, 15, 60 minutos y, tras el quinto fallo, queda un aviso.
- 06
Conciliar
La conciliación compara panel y tienda; puede solo reportar o corregir. Una edición manual de stock en wp-admin se registra como aviso y se revierte.
Al lanzamiento, el 19 de septiembre de 2026, la conciliación registró 0 diferencias entre el panel y la tienda.
05Catálogo, precios y ventas
Un solo libro comercial, venda donde venda.

Precio por paquete y su equivalente por unidad, ofertas con vigencia y escalas por volumen. Una sola función de precio efectivo calcula igual para la tienda y para las ventas de planta, y los ajustes masivos por categoría muestran la vista previa antes de aplicarse.

Planta, teléfono o WhatsApp, con el mismo precio que en la tienda. La venta recibe numeración propia por empresa, descuenta el inventario al entregar —se cobre ya o a crédito— y puede copiarse a WooCommerce como pedido espejo sin descontar dos veces.

Pedidos web y ventas directas en la misma lista, con canal, estado de entrega y estado de pago. Lo que se cobró y lo que se debe se leen en la misma fila.
06Clientes y cartera
Una ficha por cliente, compre por donde compre.
Una compra web y una venta por WhatsApp del mismo cliente terminan en la misma ficha. La plataforma resuelve la identidad, protege el dato validado y lleva la cartera sin hojas de cálculo.
Woo → documento → correo → teléfono.
Cada compra se engancha a su cliente en ese orden. Teléfono, correo, documento y dígito de verificación del NIT se normalizan para que los duplicados no nazcan.
El dato validado no se pisa.
Si un checkout trae un dato distinto al guardado, la ficha conserva el suyo y deja un aviso. Las fichas duplicadas se fusionan moviendo pedidos, abonos, notas y direcciones, y gana el consentimiento más restrictivo.
El estado sale de los abonos.
Un abono sin pedido salda primero lo más antiguo; lo que sobra queda a favor. Una venta a crédito no supera el cupo sin autorización de administración, y la cobranza no se confunde con marketing.
07CRM operacional
Seguimiento, cobro y segmentos.

Seguimientos pendientes arriba, segmentos de dormidos, recompra, nuevos y morosos listos para automatizar, y la lista con canal, pedidos, unidades y total comprado. Todos los datos de la captura son ficticios.

Lo que está por cobrar, lo vencido y de quién, del vencimiento más antiguo al más nuevo. Los abonos se registran desde la ficha y recalculan el estado del pedido y de su espejo en la tienda.
08Operación multiempresa
Colombia y Estados Unidos, sin mezclarse.

Los usuarios se comparten, pero el acceso a cada empresa se concede de forma explícita. La empresa activa vive en la dirección —/co/inventario—, así un enlace siempre es inequívoco y se pueden tener las dos operaciones abiertas en pestañas distintas.

Catálogo, inventario, precios y moneda, clientes, cartera, credenciales de WooCommerce, tamaño de paquete, zona horaria y numeración por empresa. Los traslados se hacen en unidades —cada empresa empaca a su manera— y la salida y la entrada se guardan juntas o no se guarda ninguna.
09Arquitectura
Decisiones que se notan cuando algo falla.
Bloqueo por SKU.
Los cambios críticos usan transacciones y SELECT … FOR UPDATE, para que ventas, movimientos y webhooks no compitan por el mismo saldo.
La base confirma primero.
La tienda se actualiza por cola, con reintentos y conciliación. Un fallo de WooCommerce retrasa la publicación; no pierde inventario.
La empresa es obligatoria.
Los servicios exigen la empresa como parámetro, los índices únicos la incluyen y el acceso se verifica en un solo punto. Hay pruebas que siembran dos empresas y comprueban la separación.
Los eventos no se pierden.
Lo que sale hacia n8n se guarda primero en la base y se entrega después, firmado, con deduplicación y hasta diez reintentos. n8n extiende la operación sin quedar en su camino crítico.
10Trazabilidad
Qué pasó, quién lo hizo y cuál fue el saldo.

Movimientos, cola de sincronización, webhooks recibidos, conciliaciones y auditoría, en pestañas. Cada movimiento guarda autor, fecha, origen, referencia externa y resultado.

Stock bajo, sobreventa, fallos de sincronización, diferencias de conciliación, cambios hechos a mano en la tienda y conflictos de datos, en un solo lugar y con el siguiente paso a un clic.
11Al lanzamiento
La fotografía de la puesta en marcha.
Cifras documentadas el 19 de septiembre de 2026, al cargar la operación inicial. Son una fotografía del arranque, no el tamaño actual del catálogo.
- 32
- productos en catálogo
- 36
- SKU gestionados
- 95.150
- unidades cargadas
- 3.806
- paquetes publicados
- 0
- diferencias entre panel y tienda
12Alcance técnico
Lo construido, contado sobre el código.
Contado sobre el repositorio el 7 de octubre de 2026. Las pruebas cubren lo que más riesgo tiene: paquetes, reglas de inventario, precios, firmas, cifrado, permisos, migraciones, rutas por empresa y la integración con una tienda simulada.
- 24
- tablas de dominio y soporte
- 11
- migraciones versionadas
- 15
- rutas en la API versionada /api/v1
- 197
- pruebas, todas pasando
- 4
- roles con permisos validados en servidor
13Seguridad y gobierno de datos
Seguridad como parte de la operación.
Administración, producción, ventas y solo lectura tienen permisos distintos, y la matriz se valida siempre en el servidor. Las llaves de WooCommerce y n8n se guardan cifradas por empresa y nunca vuelven al navegador; se ven una sola vez, al crearlas o reemplazarlas.
La API propia entrega tokens que se muestran una vez, se guardan como hash, pertenecen a una empresa, tienen alcances específicos y se pueden revocar. Leer datos personales exige un alcance aparte y queda auditado, y los eventos que salen hacia automatizaciones no llevan documento ni dirección.
El modelo
- 01Sin registro público
- 02Bloqueo tras cinco intentos fallidos
- 03Cuatro roles, validados en servidor
- 04Credenciales cifradas en reposo
- 05Firmas HMAC de entrada y de salida
- 06Tokens con hash, alcance y revocación
- 07Exportaciones reservadas a administración
- 08Auditoría con valor anterior y nuevo
14El resultado
De una necesidad de inventario a una infraestructura.
Producción convertida en disponibilidad.
El resultado es una infraestructura operativa que traduce producción en disponibilidad comercial, mantiene la tienda sincronizada y le da al equipo control y trazabilidad desde un solo lugar.
Lo que antes dependía de personas y pasos manuales en WordPress ahora son reglas verificables y repetibles, sobre una base preparada para más empresas, monedas y canales.
SincronizadoTrazableListo para crecer
beleafdesign
¿Tu tienda y tu operación cuentan cosas distintas?
Si produces en una unidad y vendes en otra, o tu inventario vive en un plugin que nadie se atreve a tocar, podemos modelar las reglas de tu negocio y convertirlas en software que las aplique siempre igual.
Hablemos de tu proyecto