Saltar a contenido

PDF-010G - B2B Commercial Price Rules Approval

Fecha: 2026-06-23

Estado: CONFIRMACION COMERCIAL DOCUMENTAL / REGLAS B2B APROBADAS / SIN RUNTIME / SIN WRITES

portal_visible = yes

Scope: tenant

tenant_id: alpuntodeventa

Destino funcional: SOURCE-001 Clientes + SOURCE-002 Productos -> WooCommerce La Directa

Owner: Gabi / Carlos Canu

A. SAFE POINT inicial

Control Resultado
git status --short repo limpio
git rev-parse HEAD 979c9196e90fa6f1a29c4b5b0f5fb84b3bee709d
git rev-parse origin/main 979c9196e90fa6f1a29c4b5b0f5fb84b3bee709d
git log -1 --oneline 979c919 docs: add pdf-010f b2b commercial pricing design

Safe point esperado confirmado:

  • HEAD coincide con 979c9196e90fa6f1a29c4b5b0f5fb84b3bee709d.
  • origin/main coincide con 979c9196e90fa6f1a29c4b5b0f5fb84b3bee709d.
  • repo limpio al inicio.
  • ultimo commit esperado confirmado.

Alcance de esta tarea:

  • documentar aprobacion comercial explicita de reglas B2B;
  • no ejecutar runtime;
  • no tocar WooCommerce API;
  • no tocar PostgreSQL;
  • no ejecutar SQL;
  • no ejecutar sync;
  • no crear clientes;
  • no crear productos;
  • no modificar precios;
  • no hacer deploy, push ni commit.

B. Documentacion leida

Documentacion base revisada:

  • docs/tenants/alpuntodeventa/business-observer/production/PDF-010A-B2B-PRICE-LISTS-CUSTOMER-SYNC-CONTRACT.md
  • docs/tenants/alpuntodeventa/business-observer/production/PDF-010B-B2B-PRICE-LIST-AUTHORITY-READ-ONLY-VALIDATION.md
  • docs/tenants/alpuntodeventa/business-observer/production/PDF-010D-SOURCE-001-VCLIENTES-READ-ONLY-SNAPSHOT.md
  • docs/tenants/alpuntodeventa/business-observer/production/PDF-010E-B2B-CUSTOMER-PRICE-DRY-RUN.md
  • docs/tenants/alpuntodeventa/business-observer/production/PDF-010F-B2B-COMMERCIAL-PRICE-RULES-SERVER-SIDE-PRICING-DESIGN.md
  • docs/tenants/alpuntodeventa/business-observer/production/README.md
  • docs/PROJECT-STATE.md
  • docs/ROADMAP.md
  • docs/governance/ACTIVE-CONTEXT.md
  • mkdocs.yml

C. Decision Lista_Precio -> PrecioL1..PrecioL9

Veredicto: APPROVED_FOR_B2B_RUNTIME_DESIGN / NOT_IMPLEMENTED.

Queda aprobada documentalmente la correspondencia comercial:

Lista_Precio SOURCE-001 price_list_code aprobado Campo SOURCE-002 aprobado Estado
1 L1 PrecioL1 APPROVED
2 L2 PrecioL2 APPROVED
3 L3 PrecioL3 APPROVED
4 L4 PrecioL4 APPROVED
5 L5 PrecioL5 APPROVED
6 L6 PrecioL6 APPROVED
7 L7 PrecioL7 APPROVED
8 L8 PrecioL8 APPROVED
9 L9 PrecioL9 APPROVED

Base de evidencia:

  • PDF-010D cerro el catalogo real de Lista_Precio como 1..9, sin clientes sin lista y sin valores fuera de rango.
  • PDF-010E valido offline que SOURCE-002 expone PrecioL1..PrecioL9 y que la simulacion cliente/lista/SKU/precio es tecnicamente posible.
  • PDF-010F dejo la equivalencia tecnica lista para confirmacion comercial.
  • Este documento transforma el estado de PENDING_BUSINESS_CONFIRMATION a APPROVED para diseno B2B futuro.

D. Decision precio publico/default

Veredicto: PrecioListaFinal AS PUBLIC_DEFAULT_APPROVED.

Regla aprobada:

Contexto Precio aplicable Estado
visitante no logueado regular_price vigente WooCommerce APPROVED
fuente de regular_price vigente PrecioListaFinal APPROVED
PrecioL1 como precio publico/default no aprobado NOT_APPROVED

Decisiones:

  • visitante no logueado usa el regular_price vigente de WooCommerce;
  • el regular_price vigente queda respaldado por PrecioListaFinal;
  • PrecioL1 no queda aprobado como precio publico/default;
  • PrecioL1 solo aplica a clientes B2B con Lista_Precio = 1;
  • no migrar regular_price a PrecioL1 salvo nueva confirmacion comercial explicita.

E. Reglas B2B aprobadas

Reglas aprobadas para implementacion futura, aun no ejecutada:

Caso Regla aprobada
visitante no logueado usar regular_price vigente respaldado por PrecioListaFinal
cliente logueado activo con mapping valido resolver lista asignada y aplicar PrecioLn correspondiente
Lista_Precio = 1 aplicar PrecioL1 como precio B2B del cliente
Lista_Precio = 2 aplicar PrecioL2 como precio B2B del cliente
Lista_Precio = 3 aplicar PrecioL3 como precio B2B del cliente
Lista_Precio = 4 aplicar PrecioL4 como precio B2B del cliente
Lista_Precio = 5 aplicar PrecioL5 como precio B2B del cliente
Lista_Precio = 6 aplicar PrecioL6 como precio B2B del cliente
Lista_Precio = 7 aplicar PrecioL7 como precio B2B del cliente
Lista_Precio = 8 aplicar PrecioL8 como precio B2B del cliente
Lista_Precio = 9 aplicar PrecioL9 como precio B2B del cliente
carrito recalcular precios server-side con la lista vigente del cliente
checkout recalcular server-side antes de crear la orden
orden guardar lista y precio aplicado por linea

Metadata minima aprobada para orden/linea:

  • sku
  • sgc_customer_id o referencia interna no sensible
  • price_list_code
  • applied_price
  • regular_price_reference
  • pricing_mode
  • source_hash o referencia de fuente
  • calculated_at
  • pricing_status

Regla de autoridad:

  • PostgreSQL/OpenClaw debe ser autoridad de listas multiples, vigencia, mapping, hash y auditoria.
  • WooCommerce puede almacenar el precio efectivo cobrado y metadata minima.
  • WooCommerce no debe ser fuente maestra de PrecioL1..PrecioL9.

F. Reglas pendientes o bloqueadas

Pendientes para gates futuros:

Tema Estado Regla
implementacion runtime WooCommerce PENDING_IMPLEMENTATION_GATE requiere gate separado
matching wc_customer_id -> sgc_customer_id PENDING_DESIGN_AND_DRY_RUN no crear clientes en este gate
clientes sin matching Woo/SGC BLOCKED_CUSTOMER_MAPPING no aplicar precio B2B
clientes suspendidos o de baja BLOCKED_CUSTOMER_STATUS no vender B2B salvo aprobacion futura
lista fuera de 1..9 BLOCKED_PRICE_LIST no inventar mapeo
SKU sin precio de lista o precio <= 0 BLOCKED_PRICE_MISSING no reemplazar por regular_price sin autorizacion
fallback para cliente sin lista BLOCKED_PRICE_LIST fallback solo con aprobacion comercial futura
deploy, sync, scheduler, cron o pipeline BLOCKED requiere gate posterior explicito

G. Impacto documental

Este documento cambia el estado comercial de:

  • Lista_Precio 1..9 -> PrecioL1..PrecioL9: de PENDING_BUSINESS_CONFIRMATION a APPROVED;
  • precio publico/default: de PrecioListaFinal recomendado a PrecioListaFinal APPROVED;
  • PrecioL1 como default publico: permanece NOT_APPROVED.

No cambia:

  • productos WooCommerce;
  • clientes WooCommerce;
  • precios reales en WooCommerce;
  • datos PostgreSQL;
  • jobs, sync, scheduler, cron o pipelines;
  • runtime de carrito, checkout u orden.

H. Validaciones requeridas

Validaciones de cierre de este gate:

  • git diff --check
  • .\.venv-portal\Scripts\mkdocs.exe build --strict

I. Estado final Git

Estado esperado al cierre:

  • cambios documentales locales sin commit;
  • sin push;
  • sin deploy.

J. Recomendacion de commit

Si la revision humana aprueba este gate documental, commit sugerido:

docs: add pdf-010g b2b commercial price rules approval

No hacer commit sin autorizacion posterior.

K. Proximo paso recomendado

Abrir gate separado de diseno/implementacion B2B runtime sin writes iniciales:

  1. disenar matching wc_customer_id -> sgc_customer_id sin crear clientes;
  2. preparar dry-run de catalogo, carrito y checkout con las reglas aprobadas;
  3. definir hook/plugin WooCommerce o capa headless para recalculo server-side;
  4. validar orden con metadata de lista y precio aplicado;
  5. ejecutar cualquier write solo con autorizacion posterior explicita.

L. Restricciones preservadas

Durante este gate:

  • no se toco WooCommerce API;
  • no se toco PostgreSQL;
  • no se ejecuto SQL;
  • no se leyo ni publico .env;
  • no se imprimieron secretos;
  • no se ejecuto sync;
  • no se crearon clientes;
  • no se crearon productos;
  • no se modificaron precios;
  • no se activo scheduler, cron ni pipeline;
  • no se hizo push;
  • no se hizo deploy;
  • no se hizo commit.