← Centro de desarrollo

Portal Cliente Crédito Avanzado

Clientes B2B con venta a crédito: estado de cuenta, recompra inteligente, stock en vivo y pre-compra con descuento.

Nuevo — ago 2026 Módulo pf_portal_credito Odoo 19 Depende: pf_sale_credit_control + pf_preorder

Objetivo de producto

  • Estado de cuenta — saldo, límite, movimientos, antigüedad, CFE Biller.
  • Sugerencias de compra — según lo que el cliente suele pedir + productos sugeridos para agregar.
  • Ayuda — FAQ crédito + mesa de ayuda / tickets (misma mesa que /servicio-asistencia).
  • Pedido web — elige día de retiro + 3% descuento automático.
  • Con stock — productos habituales disponibles hoy → agregar al pedido.
  • Sin stock — ETA de llegada + opción de pre-compra con descuento.

Mockups (wireframe)

Mi crédito — Dashboard
$ 84kDisponible
$ 16kUsado
$ 100kLímite
$ 2.4kVencido
Factura F001-1234Pendiente
Pedido SO-8891En curso
Sugerencias — Lo que suele pedir

✓ Con stock hoy

Piso SPC Roble 2m²48 u.
Zócalo PVC blanco120 u.
Cola vinílica 5kg24 u.

⏳ Sin stock — pre-compra

Guarda humid. 2mm~12 días · -5%
Membrana 20m~18 días · -5%

Arquitectura

┌─────────────────────────────────────────────┐ │ UI portal (pf_website / templates Odoo) │ │ /mi-cuenta · sugerencias · estado cuenta │ └────────────────────┬────────────────────────┘ │ JSON /mi-cuenta/api/* ┌────────────────────▼────────────────────────┐ │ pf_portal_credito (Odoo 19 — delgado) │ └────────────────────┬────────────────────────┘ │ pf_sale_credit_control · account.move · sale.order biller_all (CFE) · pf_preorder · EbrouBotv2 (BrouBot :8765)

Flujo pago BROU + BrouBot (P2)

  1. Cliente transfiere a cuenta BROU (indica Nº factura en asunto).
  2. En portal → Informar pago → sube captura del comprobante.
  3. Odoo llama POST /leer_comprobante → extrae op., importe, fecha.
  4. Odoo llama POST /verificar → BrouBot cruza movimientos eBROU.
  5. Si confirmado → account.payment + reconcilia factura → aparece en estado de cuenta.
  6. Si en cola → reintento automático (cron / cola BrouBot).

Descuento pre-compra

NivelConfigDefault
GlobalAjustes → Ventas → Portal crédito5%
Por productoFicha producto → «Descuento pre-compra portal %»Vacío = usa global

Extras portal PRO (roadmap)

✓ P2+ Ayuda embebida + 3% web + día retiro + sugeridos agregar
🔲 Alertas facturas por vencer (email / badge)
🔲 Descargar estado de cuenta PDF
🔲 Repetir pedido anterior en 1 clic
🔲 Notificaciones cuando llega stock pre-comprado

→ Ver mockup interactivo Mi cuenta PRO

Reutiliza (ya existe)

MóduloUso en portal crédito
pf_sale_credit_controlallow_credit_sale, credit_limit, validación tope
biller_allPDF CFE en facturas portal
pf_preorderpf_is_preorder, pf_estimated_days, RFQ automática
pf_websiteBranding, checkout, estilos portal
pf_estado_pagoBadges pago en pedidos/facturas

API implementada

RutaDescripciónEstado
/mi-cuentaPágina portal (5 tabs)P2+
/mi-cuenta/api/ayudaFAQ + links mesa ayudaP2+
/mi-cuenta/api/sugeridos-agregarCross-sell productos nuevosP2+
/shop/cart/retiroDía retiro checkoutP2+
/mi-cuenta/api/resumenCrédito + datos BROU + % webP2+
/mi-cuenta/api/estado-cuentaFacturas + comprobantes pagosP2
/mi-cuenta/api/sugerenciasStock / sin stock + sugeridosP2+
/mi-cuenta/api/pago/informarSubir captura → BrouBot → reciboP2
/mi-cuenta/api/precompraPOST crear SO pre-ordenP5

Código: odoo-dev/pf_portal_credito/

Roadmap de fases

P0

Spec + portal desarrollo

Documentación, mockups, módulo vacío en repo.

Hecho
P2

UI «Mi cuenta» + pagos BrouBot

Portal /mi-cuenta, comprobantes, descuento global 5% / por producto.

En repo
P3

Estado de cuenta PRO

Antigüedad, export PDF, alertas vencimiento.

Pendiente
P4

Carrito sugerencias

Agregar al pedido, repetir pedido.

Pendiente
P5

Pre-compra con descuento

Confirmar SO + pf_preorder RFQ + descuento configurable.

Pendiente
P6

Catálogo B2B + tope en vivo

Lista precios partner, carrito con validación crédito.

Pendiente

Reglas de negocio (a definir)

TemaPropuesta
Descuento pre-compra5% default (pf_portal_credito.preorder_discount_pct)
Historial sugerencias12 meses (history_months)
Acceso portalSolo allow_credit_sale = True
ETA sin stockpf_estimated_days; fase 2: PO entrante

Motor sugerencias (v1)

sale.order.line (12 meses, partner comercial, sale/done) → ranking por frecuencia y cantidad → cruce free_qty en vivo → CON STOCK: free_qty > 0 → SIN STOCK: pf_is_preorder o free_qty ≤ 0 + ETA + descuento

← Volver al centro de desarrollo · docs/desarrollo/PORTAL_CLIENTE_CREDITO.md