Saltar a contenido

PDF-010D - SOURCE-001 VCLIENTES Read-Only Snapshot

Fecha: 2026-06-23

Estado: VALIDACION READ-ONLY / SOURCE_001_RUNTIME_SAMPLE_OK / SIN WRITES / SIN SYNC / LISTA_PRECIO_CATALOG_CLOSED

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 -sb ## main...origin/main
git rev-parse HEAD d66c01b2330ce5d68ded6f5dcd686a0a0eb60f3b
git rev-parse origin/main d66c01b2330ce5d68ded6f5dcd686a0a0eb60f3b
git log -3 --oneline d66c01b docs: add pdf-010c source-001 price list catalog validation; 72a2961 docs: add pdf-010b b2b price list authority validation; 24ad2aa docs: add pdf-010a b2b price lists customer sync contract
git diff --check inicial PASS

Safe point esperado confirmado:

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

B. Documentacion leida

Documentacion 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-010C-SOURCE-001-PRICE-LIST-CATALOG-READ-ONLY-VALIDATION.md
  • docs/tenants/alpuntodeventa/business-observer/blueprints/CUSTOMER-BLUEPRINT.md
  • docs/tenants/alpuntodeventa/business-observer/source-authority/SOURCE-001-CLIENTES-VCLIENTES-AUTHORITY.md
  • docs/PROJECT-STATE.md
  • docs/ROADMAP.md
  • docs/governance/ACTIVE-CONTEXT.md

C. Conexion y consulta read-only

Resultado: PASS.

Se ejecuto consulta runtime read-only contra:

  • source object: ecommerce.dbo.VCLIENTES
  • modo: SELECT_ONLY_READ_ONLY
  • fecha/hora observada local: 2026-06-22T22:48:08

Controles de seguridad:

  • .env fue leido solo por la rutina local para cargar variables de conexion.
  • no se imprimieron secretos.
  • no se imprimieron connection strings.
  • no se ejecutaron INSERT, UPDATE, DELETE, MERGE, TRUNCATE, DROP, ALTER, CREATE, COPY, sync, scheduler, cron ni pipelines.
  • no se toco WooCommerce API.
  • no se toco PostgreSQL con writes.

Snapshot local sanitizado generado:

Campo Valor
path local snapshots/source-001/SOURCE-001-VCLIENTES-READ-ONLY-SANITIZED-20260623.json
versionado Git NO, porque snapshots/* esta ignorado
sha256 5b7eb3bdbc6cc58c14247446c089fe8416eee1d2a296d261b03dca6da8166017
contenido agregados no sensibles y muestra sanitizada

D. Catalogo real Lista_Precio

Total de clientes con Codigo IS NOT NULL: 11448.

Valores reales observados para Lista_Precio:

Lista_Precio Clientes
1 4637
2 1167
3 1265
4 1259
5 2774
6 263
7 52
8 27
9 4

Resultado:

  • catalogo real observado: 1..9.
  • clientes sin Lista_Precio: 0.
  • no se observaron listas vacias, nulas, textuales ni fuera de 1..9.

E. Conteos por Estado

Estado Clientes
CLIENTE ACTIVO 5986
CLIENTE DE BAJA 5371
CLIENTE SUSPENDIDO 91

Estados observados:

  • CLIENTE ACTIVO
  • CLIENTE SUSPENDIDO
  • CLIENTE DE BAJA

No se observaron estados fuera del catalogo documental vigente.

F. Matriz Lista_Precio x Estado

Lista_Precio CLIENTE ACTIVO CLIENTE SUSPENDIDO CLIENTE DE BAJA Total
1 1365 31 3241 4637
2 919 6 242 1167
3 109 50 1106 1265
4 1068 0 191 1259
5 2288 2 484 2774
6 179 0 84 263
7 51 0 1 52
8 4 2 21 27
9 3 0 1 4

G. Calidad de datos email / WhatsApp / CUIT

Control Resultado
clientes sin Lista_Precio 0
clientes sin mail 10332
clientes sin Telefono / WhatsApp 4291
posibles duplicados por Cuit - valores duplicados 564
posibles duplicados por Cuit - filas afectadas 1208
posibles duplicados por mail - valores duplicados 21
posibles duplicados por mail - filas afectadas 46
posibles duplicados por Telefono - valores duplicados 350
posibles duplicados por Telefono - filas afectadas 760

Lectura operativa:

  • Codigo sigue siendo la clave logica fuerte del cliente SGC.
  • mail, Telefono y Cuit no deben usarse como clave unica primaria.
  • la cobertura de email es baja para automatizaciones directas de WooCommerce.
  • Telefono se mantiene como WhatsApp operativo, pero con faltantes y duplicados que requieren normalizacion y control.

H. Muestra sanitizada

La muestra local conserva hasta 3 clientes por lista. En esta documentacion se publica solo version minimizada y enmascarada.

Lista Codigo Nombre Telefono CUIT Mail Estado Localidad Provincia Zona
1 ***1 Log*** CLIENTE DE BAJA NO DEFINIDA CABA NO DEFINIDA
1 ***100 Ozd*** ***3213 CLIENTE DE BAJA RECOLETA CABA ZONA 01-RECOLETA
1 ***000 L10*** CLIENTE DE BAJA DON TORCUATO BUENOS AIRES ZONA 13-DON TORCUATO
2 ***007 CAM*** ***7027 ***8779 CLIENTE DE BAJA VILLA ADELINA BUENOS AIRES ZONA 10-VILLA ADELINA
2 ***001 CHE*** ***7496 ***6796 yu***@gmail.com CLIENTE ACTIVO DON TORCUATO BUENOS AIRES ZONA 13-DON TORCUATO
3 ***013 Che*** ***9238 CLIENTE DE BAJA MUNRO BUENOS AIRES ZONA 10-MUNRO
4 ***028 4K *** ***5028 ***9408 CLIENTE ACTIVO SAN ISIDRO BUENOS AIRES ZONA 11-SAN ISIDRO
5 ***002 SAR*** ***0522 ***3485 CLIENTE ACTIVO SAAVEDRA CABA ZONA 08-SAAVEDRA
6 ***042 LEA*** ***6159 ***3251 CLIENTE ACTIVO PEHUAJO BUENOS AIRES ZONA 00 -INTERIOR DEL PAIS
7 ***206 NAD*** ***3326 ***3464 CLIENTE ACTIVO CAMPANA BUENOS AIRES ZONA 15-CAMPANA
8 ***074 Enr*** ***3158 ma***@fibertel.com.ar CLIENTE DE BAJA PALERMO CABA ZONA 01-PALERMO
9 ***360 NIC*** ***8735 ***3826 CLIENTE ACTIVO GERLI BUENOS AIRES ZONA 03-GERLI

I. Relacion Lista_Precio -> L1..L9

Evidencia runtime cerrada para catalogo:

  • SOURCE-001 usa valores numericos reales 1..9 en Lista_Precio.
  • SOURCE-002 expone campos documentados PrecioL1..PrecioL9.
  • no hay valores fuera de 1..9 ni clientes sin lista.

Decision tecnica candidate:

Lista_Precio SGC price_list_code candidate Campo producto candidate Estado
1 L1 PrecioL1 SUPPORTED_BY_RUNTIME_CATALOG / PENDING_BUSINESS_CONFIRMATION
2 L2 PrecioL2 SUPPORTED_BY_RUNTIME_CATALOG / PENDING_BUSINESS_CONFIRMATION
3 L3 PrecioL3 SUPPORTED_BY_RUNTIME_CATALOG / PENDING_BUSINESS_CONFIRMATION
4 L4 PrecioL4 SUPPORTED_BY_RUNTIME_CATALOG / PENDING_BUSINESS_CONFIRMATION
5 L5 PrecioL5 SUPPORTED_BY_RUNTIME_CATALOG / PENDING_BUSINESS_CONFIRMATION
6 L6 PrecioL6 SUPPORTED_BY_RUNTIME_CATALOG / PENDING_BUSINESS_CONFIRMATION
7 L7 PrecioL7 SUPPORTED_BY_RUNTIME_CATALOG / PENDING_BUSINESS_CONFIRMATION
8 L8 PrecioL8 SUPPORTED_BY_RUNTIME_CATALOG / PENDING_BUSINESS_CONFIRMATION
9 L9 PrecioL9 SUPPORTED_BY_RUNTIME_CATALOG / PENDING_BUSINESS_CONFIRMATION

Veredicto:

  • el catalogo real permite mapear tecnicamente 1 -> L1, 2 -> L2, ..., 9 -> L9.
  • la activacion comercial sigue requiriendo confirmacion humana antes de aplicar precios B2B en WooCommerce.
  • L1 como precio publico/default sigue PENDING_VALIDATE; esta evidencia no reemplaza la regla vigente de regular_price = PrecioListaFinal.

J. Bloqueos restantes

Bloqueos preservados:

  • confirmar con negocio que la correspondencia Lista_Precio 1..9 -> PrecioL1..PrecioL9 es la regla comercial aplicable.
  • confirmar si L1 es precio publico/default o solo una lista B2B mas.
  • definir matching seguro sgc_customer_id <-> wc_customer_id.
  • definir tratamiento operativo de clientes sin email.
  • definir normalizacion y reglas de calidad para WhatsApp.
  • definir politicas para duplicados de Cuit, mail y Telefono.
  • preparar dry-run B2B sin writes antes de cualquier activacion.

K. Archivos creados/modificados

Creado:

  • docs/tenants/alpuntodeventa/business-observer/production/PDF-010D-SOURCE-001-VCLIENTES-READ-ONLY-SNAPSHOT.md
  • snapshots/source-001/SOURCE-001-VCLIENTES-READ-ONLY-SANITIZED-20260623.json local ignorado por Git

Actualizados:

  • docs/tenants/alpuntodeventa/business-observer/production/README.md
  • docs/PROJECT-STATE.md
  • docs/ROADMAP.md
  • docs/governance/ACTIVE-CONTEXT.md
  • mkdocs.yml

Impacto:

  • se cierra el catalogo runtime real de Lista_Precio.
  • se reemplaza SOURCE_001_RUNTIME_SAMPLE_MISSING por SOURCE_001_RUNTIME_SAMPLE_OK para este gate.
  • se mantiene WooCommerce sin tocar y sin activacion B2B.

L. Validaciones ejecutadas

Validaciones ejecutadas:

  • git status -sb
  • git rev-parse HEAD
  • git rev-parse origin/main
  • git log -3 --oneline
  • git diff --check
  • lectura documental solicitada
  • consultas SELECT read-only contra ecommerce.dbo.VCLIENTES
  • snapshot local sanitizado con sha256

Validacion final requerida al cierre:

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

M. Estado final Git

Estado esperado al cierre:

  • cambios documentales locales sin commit.
  • snapshot sanitizado local fuera de Git por .gitignore.
  • sin push.
  • sin deploy.

N. Recomendacion de commit

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

docs: add pdf-010d source-001 vclientes read-only snapshot

No hacer commit sin autorizacion posterior.

O. Proximo paso recomendado

Abrir gate separado para dry-run B2B sin writes:

  1. resolver wc_customer_id -> sgc_customer_id sin crear clientes;
  2. aplicar candidate Lista_Precio 1..9 -> L1..L9 solo como simulacion;
  3. medir productos con precio faltante por lista;
  4. generar matriz de fallback/bloqueo por cliente y SKU;
  5. pedir confirmacion humana antes de cualquier API WooCommerce, PostgreSQL write, sync, scheduler, cron o pipeline.

P. Restricciones preservadas

Durante este gate:

  • no se toco WooCommerce API;
  • no se modifico .env;
  • no se imprimieron secretos;
  • no se imprimieron connection strings;
  • no se toco PostgreSQL con writes;
  • no se ejecuto SQL write;
  • no se crearon clientes WooCommerce;
  • no se crearon productos;
  • no se modificaron productos;
  • no se ejecuto sync;
  • no se activo scheduler, cron ni pipelines;
  • no se hizo push;
  • no se hizo deploy;
  • no se modifico runtime.