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.mdCODEX.mddocs/governance/ACTIVE-CONTEXT.mddocs/governance/GOVERNANCE-CONTROL-TOWER.mddocs/governance/VALIDATION-STATE.mddocs/PROJECT-STATE.mddocs/ROADMAP.mddocs/governance/operations/CURRENT-BASELINE.mddocs/tenants/alpuntodeventa/business-observer/blueprints/PRODUCT-BLUEPRINT.mddocs/tenants/alpuntodeventa/business-observer/BUSINESS-OBSERVER-DATA-CONTRACT-001.mddocs/tenants/alpuntodeventa/business-observer/source-authority/SOURCE-002-PRODUCTOS-PRODUCTS-AUTHORITY.sqldocs/tenants/alpuntodeventa/business-observer/SOURCE-002-FUTURE-LAYER-MAPPING.mddocs/tenants/alpuntodeventa/business-observer/production/PDF-009A-WOOCOMMERCE-PRODUCTS-MAPPING-API-CANDIDATE.mddocs/tenants/alpuntodeventa/business-observer/production/PDF-009B-1-WOOCOMMERCE-PRODUCT-API-EXTENSION-DESIGN.mddocs/tenants/alpuntodeventa/business-observer/production/PDF-009B-WOOCOMMERCE-READ-ONLY-PREFLIGHT.mdinfra/business-observer/production/woocommerce/products/PDF-009A/
Confirmacion documental:
PDF-009Besta publicado y cerrado comoVERDE TECNICO / AMARILLO FUNCIONAL ESPERADO.- El proximo gate vigente era
PDF-009C SOURCE-002 -> WooCommerce comparison dry-run / NO WRITES. PDF-009B-1confirma estrategiaWooCommerce native first,meta_dataprivada minima y sin necesidad actual de plugin,register_rest_field,register_metani 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_stockyweight. - WooCommerce puede usar
meta_dataprivada minima paraPLU, 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_datapesada. - 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_metaniregister_rest_fieldpara 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/draftpara productos sin stock. - Politica de
publish/draftpara productos sin imagen. - Regla final de
sale_pricey vigencia de oferta. - Confirmar si alguna lista especifica, por ejemplo
L1, debe ser la lista ecommerce o si se mantienePrecioListaFinal. - Regla editorial de
descriptionyshort_description.
J. Bloqueos / UNKNOWN¶
wc_product_idfuturo no existe todavia como relacion persistida.original_priceno 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.mddocs/PROJECT-STATE.mddocs/ROADMAP.mddocs/governance/ACTIVE-CONTEXT.mdmkdocs.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.mddocs/ROADMAP.mddocs/governance/ACTIVE-CONTEXT.mddocs/tenants/alpuntodeventa/business-observer/production/README.mdmkdocs.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 en2bc2434143022e55a94e81f835bf926067173e88- Knowledge Portal: desplegado OK
- HTTP local VPS:
200 - HTTP publico:
200