TunoCommerce

v2.1.0 — Cotizaciones avanzadas

PDF, timeline de eventos, acciones del comprador y actualización de perfil — Abril 2026

Fecha de lanzamiento: Abril 2026

Esta versión completa el módulo de cotizaciones con generación de PDF, historial de eventos, acciones dedicadas del comprador y soporte para dirección de facturación. También incluye la primera acción de autoservicio para compradores.


Cotizaciones — Generación de PDF

Los vendedores y compradores pueden ahora descargar un PDF de cualquier cotización activa directamente desde el detalle.

  • Nuevo endpoint GET /api/v1/quotes/:id/pdf — genera el PDF en tiempo real y lo transmite sin almacenamiento en disco.
  • Plantilla con encabezado (número de cotización, título, fechas de creación y expiración), bloque de contacto del comprador, direcciones de envío y facturación en columnas paralelas, tabla de ítems con variante y opciones, desglose financiero completo (subtotal, descuento, envío, impuesto, total) y sección de términos y condiciones.
  • El botón de descarga en QuoteDetail solo es visible en estados activos: submitted, negotiating, approved, partially_approved, converted.
  • Dirección de facturación por cotización: nueva columna billingAddressId en quotes, seleccionable al crear o editar la cotización.
  • Términos y condiciones configurables: se almacenan en CompanyConfiguration bajo la clave pdf_terms_and_conditions y se incluyen automáticamente en el pie del PDF.

Cotizaciones — Timeline de eventos

Cada cotización ahora tiene un historial completo de auditoría accesible vía API.

  • Nuevo endpoint GET /api/v1/quotes/:id/timeline — retorna todos los eventos en orden cronológico.
  • Cada evento registra: acción, tipo de actor (admin, buyer, system), nombre del actor, timestamp y metadatos adicionales.
  • Los eventos se registran automáticamente en cada transición del flujo: submit, review, respond, negotiate, approve, partial approve, reject, cancel, expire y convert.
  • Se incluyó un backfill de eventos para cotizaciones existentes.

Cotizaciones — Acción submit del comprador

El flujo del comprador ahora tiene un endpoint dedicado para enviar cotizaciones, separado de la edición.

  • Nuevo endpoint POST /api/v1/buyer/quotes/:id/submit.
  • Valida que la cotización esté en draft y tenga al menos un ítem antes de hacer la transición a submitted.
  • Registra el evento submitted en el timeline.

Clientes — Actualización de perfil propio

Los compradores pueden actualizar sus datos personales desde el portal sin necesidad de intervención administrativa.

  • Nuevo endpoint PUT /api/v1/customers/me.
  • Permite actualizar nombre, apellido, teléfono e idioma preferido.
  • No permite cambiar email ni estado — esas operaciones siguen siendo exclusivas del staff.

Notas de migración

Esta versión incluye tres migraciones de base de datos:

  1. add_billing_address_to_quotes — agrega columna billingAddressId a la tabla quotes.
  2. update_quote_address_relations — actualiza las relaciones de direcciones en cotizaciones existentes.
  3. add_quote_events — crea la tabla QuoteEvent para el timeline.
  4. backfill_quote_events — popula eventos históricos para cotizaciones existentes.

Ejecutar pnpm db:migrate antes de desplegar esta versión.

On this page