OpenClaw -> La Directa Data Response¶
Fecha: 2026-06-23
Estado: HANDOFF DOCUMENTAL / SIN RUNTIME / SIN WRITES
Scope: tenant
tenant_id: ladirecta
Destino funcional: La Directa WooCommerce
Owner: Gabi / Carlos Canu
1. Resumen ejecutivo¶
OpenClaw ya tiene un frente avanzado de datos para alimentar WooCommerce
La Directa, pero no debe considerarse sincronizacion productiva activa.
Estado real documentado:
SOURCE-002 Productosesta cargado y conciliado en PostgreSQL productivo dedicado para314SKUs.- Existe mapping candidate PostgreSQL/OpenClaw -> WooCommerce para productos, stock, precio base, marca, categorias, pack, minimo de venta y peso.
- Se ejecuto un piloto controlado con
10productos creados en WooCommerce comodraftyhidden, sin publish. - Existen atributo global
Marca / pa_marca, terminos de marca y categorias reales usadas por el piloto, segun evidencia dePDF-009M. - B2B tiene contrato documental, prototipo local y DDL candidate, pero las
tablas B2B reales no quedaron creadas en el gate
PDF-010Q. - Grafana/OpenClaw hoy solo consume metricas publicas
BlackboxyALERTS. No existen aun metricas comerciales WooCommerce ni exporters internos desde La Directa.
No hay autorizacion vigente para sync masivo, scheduler, cron, pipelines, publish automatico, updates de productos, carga de imagenes ni escritura B2B en PostgreSQL.
2. Estado actual de datos¶
Productos¶
Fuente principal: SOURCE-002 SGC Productos.
Disponibilidad documentada:
| Dato | Estado | Evidencia |
|---|---|---|
| SKUs | 314 disponibles |
PDF-009A, PDF-009M |
| Productos activos fuente | 314 con Estado = ACTIVO |
PDF-009G |
| Stock positivo | 212 SKUs |
PDF-009A |
| Stock cero | 100 SKUs |
PDF-009A |
| Precio/costo presente | 312 SKUs |
PDF-009A |
| Precio/costo faltante o cero | 2 SKUs |
PDF-009A, PDF-009G |
| Marcas fuente | 49 |
PDF-009A, PDF-009G |
| Categorias fuente | 13 |
PDF-009G |
| Pares categoria/subcategoria | 21 |
PDF-009G |
Campos disponibles para frontend/catalogo:
SKUArticulo/nameDescripcionsi existe o descripcion compuesta candidateMarcaCategorySubCategoriaPrecioListaFinalPrecioOfertaFinalcon regla pendienteStockPesoxUnidadUnidades_x_BultoCantVtaMinCantVentaAgrupadasupplier_code/supplier_namesolo para uso interno si se apruebaquality_statussource_row_hashsync_batch_id
Campos aun pendientes o no resueltos:
- imagenes desde SGC: no existen columnas de imagen en
SOURCE-002 - estado
DE BAJA: no observable en el snapshot porque la fuente vigente filtraACTIVO wc_product_idpersistente por SKU: pendiente como relacion futura- regla final de publish/draft para sin precio, sin stock y sin imagen
- categoria final para pares bajo
VARIOSo uso operativo/no vendible
WooCommerce actual observado¶
El ultimo estado relevante documentado para WooCommerce La Directa:
10productos creados comodraftcatalog_visibility=hidden- sin publish
- sin imagenes
- sin categorias nuevas durante el piloto
- sin marcas nuevas durante el piloto
- GET posterior por SKU confirmo productos reales con IDs
21a30
SKUs creados en piloto:
| SKU | product_id | Estado |
|---|---|---|
2442 |
21 |
draft / hidden |
2443 |
22 |
draft / hidden |
2444 |
23 |
draft / hidden |
2847 |
24 |
draft / hidden |
2446 |
25 |
draft / hidden |
2814 |
26 |
draft / hidden |
2815 |
27 |
draft / hidden |
2816 |
28 |
draft / hidden |
3514 |
29 |
draft / hidden |
0269 |
30 |
draft / hidden |
3. Fuentes y tablas documentadas¶
PostgreSQL / Business Observer¶
Tablas productivas de productos ya documentadas:
business_observer.catalog_source_002_productsbusiness_observer.core_source_002_productsbusiness_observer.inventory_source_002_currentbusiness_observer.inventory_source_002_daily_snapshotbusiness_observer.economic_source_002_productsbusiness_observer.mart_source_002_stock_alerts
Uso esperado:
| Tabla | Uso |
|---|---|
catalog_source_002_products |
catalogo WooCommerce-ready, campos display, categorias, marca, pack |
inventory_source_002_current |
stock actual para stock_quantity y stock_status |
inventory_source_002_daily_snapshot |
historico diario de stock |
economic_source_002_products |
precios, costos, listas y campos economicos internos |
mart_source_002_stock_alerts |
alertas analiticas de stock |
Fuentes documentales clave¶
SOURCE-001 SGC ClientesSOURCE-002 SGC ProductosSOURCE-002B WooCommerce ImagenesSOURCE-002C Stock Daily SnapshotSOURCE-002D Stock Current 10minSOURCE-003 Ventas / comprobantes
Para La Directa, la regla vigente es no mezclar datos de tenants. El material
de alpuntodeventa se usa como frente funcional del Business Observer hacia
WooCommerce La Directa, pero cualquier exposicion futura debe respetar
tenant_id y permisos.
4. Productos, precios y stock¶
Mapping WooCommerce candidate¶
| OpenClaw/PostgreSQL | WooCommerce | Estado |
|---|---|---|
sku |
sku |
READY |
name / Articulo |
name |
READY |
description |
description, short_description |
PENDING_RULE |
PrecioListaFinal |
regular_price |
READY como candidate |
PrecioOfertaFinal |
sale_price |
PENDING_RULE |
stock_quantity |
stock_quantity |
READY |
| constante | manage_stock=true |
READY |
| stock derivado | stock_status |
READY |
Category/SubCategoria |
product_cat |
requiere mapping/write gate |
Marca |
atributo global pa_marca |
candidate validado en piloto |
PesoxUnidad |
weight |
READY_OPTIONAL |
Unidades_x_Bulto |
meta/display field | READY |
CantVtaMin |
meta/display field | READY |
CantVentaAgrupada |
meta/display field | READY_OPTIONAL |
Images |
images[] |
pendiente de discovery/modelo |
Reglas vigentes:
- WooCommerce no debe ser ERP.
- WooCommerce puede almacenar precio publico, stock vendible, atributos filtrables, categorias y metadata display minima.
- Costos, margenes, proveedor, listas multiples y reglas economicas internas quedan en PostgreSQL/OpenClaw, no en frontend publico.
- Stock sync frecuente debe tocar solo stock/precio minimo aprobado, no imagenes ni campos editoriales.
5. Clientes y B2B¶
Datos disponibles¶
SOURCE-001 Clientes documenta una base para:
sgc_customer_id- nombre de cliente
- CUIT
- estado comercial
- lista de precio asignada
Reglas:
tenant_id + codigo_clientees la clave logica fuerte.- email y WhatsApp son sensibles y no deben usarse como unica clave.
- clientes suspendidos o de baja se preservan; no hay hard delete automatico.
Precios B2B¶
SOURCE-002 trae:
PrecioL1aPrecioL9PrecioNetoL1aPrecioNetoL9IVAPrecioL1aIVAPrecioL9MargenL1aMargenL9PrecioListaFinalPrecioListaNetoPrecioOfertaFinalPrecioCDescPermitidoFinal
Decision vigente:
- no asumir que
L1es precio publico default hasta validacion humana; regular_priceactual sigue basado enPrecioListaFinal;- listas multiples deben normalizarse por filas, no como columnas fijas en runtime publico;
- WooCommerce no debe ser fuente maestra de listas multiples.
Persistencia B2B¶
DDL candidate documentado:
business_observer.b2b_customer_mappingbusiness_observer.b2b_product_pricebusiness_observer.b2b_pricing_decision_logbusiness_observer.v_b2b_customer_effective_price
Estado real:
PDF-010Kdejo DDL candidate.PDF-010Qtermino enNO-GO PRE-DDL.- No se crearon tablas B2B reales.
- No se cargaron datos B2B.
- No se conecto runtime WooCommerce a este modelo.
Campos B2B disponibles para planificacion frontend:
| Campo B2B | Estado |
|---|---|
unidades_por_bulto |
disponible como Unidades_x_Bulto / display |
cantidad_minima_venta |
disponible como CantVtaMin / display |
incremento_venta |
disponible candidate como CantVentaAgrupada |
modo_venta |
no cerrado como campo final; requiere regla comercial |
price_list_code |
disponible documentalmente desde cliente/listas |
wc_customer_id |
pendiente de matching real |
sgc_customer_id |
disponible desde SOURCE-001 |
| precio por cliente/lista | candidate, requiere tablas reales y runtime |
6. WooCommerce API e integraciones¶
Estado API:
- hubo GET read-only para categorias, atributos, terminos y productos;
- hubo
10POST controlados a productos en estadodraft; - no existe sync masivo;
- no existe script productivo aprobado de create/update general;
- no existe cron, scheduler ni pipeline activo.
Endpoints WooCommerce usados o planificados:
/wp-json/wc/v3/products/wp-json/wc/v3/products/batchsolo como candidate futuro/wp-json/wc/v3/products/categories/wp-json/wc/v3/products/attributes/wp-json/wc/v3/products/attributes/{id}/terms
Reglas antes de cualquier proximo write:
- safe point limpio;
- credenciales presentes sin imprimir valores;
- backup y rollback si aplica;
- dry-run read-only por SKU;
- muestra chica aprobada;
- politica de publish/draft documentada;
- logs sin secretos ni payloads sensibles.
7. Observabilidad y Grafana¶
OpenClaw hoy consume:
probe_successprobe_duration_secondsprobe_ssl_earliest_cert_expiryprobe_http_status_codeALERTS
Cobertura publica activa:
https://ladirecta.com.ar/https://ladirecta.ar/https://ladirecta.com.ar/tienda/https://ladirecta.com.ar/carrito/https://ladirecta.com.ar/mi-cuenta/
Pendiente/candidato:
https://ladirecta.com.ar/finalizar-compra/, porque responde302hacia carrito y requiere patron dedicado.
No disponible hoy en Grafana/OpenClaw:
- pedidos
- ventas
- ticket promedio
- estados internos WooCommerce
- productos activos/sin stock/bajo stock
- productos sin imagen
- carrito/checkout interno
- salud WordPress/WooCommerce
- backups/restore del VPS WooCommerce
- SMTP WooCommerce
- host metrics del VPS WooCommerce
Regla obligatoria:
- Grafana y Prometheus no deben consultar directo la DB productiva WooCommerce.
- Toda metrica interna/comercial debe venir desde endpoint, exporter o agregado seguro publicado por La Directa Ops.
8. Endpoints/exporters propuestos¶
Fase 2 operativa¶
Productor seguro del lado La Directa:
GET /ops/healthGET /ops/backups/statusGET /ops/restore/statusGET /ops/smtp/statusGET /ops/services/statusGET /ops/logs/summarynode_exporterprivado para VPS WooCommerce
Metricas esperadas:
wp_health_statuswoo_health_statusbackup_last_success_age_secondsrestore_drill_last_success_age_secondssmtp_last_check_successredis_health_statuscritical_service_statuscritical_log_events_totalhost_cpu_usage_ratiohost_memory_usage_ratiohost_disk_usage_ratio
Fase 3 comercial agregada¶
Productor seguro del lado La Directa:
GET /ops/metrics/ordersGET /ops/metrics/catalogGET /ops/metrics/cart-checkout
Metricas esperadas:
orders_totalorders_revenue_totalaverage_order_valueorders_by_status_totalactive_products_totalout_of_stock_products_totallow_stock_products_totalproducts_without_image_totalcart_starts_totalcheckout_starts_totalcheckout_completions_totalcheckout_conversion_ratio
Restricciones:
- no exponer
order_id,customer_id, email, telefono, nombre, direccion,skuniproduct_namecomo labels Prometheus; - si se necesita analitica por SKU, usar snapshots/reportes fuera de Prometheus.
9. Roadmap de datos para frontend y venta¶
Frontend listado/card¶
Datos listos o candidate:
- nombre:
Articulo -> name - marca:
Marca -> pa_marca - precio publico:
PrecioListaFinal -> regular_price - stock:
stock_quantity,stock_status - pack:
Unidades_x_Bulto - minimo:
CantVtaMin - categoria/subcategoria:
product_cat - imagen principal: pendiente de
Images
Bloqueos:
- imagenes no vienen desde SGC;
- filtros por marca requieren atributo global estable;
- categorias bajo
VARIOSrequieren decision comercial.
Producto individual¶
Datos listos o candidate:
- ficha basica por SKU;
- descripcion compuesta si falta descripcion larga;
- marca, categoria, stock, precio, pack y minimo;
- galeria
Images[]como candidate futuro.
Bloqueos:
- discovery/modelo de imagenes;
- regla final de productos sin stock o sin imagen;
- metadata SEO de imagenes requiere gate futuro.
Carrito¶
Requerido:
- validar minimo de venta server-side;
- validar incremento/agrupacion si
CantVentaAgrupadaqueda aprobado; - recalcular precio B2B por cliente logueado desde fuente server-side;
- bloquear silencios peligrosos: cliente sin lista, SKU sin precio, lista sin precio vigente.
Estado:
- prototipo local B2B existe;
- runtime WooCommerce no conectado;
- tablas B2B reales pendientes.
Checkout¶
Requerido:
- persistir por linea
sku,price_list_code, precio aplicado, timestamp y hash/fuente; - no confiar en precio renderizado;
- recalcular en server-side;
- definir fallback comercial para cliente sin mapping o precio faltante.
Estado:
- contrato documental listo;
- implementacion real pendiente.
Emails logisticos¶
Datos recomendados para email/operacion:
- SKU
- nombre de producto
- cantidad pedida
- unidades por bulto
- minimo/incremento aplicado
- stock/estado al momento de compra si negocio lo requiere
- estado de pago/envio desde WooCommerce
- datos logisticos agregados sin exponer costos, margenes ni reglas internas
Pendientes:
- definir plantilla exacta;
- definir si se agregan campos B2B en line items;
- definir si emails se modifican en WooCommerce/PHP o via automatizacion externa;
- validar que no se expongan listas, costos ni margenes.
10. Proximos gates recomendados¶
- La Directa: validar estado real actual de los
10drafts en WooCommerce Admin y decidir si siguen, se eliminan o se usan como base de QA. - OpenClaw/La Directa: ejecutar discovery read-only actualizado de productos,
categorias, atributo
pa_marca, terminos e imagenes. - OpenClaw: cerrar decision comercial de productos sin stock, sin imagen,
sin precio y categorias
VARIOS. - OpenClaw: reintentar DDL B2B solo con backup nuevo, admin/owner validado y autorizacion explicita.
- La Directa: definir productor seguro Fase 2 para health, backups, SMTP, servicios y host metrics.
- La Directa: definir productor seguro Fase 3 para KPIs agregados de pedidos, ventas, catalogo y carrito/checkout.
- OpenClaw/La Directa: definir implementacion B2B de carrito/checkout y emails logisticos con recalculo server-side.
11. Restricciones preservadas¶
Este handoff no ejecuto:
- WooCommerce API
- SQL
- Docker
- deploy
- push
- sync
- scheduler
- cron
- pipelines
- lectura o impresion de secretos
Este handoff solo crea documentacion versionada para responder al frente frontend/WooCommerce de La Directa.