Un catálogo que PrestaShop no podía modelar.
Un sello de música para dormir y bienestar gestiona un catálogo híbrido: audio digital —paisajes sonoros para dormir, sesiones de meditación, composiciones originales— junto a soportes físicos y accesorios de marca. La experiencia del cliente vive o muere en una sola interacción: ¿puedo oír suficiente de esta pista para decidir si la compro, luego añadirla al carrito junto a la edición en vinilo y pagar en un solo flujo?
PrestaShop 1.7 estándar no modelaba nada de eso. Conocía productos y precios. No conocía pistas de audio con cortes de muestra configurables. No conocía a compositores y narradores como entidades de contenido de primera clase. No sabía que el equipo de marketing necesitaba reorganizar la página de inicio un martes sin abrir un editor de código.
El encargo fue directo: construir la superficie de e-commerce que encaja con este negocio, no el negocio que encaja con la plataforma.
Cinco módulos que hicieron a PrestaShop fluido en el dominio.
Extendimos PrestaShop 1.7.4 —PHP 5.6, Symfony 3.4, Doctrine, MySQL, Smarty— con cinco módulos a medida, un tema personalizado y plantillas de factura PDF fieles a la marca. Ninguno de los módulos se sacó del marketplace. Los cinco se escribieron desde cero para encajar con la forma específica del dominio.
El módulo de reproductor de música dio a cada producto digital una identidad reproducible: metadatos de la pista, duración completa, un tiempo de corte de muestra configurable por pista que fija el artista y un reproductor en página con barra de desplazamiento. El artista decide cuánto se reproduce antes del pago. Esa decisión es una regla de negocio; vive en el modelo de datos, no en parches de JavaScript contra la plantilla de producto por defecto.
El módulo de perfil de autor convirtió a compositores y narradores en entidades de primera clase con sus propias páginas de perfil, biografías y discografías. Una pista conoce a su autor. Una página de autor lista sus pistas. La relación es consultable y gestionable desde el panel de administración.
El módulo constructor de página de inicio dio al equipo de marketing una superficie estructurada —bloques de cabecera, banners, CTA— que podían editar sin tocar el tema. El módulo de bloques de producto gestionaba escaparates curados en la página de inicio por categoría. El módulo de condiciones dio al departamento legal una superficie de autoservicio para gestionar los términos y condiciones. Combinado con el flujo de una sola página de SuperCheckout y la integración de pago regional CM-CIC, el checkout capturaba el email en el punto de venta y liquidaba en el procesador regional del cliente sin una pasarela de pago a medida.
Plantillas de factura PDF a medida —877 líneas, fieles a la marca— gestionaban los recibos del lado del servidor. El cliente obtiene un recibo que se parece a la marca a la que acaba de comprar.
- F · 01Módulo de reproductor de música
- Metadatos de pista, duración, tiempo de corte de muestra configurable y un reproductor en página con barra de desplazamiento. El artista fija cuánto se reproduce antes del pago; esa regla vive en el modelo de datos.
- F · 02Módulo de perfil de autor
- Compositores y narradores como entidades de primera clase en administración con páginas de perfil, biografías y discografías. Las pistas enlazan con autores; las páginas de autor listan pistas.
- F · 03Módulo constructor de página de inicio
- Bloques de cabecera, banners y CTA estructurados que el equipo de marketing edita desde el panel de administración: sin acceso al tema, sin ingeniero de guardia.
- F · 04Módulo de bloques de producto
- Escaparates de producto curados en la página de inicio organizados por categoría. El operador decide qué aparece en la portada sin tocar la plantilla.
- F · 05Checkout de una página + pago regional
- Flujo de una sola página de SuperCheckout con procesamiento de pago regional CM-CIC y captura de email con Mailchimp en el punto de venta. Digital y físico en un carrito, un checkout.
- F · 06Facturas PDF con estilo de marca
- Generación de facturas del lado del servidor: 877 líneas de plantillas a medida. Recibos que se parecen a la marca a la que el cliente acaba de comprar.
Extiende la plataforma; no la reescribas.
La tentación en un proyecto como este es concluir que la plataforma está equivocada y empezar de cero. PrestaShop no sabe qué es un corte de previsualización, así que cambia a una aplicación Symfony a medida, recurre a un stack headless, defiende una plataforma completamente distinta.
Nada de eso estaba justificado. El sistema de módulos de PrestaShop existe precisamente para esto. La plataforma gestiona la administración del catálogo, el procesamiento de pedidos, el inventario, los impuestos, la multidivisa y una década de casos límite de e-commerce que no resulta interesante reescribir. La brecha era el modelado del dominio —metadatos de audio, entidades de autor, una página de inicio editable— y esa brecha tenía exactamente el tamaño adecuado para cinco módulos.
Extiende una plataforma solo donde su vocabulario sea erróneo. Donde sea correcto, déjala hacer el trabajo.
Cuatro meses, de noviembre de 2018 a marzo de 2019, 356 commits. El alcance de la extensión se calibró contra lo que la plataforma ya gestionaba bien. Los módulos están aislados y bien delimitados. El resto es PrestaShop. Esa restricción es una disciplina tanto como una decisión: si extiendes solo donde el encaje es genuinamente erróneo, el sistema que hereda el siguiente ingeniero sigue siendo legible.
Una plataforma que hablaba el idioma de la marca.
La tienda se publicó con un catálogo que el operador podía gestionar, un checkout que manejaba lo digital y lo físico en un solo flujo y una página de inicio que el equipo de marketing podía editar sin un ticket de soporte.
La plataforma sabía qué era una pista de audio. Sabía qué era un autor. Sabía que una muestra se reproducía durante una ventana configurable y luego pedía una decisión de compra. Eso no son funciones atornilladas al lateral de una tienda genérica: son el modelo del dominio, expresado en código y mostrado en el panel de administración.
356 commits, 4 meses, 5 módulos a medida. El operador lanzó en plazo y gestionó el catálogo desde el primer día sin soporte de ingeniería.
Por fin se sentía como nuestra tienda, no como una tienda de PrestaShop con nuestro logo encima.
