Saltar a contenido

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 10 productos;
  • 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_id real devuelto;
  • status=draft;
  • catalog_visibility=hidden;
  • precio, stock y stock_status coincidentes;
  • categorias reales WooCommerce asociadas;
  • atributo global Marca / pa_marca con termino existente.

J. Evidencia no sensible

  • .env fue 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 3995 y 4010 quedaron bloqueados por precio 0.000, VARIOS y NO 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.md
  • docs/PROJECT-STATE.md
  • docs/ROADMAP.md
  • docs/governance/ACTIVE-CONTEXT.md
  • mkdocs.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

  1. Revision manual en WooCommerce Admin de los 10 drafts creados.
  2. Definir si los productos con stock 0 deben permanecer como draft hidden o excluirse del siguiente piloto comercial.
  3. Abrir gate separado para imagenes o para segundo lote controlado, nunca como sync masivo.