Skip to content
10Caso de estudioSW · 10 de 10

Cuando la plataforma no habla el idioma de tu negocio, escribes los módulos que lo hacen.

Una marca de música para dormir y bienestar vendía pistas digitales y soportes físicos desde un mismo catálogo. PrestaShop genérico no sabía qué era un corte de previsualización, quién era un autor o qué aspecto tenía una página de inicio editable por marketing. Cinco módulos después, sí lo sabía.

ClienteConfidencial
Año2018 — 2019
Duración2 yrs
StackPHP · Symfony · MySQL
Hero image for sleep-music-d2c-storefrontFIG 01 · Hero

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.

Cita destacada / 04
Por fin se sentía como nuestra tienda, no como una tienda de PrestaShop con nuestro logo encima.
FundadorMarca de bienestar D2C
Outcome
Custom modules shipped
5
Time to launch
4 months
Commits
356
Invoice template (lines)
877
NEXTCaso de estudio 11SW · 11 de 10
Wellness tourism2018 — 2025

Siete años sobre el mismo código base: una plataforma de e-commerce a medida para un operador de retiros de bienestar.