4.3 KiB
Arquitectura de comercio extensible
Fecha: 12 de septiembre de 2026
Decisión principal
El carrito ya no representa directamente lo que se cobra. Mantiene las cosas que ha elegido la persona y, al comenzar el pago, un resolutor las convierte en líneas de cobro inmutables.
Esta separación resuelve dos necesidades distintas:
- una canción es un derecho de descarga individual;
- el precio de las canciones se calcula por packs de hasta diez;
- libros, partituras, MIDI, stems y servicios tienen cantidad y precio propios;
- una suscripción tiene recurrencia, plan y ciclo de vida, no es un artículo puntual camuflado en el carrito.
Regla de packs
El número de packs se calcula con ceil(canciones / 10). Por tanto:
| Canciones elegidas | Packs cobrados | Huecos incluidos |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 1 | 9 |
| 10 | 1 | 0 |
| 11 | 2 | 9 |
| 20 | 2 | 0 |
| 21 | 3 | 9 |
No existe ya el bloqueo por pack incompleto. El carrito informa de cuántas canciones más caben sin aumentar el total, pero permite pagar cualquier cantidad positiva.
Capas del modelo
Selección
carrito_itemguarda las canciones concretas.carrito_productoguarda los demás productos y sus cantidades.productocontiene las ofertas comerciales disponibles: libro, partitura, MIDI, stems o servicio.
Los precios siempre se vuelven a leer en el servidor. Ninguna acción acepta el precio enviado por el navegador.
Resolución y cobro
resolverCompra transforma la selección en LineaDeCobro[]. Diecisiete
canciones producen una línea de dos packs, no diecisiete líneas. Cada producto
adicional produce su propia línea.
Antes de contactar con Stripe se comprueban identidad, cantidades, importes, moneda, modalidad y recurrencia. Una misma sesión no puede mezclar pago único y suscripción: se resuelven en operaciones separadas porque tienen ciclos de cancelación, renovación y fiscalidad distintos.
Pedido y derechos
pedido_lineacongela nombre, tipo, cantidad, precio e importe de cada línea. Una factura histórica no cambia al editar el catálogo.pedido_itemconserva qué canciones incluía el pedido.compraes el derecho rápido de descarga de cada canción.
Las líneas facturadas y los derechos entregados no se deben fusionar. Un pack puede entregar entre una y diez canciones; un libro o unas partituras podrán entregar varios archivos mediante relaciones específicas cuando se publiquen.
Suscripciones
plan_suscripcion define código, nombre, nivel, precio y periodicidad. Sus
capacidades operativas —publicidad, calidad de escucha, cupo y calidad de
descargas, acceso a versiones, Juke-box, contenido del taller y descarga de sus
materiales— son columnas estructuradas y dependen del ámbito del plan;
prestaciones
queda para ventajas editoriales adicionales y no para tomar decisiones de
acceso. También conserva la referencia de precio externa. suscripcion registra el periodo
contratado por cada cuenta y apunta opcionalmente al plan. La relación es
opcional para conservar las concesiones manuales históricas.
Los planes musicales públicos iniciales son Seguidor, Amigo y Buen amigo. El Juke-box es una capacidad explícita de Amigo y Buen amigo; Seguidor no la concede. El Taller de letras dispone de una suscripción anual independiente, con acceso completo y descarga de materiales. La contratación y la aplicación efectiva de publicidad, calidades y cupos se conectarán sobre estas capacidades, sin comparar nombres ni textos comerciales.
Extensión prevista
Para publicar una nueva clase de producto no será necesario crear otro sistema
de pedidos. Se añadirá su ficha editorial, sus archivos entregables y una acción
que use anadirProductoAlCarrito. El mismo resolutor, la intención de pago y
pedido_linea ya aceptan esos artículos.
Antes de activar cada tipo quedan por concretar:
- archivos o prestación que entrega;
- política de acceso y caducidad;
- impuestos y texto legal;
- reembolsos y revocación del derecho;
- interfaz de administración y publicación.