PDF-009M - WooCommerce Product Draft Pilot Write¶
Fecha: 2026-06-22
Estado: WRITE CONTROLADO / PRODUCTOS DRAFT CREADOS / SIN PUBLISH
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 [ahead 1] |
git rev-parse HEAD |
f9e54f063154381ad2960d79ecb9e4630060ea5a |
git rev-parse origin/main |
e127c0f48c883abb25d08d2bb7c8d1e2a3dc12c9 |
git log -3 --oneline |
f9e54f0 docs: add pdf-009l categories controlled write; e127c0f docs: add pdf-009k marca terms controlled write; f67bd60 docs: add pdf-009j marca attribute controlled write |
git diff --check inicial |
PASS |
Safe point esperado confirmado: HEAD local inicio en
f9e54f063154381ad2960d79ecb9e4630060ea5a, un commit adelante de
origin/main, con PDF-009L ya commiteado localmente.
B. Publicacion PDF-009L¶
Validaciones y despliegue ejecutados antes del piloto:
| Control | Resultado |
|---|---|
.\.venv-portal\Scripts\mkdocs.exe build --strict |
PASS |
git push origin main |
PASS, e127c0f..f9e54f0 main -> main |
VPS git pull --ff-only |
PASS, fast-forward a f9e54f063154381ad2960d79ecb9e4630060ea5a |
| Deploy Knowledge Portal | PASS |
VPS local http://127.0.0.1:8085/ |
200 |
Publico https://doc.alpuntodeventa.com.ar/ |
200 |
C. Validacion WooCommerce previa¶
.env existe localmente y esta ignorado por Git mediante .gitignore.
No se imprimio contenido de .env ni valores de secretos.
| Variable | Estado |
|---|---|
LADIRECTA_WC_BASE_URL |
PRESENT |
LADIRECTA_WC_CONSUMER_KEY |
PRESENT |
LADIRECTA_WC_CONSUMER_SECRET |
PRESENT |
GET read-only previo:
| Recurso | Resultado |
|---|---|
products/categories?hide_empty=false |
HTTP 200, 28 categorias |
products/attributes |
HTTP 200, 1 atributo |
Marca / pa_marca |
attribute_id=1, type=select |
products/attributes/1/terms?hide_empty=false |
HTTP 200, 48 terminos |
products?sku=... antes de cada create |
HTTP 200, sin producto existente para los 10 SKUs creados |
D. Muestra piloto seleccionada¶
Fuente local segura:
snapshots/source-002/SOURCE-002-PRODUCTS-RUNTIME-PREFLIGHT-20260620-173614.csv- SHA256 observado:
c961ffc2b352b6bb3dd0d59bf3d8b7c0f7facff58a9201f7cf45e290141b704f
Inventario local:
| Metrica | Resultado |
|---|---|
| filas SOURCE-002 snapshot | 314 |
| columnas snapshot | 81 |
| aptos creados en piloto | 10 |
| aptos no creados por limite del piloto | 290 |
| bloqueados por reglas | 14 |
| saltados por existencia previa antes de create | 0 |
E. Matriz aptos/bloqueados¶
Productos aptos seleccionados y creados:
| SKU | Producto | Marca | Stock | Regular price | Categorias Woo | Marca term |
|---|---|---|---|---|---|---|
2442 |
Pudding de Choco c/chip x300 grs |
100 DUCADOS |
0 |
2020.901 |
67 / 79 |
16 |
2443 |
Pudding Gales C/Nuez x300 grs |
100 DUCADOS |
0 |
2020.901 |
67 / 79 |
16 |
2444 |
Pudding Limon c/ semilla de Amapolla x300 grs |
100 DUCADOS |
0 |
2020.901 |
67 / 79 |
16 |
2847 |
Pudding Naranja c/ cascara x350 grs |
100 DUCADOS |
0 |
2020.901 |
67 / 79 |
16 |
2446 |
Pudding Vainila capa frutos secos x300 grs |
100 DUCADOS |
0 |
2020.901 |
67 / 79 |
16 |
2814 |
Chips Papas x 80gr Alwa |
ALWA |
970 |
1081.151 |
64 / 76 |
17 |
2815 |
Chips Batata x 80gr Alwa |
ALWA |
1860 |
1081.151 |
64 / 76 |
17 |
2816 |
Pochoclo dulce x 75gr Alwa |
ALWA |
292 |
946.940 |
74 / 89 |
17 |
3514 |
Nachos con Chia x80gr Alwa |
ALWA |
240 |
1153.947 |
64 / 76 |
17 |
0269 |
Arrocitas C/Sal x 101gr Ce |
ARROCITAS |
516 |
1015.718 |
68 / 81 |
18 |
Bloqueados observados en matriz local:
| SKU | Producto | Motivo |
|---|---|---|
3565 |
Lamp. Led Candela Fria X5uni 12W |
VARIOS, parent category no resuelta |
3569 |
Globos Liso Surtidos x50uni |
VARIOS, parent category no resuelta |
3905 |
Adhesivo Inst. Liquido Candela x6ux2gr |
VARIOS, parent category no resuelta |
3906 |
Adhesivo Inst. Gel Candela x6ux3gr |
VARIOS, parent category no resuelta |
3907 |
Cinta Embalar Candela Transp.x6ux42mts |
VARIOS, parent category no resuelta |
3870 |
Lamp. Led Candela Fria X5uni 15W |
stock invalido, VARIOS, parent category no resuelta |
3871 |
Lamp. Led Candela Fria X5uni 7W |
VARIOS, parent category no resuelta |
3872 |
Lamp. Led Candela Fria X5uni 9W |
VARIOS, parent category no resuelta |
3873 |
Pilas AA Candela x10u |
VARIOS, parent category no resuelta |
3874 |
Pilas AAA Candela x10u |
VARIOS, parent category no resuelta |
3805 |
Exhibidor Kra 7 Canastos (Autoservicio) |
VARIOS, parent category no resuelta |
3995 |
Saldos Clientes |
precio invalido, VARIOS, NO APLICA, SKU sin precio bloqueado, marca no resuelta |
4010 |
Asesoramiento de servicios de marketing |
precio invalido, VARIOS, NO APLICA, SKU sin precio bloqueado, marca no resuelta |
2230 |
Envio a Domicilio |
stock invalido, VARIOS, NO APLICA, parent category no resuelta, marca no resuelta |
F. Payload candidate¶
Forma de payload aplicada:
json
{
"type": "simple",
"status": "draft",
"catalog_visibility": "hidden",
"regular_price": "PrecioListaFinal",
"manage_stock": true,
"stock_status": "instock/outofstock",
"categories": [
{ "id": "parent_product_cat_id" },
{ "id": "child_product_cat_id" }
],
"attributes": [
{
"id": 1,
"visible": true,
"variation": false,
"options": ["Marca existente"]
}
],
"meta_data": [
{ "key": "_apv_units_per_pack", "value": "Unidades_x_Bulto" },
{ "key": "_apv_min_sale_quantity", "value": "CantVtaMin" },
{ "key": "_apv_sale_pack_quantity", "value": "CantVentaAgrupada" },
{ "key": "_apv_source_sku", "value": "SKU" },
{ "key": "_apv_source_snapshot_hash", "value": "SHA256 snapshot" }
]
}
Se incluyo weight cuando PesoxUnidad estaba disponible y era mayor a cero.
No se incluyeron costos, proveedor, descuentos internos, margenes, listas
multiples, datos sensibles ni imagenes.
G. Writes ejecutados¶
Se ejecutaron 10 POST autorizados contra products.
Guardas aplicadas:
- maximo
10productos; - antes de cada POST, GET por SKU;
status=draft;catalog_visibility=hidden;- sin
publish; - sin imagenes;
- sin categorias nuevas;
- sin marcas nuevas;
- sin Media Library;
- sin batch ni sync masivo.
H. Productos draft creados¶
| SKU | product_id | Status | Visibility | Stock | Stock status | Regular price |
|---|---|---|---|---|---|---|
2442 |
21 |
draft |
hidden |
0 |
outofstock |
2020.901 |
2443 |
22 |
draft |
hidden |
0 |
outofstock |
2020.901 |
2444 |
23 |
draft |
hidden |
0 |
outofstock |
2020.901 |
2847 |
24 |
draft |
hidden |
0 |
outofstock |
2020.901 |
2446 |
25 |
draft |
hidden |
0 |
outofstock |
2020.901 |
2814 |
26 |
draft |
hidden |
970 |
instock |
1081.151 |
2815 |
27 |
draft |
hidden |
1860 |
instock |
1081.151 |
2816 |
28 |
draft |
hidden |
292 |
instock |
946.940 |
3514 |
29 |
draft |
hidden |
240 |
instock |
1153.947 |
0269 |
30 |
draft |
hidden |
516 |
instock |
1015.718 |
I. GET posterior por SKU¶
GET posterior confirmo para los 10 SKUs:
- producto encontrado por SKU;
product_idreal devuelto;status=draft;catalog_visibility=hidden;- precio, stock y
stock_statuscoincidentes; - categorias reales WooCommerce asociadas;
- atributo global
Marca / pa_marcacon termino existente.
J. Evidencia no sensible¶
.envfue validado como ignorado por Git, sin imprimir su contenido.- Las variables requeridas fueron validadas solo como
PRESENT. - SOURCE-002 local seguro se uso desde snapshot CSV con SHA256 confirmado.
- Se usaron solo categorias y marcas existentes en WooCommerce.
- Los SKUs
3995y4010quedaron bloqueados por precio0.000,VARIOSyNO APLICA. - La evidencia operativa no contiene secretos ni payloads con datos sensibles.
- Un intento read-only de GET por todos los SKUs excedio el timeout local y se corto sin ejecutar writes adicionales; la matriz final se documento desde snapshot local y GET de catalogos WooCommerce.
K. Documentacion creada/modificada¶
Creado:
docs/tenants/alpuntodeventa/business-observer/production/PDF-009M-WOOCOMMERCE-PRODUCT-DRAFT-PILOT-WRITE.md
Actualizados:
docs/tenants/alpuntodeventa/business-observer/production/README.mddocs/PROJECT-STATE.mddocs/ROADMAP.mddocs/governance/ACTIVE-CONTEXT.mdmkdocs.yml
L. Restricciones respetadas¶
Durante este gate:
- no se publicaron productos;
- no se crearon categorias;
- no se crearon marcas;
- no se subieron imagenes;
- no se modifico Media Library;
- no se toco PostgreSQL con writes;
- no se imprimieron secretos;
- no se ejecuto sync masivo;
- no se activo scheduler/cron/pipelines.
M. Proximos pasos¶
- Revision manual en WooCommerce Admin de los
10drafts creados. - Definir si los productos con stock
0deben permanecer como draft hidden o excluirse del siguiente piloto comercial. - Abrir gate separado para imagenes o para segundo lote controlado, nunca como sync masivo.