Gestión de Suscripciones de Odoo 17 en adelante


Contexto de la Refactorización

Debido a la refactorización realizada en el módulo de suscripciones a partir de Odoo 17, los precios de productos de suscripción se trasladaron a los Planes de Suscripción (Recurring Plans). Esta reestructuración requiere comprender correctamente cómo funcionan los diferentes elementos del sistema.

Conceptos Fundamentales

Plan de Suscripción (Recurring Plan)

  • Define el período de facturación y las condiciones temporales del contrato (mensual, trimestral, anual, etc.)
  • Establece cuándo y cómo se factura al cliente
  • Contiene configuraciones de cierre automático, alineación de período, plantillas de email, etc.
  • Se configura en: Suscripciones → Configuración → Planes Recurrentes

Suscripción (Subscription Sales Order)

  • Es el contrato activo con un cliente específico
  • Vincula al cliente con uno o varios productos de suscripción bajo un Plan de Suscripción determinado
  • Se genera desde: Suscripciones → Suscripciones → Nuevo o desde el módulo de Ventas

¿Dónde Se Tocan los Precios Recurrentes?

Los precios recurrentes son gestionados por una única tabla en la base de datos (product.pricing), pero Odoo permite acceder y modificar estos precios desde tres ubicaciones diferentes:

1. Desde el Producto de Suscripción

  • Ubicación: Producto → Pestaña "Time-based pricing" (Precios basados en tiempo)
  • Acceso: Suscripciones → Productos → Productos → Seleccionar producto → Pestaña "Time-based pricing"
  • Función: Agrupación por Producto
  • Aquí defines los precios recurrentes del producto para cada período (mensual, anual, etc.) y opcionalmente por tarifa

2. Desde las Tarifas (Pricelists)

  • Ubicación: Tarifa → Pestaña "Recurring Prices" (Precios recurrentes)
  • Acceso: Ventas → Productos → Tarifas → Seleccionar tarifa → Pestaña "Recurring Prices"
  • Función: Agrupación por Tarifa
  • Aquí defines los precios recurrentes para múltiples productos asociados a esa tarifa específica

3. Desde el Plan de Suscripción

  • Ubicación: Plan Recurrente → Pestaña "Pricing"
  • Acceso: Suscripciones → Configuración → Planes Recurrentes → Seleccionar plan → Pestaña "Pricing"
  • Función: Agrupación por Plan Recurrente
  • Aquí defines los precios recurrentes para múltiples productos que están asociados a ese plan específico

Importante: Estos tres puntos de acceso modifican la misma información en la base de datos. Los cambios realizados en cualquiera de estas ubicaciones se sincronizan automáticamente con las demás. Por ejemplo, si añades un precio recurrente desde la pestaña "Time-based pricing" del producto y especificas una tarifa, automáticamente aparecerá también en la pestaña "Recurring Prices" de esa tarifa.

Prioridad y Matching de Precios

La pestaña "Pricing" del Plan de Suscripción tiene una función adicional importante: los precios definidos aquí tienen precedencia sobre los precios estándar del producto. Esto permite:

  • Crear ofertas especiales o descuentos específicos para ese plan
  • Aplicar estrategias de pricing diferenciadas según el plan de suscripción
  • Mantener precios promocionales sin modificar el precio base del producto

Cómo Funciona el Matching (Emparejamiento)

Cuando creas una suscripción, Odoo busca el precio correcto haciendo match entre:

  • Producto
  • Plan de Suscripción (período: mensual, anual, etc.)
  • Tarifa asignada al cliente

Ejemplo práctico: Plan "Antivirus Mensual"

Imagina que el producto "Antivirus Empresarial" debe tener dos precios diferentes según el tipo de cliente:

Configuración en el Plan de Suscripción "Antivirus Mensual" → Pestaña "Pricing":

  • Línea 1: Producto "Antivirus Empresarial" + Tarifa "Clientes Estándar" + Precio Recurrente = 15€
  • Línea 2: Producto "Antivirus Empresarial" + Tarifa "Clientes Premium" + Precio Recurrente = 12€

Al crear la suscripción:

  1. Seleccionas el Plan de Suscripción: "Antivirus Mensual"
  2. El cliente tiene asignada la Tarifa: "Clientes Premium"
  3. Añades el producto: "Antivirus Empresarial"
  4. Odoo hace match automáticamente → Aplica 12€/mes

Esta arquitectura permite reutilizar el mismo Plan de Suscripción para múltiples clientes, diferenciando el precio final mediante la tarifa asignada a cada uno.

¿Por Qué No Se Pueden Aplicar Variaciones de Precio a una Suscripción Abierta?

Razón Legal y Contractual: Cada vez que modificas un precio, implícitamente estás rompiendo el contrato establecido con el cliente. Por razones de:

  • Trazabilidad contractual: Debe quedar registro claro de qué contrato tenía qué condiciones
  • Cumplimiento normativo: Las modificaciones contractuales requieren documentación
  • Protección legal: Tanto para la empresa como para el cliente
  • Auditoría financiera: La facturación histórica debe mantenerse coherente

Razón Técnica: Odoo protege la integridad de los datos históricos y las facturas ya generadas para evitar inconsistencias en la contabilidad y el seguimiento de ingresos recurrentes.

Procedimiento Correcto para Actualizar Precios

Paso 1: Actualizar los Precios Recurrentes

Antes de gestionar las suscripciones activas, actualiza los precios en cualquiera de las tres ubicaciones (el cambio se sincronizará automáticamente):

  • Producto → Pestaña "Time-based pricing"
  • Tarifa → Pestaña "Recurring Prices"
  • Plan de Suscripción → Pestaña "Pricing"

Paso 2: Gestionar las Suscripciones Activas

Tienes dos opciones principales:

Opción A: Cerrar y Crear Nueva Suscripción (Recomendado para trazabilidad)

  1. Abrir la suscripción activa del cliente
  2. Clic en "Close" (Cerrar suscripción)
  3. Indicar el motivo: ej. "Actualización de precios según nueva política comercial 2025"
  4. Crear una nueva suscripción para el mismo cliente
  5. Los precios ya estarán actualizados automáticamente
  6. Confirmar y facturar

Ventaja: Historial claro, trazabilidad completa del cambio contractual, documentación del motivo

Opción B: Renovar la Suscripción

  1. En la suscripción activa, clic en "Renew" (Renovar)
  2. Se genera automáticamente una nueva cotización de renovación
  3. Los precios se actualizan automáticamente con los nuevos valores
  4. Confirmar la renovación

Ventaja: Proceso más ágil, el sistema vincula automáticamente la suscripción original con la renovación

Opción C: Reabrir y Modificar Manualmente (No recomendado)

  1. Cerrar la suscripción actual
  2. Reabrirla
  3. Eliminar manualmente todas las líneas de productos
  4. Volver a añadir los productos (que tendrán los nuevos precios)

Desventaja: Proceso manual, propenso a errores, no queda trazabilidad clara, más tiempo invertido

Resumen Ejecutivo

✅ Los precios recurrentes se almacenan en una única tabla (product.pricing)

✅ Se pueden gestionar desde tres ubicaciones diferentes: producto, tarifa o plan de suscripción

✅ Los cambios en cualquier ubicación se sincronizan automáticamente

✅ La pestaña "Pricing" del Plan de Suscripción tiene precedencia sobre precios estándar

✅ El matching se realiza por: Producto + Plan Recurrente + Tarifa

No se pueden modificar precios directamente en suscripciones activas por motivos contractuales

✅ El procedimiento correcto es: actualizar precios recurrentes → cerrar/renovar suscripción → crear nueva o confirmar renovación

VeriFactu en Odoo
Guía completa de Infinityloop Sistemas