// Caso · E-commerce de productos digitales
Rizoma Consultora
Una tienda para vender cuadernillos de orientación vocacional y un curso online, montada sobre un sitio que ya existía. Del pago a la descarga —y al aula virtual— sin que nadie tenga que intervenir.
El problema
Rizoma Consultora trabaja en orientación vocacional y ocupacional. Tenían un sitio institucional hecho por otro estudio, material propio en PDF y un curso autoasistido en Moodle, y querían venderlo online sin rehacer lo que ya funcionaba.
Poner un carrito era la parte fácil. Lo difícil estaba alrededor: el material es digital —se descarga apenas se acredita el pago y queda para siempre—, el curso vive en otra plataforma, hay packs que incluyen cuadernillos que también se venden sueltos, y todo tenía que andar en un hosting compartido de 512 MB.
Los números
La tienda
Construida como tema hijo: el sitio del otro estudio queda intacto y las actualizaciones del tema no pisan nada.
Dentro de un sitio que ya existía
El catálogo se integra al sitio con identidad propia: portada editable desde el panel, secciones agrupadas por público —para profesionales y para quien busca un cambio laboral— y el curso destacado.


Opciones y packs que no se pisan
Un mismo producto ofrece cada módulo por separado o los cuatro juntos. La tapa cambia con la opción elegida, y la tienda no deja comprar dos veces lo mismo ni un módulo que ya viene dentro de un pack comprado.

Pensada para el teléfono
En pantalla chica la portada cambia a una composición vertical propia y deja de descargar el video de fondo, que ahí no se muestra. Las pastillas del catálogo están verificadas a ocho anchos, de 360 a 1680 px.
Cuatro problemas, resueltos
Problema real, solución técnica, impacto verificado.
Del pago al aula virtual
El curso vive en Moodle, una plataforma aparte. Sin integración, cada venta implicaba crear la cuenta y matricular a mano.
Plugin propio que se activa cuando se acredita el pago: por la API REST de Moodle busca o crea la cuenta y la matricula en el curso. Deja cada paso anotado en el pedido y marca lo ya resuelto, así un reintento no duplica nada.
Circuito verificado en producción de punta a punta: pago aprobado en Mercado Pago, pedido completado, correos enviados y cuenta matriculada en el curso, sin intervención.
Material digital que no se filtra
Probando el flujo encontré que un PDF subido desde la biblioteca de medios queda en una carpeta pública y se descarga sin pagar.
Los cuadernillos van a la carpeta protegida de WooCommerce y se entregan con un enlace único por compra. Después probé las vías de acceso una por una.
Enlace de quien compró: 200. El mismo enlace con la clave alterada: 404. El archivo pedido directo: 403. El listado de la carpeta: 403.
Rendimiento en 512 MB
Al pasar a producción la portada tardaba 21,5 s en responder y el panel era inusable. El caché estaba en un modo que necesita reglas de servidor que ese hosting no carga, y había dos capas de caché superpuestas.
Diagnóstico capa por capa midiendo el consumo del servidor, cambio a un modo de caché compatible, recorte de las funciones del panel de WooCommerce que no se usan y limpieza de un caché estático viejo que servía páginas congeladas sin pasar por WordPress.
La portada responde en 0,027 s.
Medición lista para campañas
La agencia de marketing necesitaba medir ventas y consultas por WhatsApp para vincularlas con Google Ads.
Contenedor de Tag Manager con los eventos de comercio electrónico de la tienda —producto visto, carrito, compra con importe— y el evento de consulta por WhatsApp, todos verificados en el navegador contra producción.
La agencia arma sus conversiones desde su panel, sin volver a tocar el código del sitio.
Lo que no se ve a primera vista
Lanzamiento por etapas
La tienda puede quedar oculta al público y visible sólo para el equipo, para cargar el material real en producción sin exponerla antes de tiempo.
Panel de gestión propio
Un escritorio con las ventas del mes y lo pendiente, y la portada de la tienda editable desde un formulario, sin tocar código.
Compra de bienes digitales
El checkout pide un consentimiento explícito para material que se descarga apenas se acredita el pago.
Checkout a medida
El teléfono se pide como WhatsApp —el canal con el que el equipo acompaña a quien compra— y se valida antes de pagar para que no lleguen números incompletos.
Con qué está construida
Plataforma
- WordPress
- WooCommerce
- Tema hijo sobre Uncode
- WPBakery
Backend
- PHP 8
- MySQL / MariaDB
- API REST de Moodle
- Hooks de WooCommerce
Frontend
- CSS (container queries)
- JavaScript
- WebP
Servicios
- Mercado Pago
- Moodle
- Google Tag Manager
- W3 Total Cache