You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
senzapaura_es/docs/arquitectura-comercio-2026-...

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_item guarda las canciones concretas.
  • carrito_producto guarda los demás productos y sus cantidades.
  • producto contiene 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_linea congela nombre, tipo, cantidad, precio e importe de cada línea. Una factura histórica no cambia al editar el catálogo.
  • pedido_item conserva qué canciones incluía el pedido.
  • compra es 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:

  1. archivos o prestación que entrega;
  2. política de acceso y caducidad;
  3. impuestos y texto legal;
  4. reembolsos y revocación del derecho;
  5. interfaz de administración y publicación.

Powered by TurnKey Linux.