Saltar a contenido

PDF-009C - SOURCE-002 WooCommerce Comparison Dry-Run

Fecha: 2026-06-22

Estado: PUBLICADO EN origin/main / DESPLEGADO EN KNOWLEDGE PORTAL / HTTP PUBLICO 200 / DRY-RUN READ-ONLY / VERDE TECNICO / WOOCOMMERCE VACIO ESPERADO / NO WRITES

portal_visible = yes

Scope: tenant

tenant_id: alpuntodeventa

Destino funcional: La Directa WooCommerce

Owner: Gabi / Carlos Canu

A. SAFE POINT inicial

Control Resultado
git status -sb ## main...origin/main
git rev-parse HEAD f78dcf2fe65e60751e5109dd7167c3f70f491f5a
git rev-parse origin/main f78dcf2fe65e60751e5109dd7167c3f70f491f5a
git log -1 --oneline f78dcf2 docs: close pdf-009b woocommerce read-only preflight
git diff --check inicial PASS

El repo inicio limpio y alineado con origin/main.

B. Estado documental leido

Documentos leidos:

  • docs/governance/PROJECT-CONSTITUTION.md
  • CODEX.md
  • docs/governance/ACTIVE-CONTEXT.md
  • docs/governance/GOVERNANCE-CONTROL-TOWER.md
  • docs/governance/VALIDATION-STATE.md
  • docs/PROJECT-STATE.md
  • docs/ROADMAP.md
  • docs/governance/operations/CURRENT-BASELINE.md
  • docs/tenants/alpuntodeventa/business-observer/blueprints/PRODUCT-BLUEPRINT.md
  • docs/tenants/alpuntodeventa/business-observer/BUSINESS-OBSERVER-DATA-CONTRACT-001.md
  • docs/tenants/alpuntodeventa/business-observer/source-authority/SOURCE-002-PRODUCTOS-PRODUCTS-AUTHORITY.sql
  • docs/tenants/alpuntodeventa/business-observer/SOURCE-002-FUTURE-LAYER-MAPPING.md
  • docs/tenants/alpuntodeventa/business-observer/production/PDF-009A-WOOCOMMERCE-PRODUCTS-MAPPING-API-CANDIDATE.md
  • docs/tenants/alpuntodeventa/business-observer/production/PDF-009B-1-WOOCOMMERCE-PRODUCT-API-EXTENSION-DESIGN.md
  • docs/tenants/alpuntodeventa/business-observer/production/PDF-009B-WOOCOMMERCE-READ-ONLY-PREFLIGHT.md
  • infra/business-observer/production/woocommerce/products/PDF-009A/

Confirmacion documental:

  • PDF-009B esta publicado y cerrado como VERDE TECNICO / AMARILLO FUNCIONAL ESPERADO.
  • El proximo gate vigente era PDF-009C SOURCE-002 -> WooCommerce comparison dry-run / NO WRITES.
  • PDF-009B-1 confirma estrategia WooCommerce native first, meta_data privada minima y sin necesidad actual de plugin, register_rest_field, register_meta ni endpoint custom.

C. Estado WooCommerce read-only

Variables requeridas presentes, sin imprimir valores:

Variable Estado
LADIRECTA_WC_BASE_URL PRESENT
LADIRECTA_WC_CONSUMER_KEY PRESENT
LADIRECTA_WC_CONSUMER_SECRET PRESENT

GETs read-only ejecutados:

Control Resultado
GET products per_page=5 HTTP 200, JSON valido, count=0
SKU 0135 HTTP 200, matched_count=0
SKU 0128 HTTP 200, matched_count=0
Muestra adicional 8 SKUs HTTP 200, matched_count=0 en todos

Lectura: WooCommerce La Directa sigue vacio como condicion inicial esperada.

D. Estado SOURCE-002 disponible para comparacion

Fuente local segura usada:

  • snapshots/source-002/SOURCE-002-PRODUCTS-RUNTIME-PREFLIGHT-20260620-173614.csv
  • SHA256 observado: c961ffc2b352b6bb3dd0d59bf3d8b7c0f7facff58a9201f7cf45e290141b704f
  • SHA256 esperado por .sha256: c961ffc2b352b6bb3dd0d59bf3d8b7c0f7facff58a9201f7cf45e290141b704f

No se ejecuto SQL. No se consulto PostgreSQL. La muestra se tomo desde snapshot local documental existente.

E. Muestra comparada

SKU Nombre fuente Marca Estado Stock Precio lista final Categoria Evidencia SOURCE-002
0135 Mani Pelado Kra x110gr KRACHITOS ACTIVO 554 1825.840 1-SNACKS snapshot CSV SHA256 validado
0128 Papas Fritas Kra C.A x 105 grs KRACHITOS ACTIVO 264 2098.549 1-SNACKS snapshot CSV SHA256 validado
2442 Pudding de Choco c/chip x300 grs 100 DUCADOS ACTIVO 0 2020.901 4-GALLETAS DULCES Y BUDINES snapshot CSV SHA256 validado
2443 Pudding Gales C/Nuez x300 grs 100 DUCADOS ACTIVO 0 2020.901 4-GALLETAS DULCES Y BUDINES snapshot CSV SHA256 validado
2444 Pudding Limon c/ semilla de Amapolla x300 grs 100 DUCADOS ACTIVO 0 2020.901 4-GALLETAS DULCES Y BUDINES snapshot CSV SHA256 validado
2847 Pudding Naranja c/ cascara x350 grs 100 DUCADOS ACTIVO 0 2020.901 4-GALLETAS DULCES Y BUDINES snapshot CSV SHA256 validado
2446 Pudding Vainila capa frutos secos x300 grs 100 DUCADOS ACTIVO 0 2020.901 4-GALLETAS DULCES Y BUDINES snapshot CSV SHA256 validado
2814 Chips Papas x 80gr Alwa ALWA ACTIVO 970 1081.151 1-SNACKS snapshot CSV SHA256 validado
2815 Chips Batata x 80gr Alwa ALWA ACTIVO 1860 1081.151 1-SNACKS snapshot CSV SHA256 validado
2816 Pochoclo dulce x 75gr Alwa ALWA ACTIVO 292 946.940 CEREALES snapshot CSV SHA256 validado

F. Matriz dry-run CREATE / UPDATE / SKIP / BLOCKED

SKU Nombre fuente Existe en WooCommerce Accion conceptual Motivo Evidencia no sensible
0135 Mani Pelado Kra x110gr NO CREATE SKU activo en SOURCE-002 y no existe en Woo; categoria/publicacion siguen pendientes para write real HTTP 200, matched_count=0
0128 Papas Fritas Kra C.A x 105 grs NO CREATE SKU activo en SOURCE-002 y no existe en Woo; categoria/publicacion siguen pendientes para write real HTTP 200, matched_count=0
2442 Pudding de Choco c/chip x300 grs NO BLOCKED stock 0; politica publish/draft para sin stock pendiente HTTP 200, matched_count=0
2443 Pudding Gales C/Nuez x300 grs NO BLOCKED stock 0; politica publish/draft para sin stock pendiente HTTP 200, matched_count=0
2444 Pudding Limon c/ semilla de Amapolla x300 grs NO BLOCKED stock 0; politica publish/draft para sin stock pendiente HTTP 200, matched_count=0
2847 Pudding Naranja c/ cascara x350 grs NO BLOCKED stock 0; politica publish/draft para sin stock pendiente HTTP 200, matched_count=0
2446 Pudding Vainila capa frutos secos x300 grs NO BLOCKED stock 0; politica publish/draft para sin stock pendiente HTTP 200, matched_count=0
2814 Chips Papas x 80gr Alwa NO CREATE SKU activo, stock positivo y precio positivo; categoria/publicacion siguen pendientes para write real HTTP 200, matched_count=0
2815 Chips Batata x 80gr Alwa NO CREATE SKU activo, stock positivo y precio positivo; categoria/publicacion siguen pendientes para write real HTTP 200, matched_count=0
2816 Pochoclo dulce x 75gr Alwa NO CREATE SKU activo, stock positivo y precio positivo; categoria/publicacion siguen pendientes para write real HTTP 200, matched_count=0

La accion es conceptual. No se ejecuto create, update, delete, batch, sync ni persistencia.

G. Matriz de campos, tipos, destino y performance

Campo SOURCE-002 Tipo recomendado Destino recomendado Impacto frontend Filtros Busqueda Ordenamiento Sensible Riesgo performance Decision
SKU text Woo native HIGH NO YES NO NO LOW READY
Articulo text Woo native HIGH NO YES YES NO LOW READY
Marca text atributo o taxonomia HIGH YES YES YES NO LOW PENDING_RULE
Estado text PostgreSQL only NONE NO NO NO NO LOW PENDING_RULE
Stock integer Woo native HIGH YES NO YES NO LOW READY
Stock en Bultos integer meta_data privada o PostgreSQL only LOW NO NO NO NO MEDIUM READY
PrecioListaFinal decimal(18,3) Woo native HIGH YES NO YES NO LOW READY
PrecioOfertaFinal decimal(18,3) Woo native HIGH YES NO YES NO LOW PENDING_RULE
Category text categoria/taxonomia HIGH YES YES YES NO LOW PENDING_RULE
SubCategoria text categoria/taxonomia o atributo HIGH YES YES YES NO LOW PENDING_RULE
PesoxUnidad decimal(18,3) Woo native MEDIUM NO NO YES NO LOW READY
Unidades_x_Bulto integer meta_data privada LOW NO NO NO NO MEDIUM READY
CantVtaMin integer meta_data privada LOW NO NO NO NO MEDIUM READY
CantVentaAgrupada integer meta_data privada LOW NO NO NO NO MEDIUM READY
PLU Articulo text meta_data privada NONE NO NO NO NO LOW READY
[PLU Bulto] text meta_data privada NONE NO NO NO NO LOW READY
VolumenxUnidad decimal(18,3) meta_data privada LOW NO NO NO NO MEDIUM READY
BasePallet integer PostgreSQL only NONE NO NO NO NO LOW READY
AlturaPallet integer PostgreSQL only NONE NO NO NO NO LOW READY
CostoListaProveedor decimal(18,3) PostgreSQL only NONE NO NO NO YES LOW READY
Costo decimal(18,3) PostgreSQL only NONE NO NO NO YES LOW READY
Cod Proveedor text PostgreSQL only NONE NO NO NO YES LOW READY
Proveedor text PostgreSQL only NONE NO NO NO YES LOW READY
Dcto Compra 1..3 decimal percent PostgreSQL only NONE NO NO NO YES LOW READY
Markup decimal(18,3) PostgreSQL only NONE NO NO NO YES LOW READY
MargenL1..L9 decimal(18,3) PostgreSQL only NONE NO NO NO YES LOW READY
PrecioL1..L9 decimal(18,3) PostgreSQL only NONE NO NO NO YES MEDIUM PENDING_RULE
AlicuotaIVA decimal(18,1) PostgreSQL only NONE NO NO NO YES LOW READY
source_row_hash futuro text meta_data privada o PostgreSQL only NONE NO NO NO YES LOW READY
sync_batch_id futuro uuid/text meta_data privada o PostgreSQL only NONE NO NO NO YES LOW READY

H. Decisiones READY

  • WooCommerce debe usar campos nativos para sku, name, regular_price, stock_quantity, stock_status, manage_stock y weight.
  • WooCommerce puede usar meta_data privada minima para PLU, unidades por bulto, minimo de venta, agrupacion de venta y trazabilidad tecnica puntual.
  • Costos, proveedor, descuentos de compra, margenes y listas multiples quedan PostgreSQL only.
  • WooCommerce no debe convertirse en ERP ni fuente fuerte de costos, proveedor, descuentos, margenes, listas multiples o reglas comerciales sensibles.
  • Los filtros comerciales visibles deben resolverse con categorias, atributos o taxonomias, no con meta_data pesada.
  • La busqueda y el ordenamiento masivo no deben depender de meta_data.
  • Los campos sensibles no deben exponerse en frontend, API publica, logs ni documentacion operativa.
  • Cada campo fue evaluado por impacto frontend/UX, tipo de dato recomendado, uso para filtros, busqueda, ordenamiento, sensibilidad y riesgo performance.
  • No hace falta plugin, endpoint custom, register_meta ni register_rest_field para este gate.
  • El catalogo WooCommerce vacio no es error: es condicion inicial esperada.

I. Reglas PENDING

  • Mapping final Category/SubCategoria -> product_cat.
  • Marca como atributo visible o taxonomia.
  • Politica de publish/draft para productos sin stock.
  • Politica de publish/draft para productos sin imagen.
  • Regla final de sale_price y vigencia de oferta.
  • Confirmar si alguna lista especifica, por ejemplo L1, debe ser la lista ecommerce o si se mantiene PrecioListaFinal.
  • Regla editorial de description y short_description.

J. Bloqueos / UNKNOWN

  • wc_product_id futuro no existe todavia como relacion persistida.
  • original_price no existe como campo nombrado en autoridad SOURCE-002.
  • No hay mapping aprobado de ids de categorias WooCommerce.
  • No hay regla final de imagenes para publicacion.
  • No hay regla final para publicar productos con stock=0.

K. Archivos creados/modificados

Creado:

  • docs/tenants/alpuntodeventa/business-observer/production/PDF-009C-SOURCE-002-WOOCOMMERCE-COMPARISON-DRY-RUN.md

Actualizados:

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

L. Validaciones ejecutadas

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

M. Estado final Git

Estado final esperado antes de commit:

  • rama main...origin/main
  • archivos modificados:
  • docs/PROJECT-STATE.md
  • docs/ROADMAP.md
  • docs/governance/ACTIVE-CONTEXT.md
  • docs/tenants/alpuntodeventa/business-observer/production/README.md
  • mkdocs.yml
  • archivo nuevo:
  • docs/tenants/alpuntodeventa/business-observer/production/PDF-009C-SOURCE-002-WOOCOMMERCE-COMPARISON-DRY-RUN.md

N. Recomendacion de commit

Recomendado despues de validar:

docs: open pdf-009c woocommerce comparison dry-run

O. Proximo paso recomendado

Abrir gate separado para resolver reglas comerciales pendientes antes de cualquier write:

  • categorias WooCommerce;
  • marca como atributo o taxonomia;
  • politica publish/draft para sin stock, sin precio y sin imagen;
  • regla final de precio ecommerce y oferta;
  • payload dry-run final con categorias resueltas.

P. Cierre de restricciones

En este gate no se hicieron writes, no se modifico WooCommerce, no se modifico La Directa, no se toco PostgreSQL con writes, no se imprimieron secretos, no se mostro .env, no se imprimio consumer key, no se imprimio consumer secret, no se ejecuto sync, no se ejecuto scheduler, no se ejecuto cron y no se ejecutaron pipelines.

Q. Estado post-publicacion

  • HEAD publicado y desplegado: 2bc2434143022e55a94e81f835bf926067173e88
  • origin/main, local y VPS: alineados en 2bc2434143022e55a94e81f835bf926067173e88
  • Knowledge Portal: desplegado OK
  • HTTP local VPS: 200
  • HTTP publico: 200