Por qué la hicimos así
Un e-commerce de comida tiene un enemigo silencioso: la inconsistencia. Stock que se vende dos veces, precios que cambian entre el carrito y el pago, comprobantes aprobados a medias. Por eso la decisión central fue que el servidor es la única autoridad: precios, stock, cupones y estados se calculan y validan en la base de datos, dentro de transacciones atómicas. El navegador solo muestra — nunca decide cuánto vale nada.
La reserva de stock funciona como en una boletería: al confirmar el pedido, el stock queda tomado por un tiempo configurable según el método de pago; si el pago no llega, un cron lo libera solo. El webhook de Mercado Pago verifica la firma criptográfica de cada notificación, consulta el pago real a la API y es idempotente: un pago jamás se acredita dos veces ni se pierde, incluso si llega tarde sobre un pedido vencido.
El otro pilar es el modelo multi-ciudad con tiers: la misma tienda atiende retiro en Colón y envíos por zona en Rosario, con inventarios independientes, y cada cliente ve los precios de su categoría (minorista o mayorista) con mínimos de compra configurables por producto y por pedido.
También incluye
- Cupones de descuento con validación anti-enumeración
- "Avisame cuando vuelva" con emails automáticos al reponer stock
- Compra como invitado para retiro; direcciones guardadas para envío
- Pedidos inmutables: precios, nombres y dirección congelados al comprar
- Gestor de usuarios con tiers y solicitudes de cuenta mayorista
- Emails de estado del pedido + botones de WhatsApp pre-armados
- Row Level Security en toda la base como segunda línea de defensa
- Suite de tests de integración contra la base real (95+ tests)




