ePantry — Tienda Griega de Alimentación, Reconstruida de WooCommerce a Laravel
Resumen
ePantry vende alimentos con nombre y lugar: legumbres, pasta, harinas, hierbas, salsas y miel de una docena de granjas y talleres del norte de Grecia, enviados desde Kerkini. La antigua tienda funcionaba con WordPress y WooCommerce. Se sustituyó por un escaparate en Laravel 12 diseñado desde cero, en línea desde el 8 de septiembre de 2026, con el catálogo, las categorías, el contenido editorial, el historial de pedidos y los ajustes de la tienda migrados desde la base de datos de WooCommerce, para que no se perdiera nada de lo que necesitaban los clientes y la tienda.
El diseño se inspira en un estante de despensa. Las fotos de producto son bodegones recortados sobre blanco, así que la interfaz se mantiene discreta bajo ellas: fondo blanco, una retícula continua de líneas finas en lugar de tarjetas flotantes, un único color de acento. Cada tarjeta, página de producto y línea del carrito lleva una etiqueta de estante con el peso neto, el precio por kilo o litro, el productor y la región. Los productores tienen sus propias páginas, el antiguo blog sigue como diario de recetas y guías de despensa, y la tienda acepta pago contra reembolso o transferencia a cualquiera de tres bancos, para que los clientes paguen sin comisión por transferencia.
Retos
Una reconstrucción debe conservar todo lo que ya funciona: 238 productos con sus fotos, categorías y ajustes de inventario, el blog, el historial de pedidos y cada ajuste perfeccionado con los años, trasladados desde WooCommerce sin huecos. Algunos datos antiguos habrían roto la nueva tienda si se hubieran copiado al pie de la letra: productos vendidos sin recuento de existencias, borradores y una regla de existencias bajas que habría marcado todo el catálogo. Y una tienda de alimentación tiene sus propias reglas: los alimentos envasados que se venden al peso deben mostrar su precio por kilo, las mayúsculas griegas pierden sus tildes y el terracota de la marca, con un contraste de 3,96:1 sobre blanco, es demasiado claro para llevar texto.
Soluciones
Unos comandos de importación leen directamente la base de datos de WooCommerce y la trasladan al nuevo esquema —productos, categorías, productores, imágenes, entradas, pedidos y ajustes, cada uno con su antiguo identificador para la trazabilidad— y traducen las particularidades de la antigua tienda en lugar de copiarlas: las existencias sin recuento siguen a la venta, los borradores siguen siendo borradores y el umbral de existencias bajas se queda en dos. La etiqueta de estante coloca el precio unitario junto a cada precio de venta, como exige la ley griega. Un tono más oscuro del color de la marca lleva todo el texto, y el griego se escribe en minúsculas y CSS lo pasa a mayúsculas para que las tildes caigan correctamente, algo que comprueba una prueba automática. El movimiento es una secuencia de GSAP y apariciones discretas al desplazarse, y el sonido opcional nunca empieza sin un gesto. Las páginas de productos, productores y recetas llevan datos estructurados, y el llms.txt de la tienda se genera desde la base de datos, de modo que el umbral de envío gratuito que indica ya no puede quedar desfasado.


