Saltar a contenido

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 Productos esta cargado y conciliado en PostgreSQL productivo dedicado para 314 SKUs.
  • 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 10 productos creados en WooCommerce como draft y hidden, sin publish.
  • Existen atributo global Marca / pa_marca, terminos de marca y categorias reales usadas por el piloto, segun evidencia de PDF-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 Blackbox y ALERTS. 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:

  • SKU
  • Articulo / name
  • Descripcion si existe o descripcion compuesta candidate
  • Marca
  • Category
  • SubCategoria
  • PrecioListaFinal
  • PrecioOfertaFinal con regla pendiente
  • Stock
  • PesoxUnidad
  • Unidades_x_Bulto
  • CantVtaMin
  • CantVentaAgrupada
  • supplier_code / supplier_name solo para uso interno si se aprueba
  • quality_status
  • source_row_hash
  • sync_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 filtra ACTIVO
  • wc_product_id persistente por SKU: pendiente como relacion futura
  • regla final de publish/draft para sin precio, sin stock y sin imagen
  • categoria final para pares bajo VARIOS o uso operativo/no vendible

WooCommerce actual observado

El ultimo estado relevante documentado para WooCommerce La Directa:

  • 10 productos creados como draft
  • catalog_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 21 a 30

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_products
  • business_observer.core_source_002_products
  • business_observer.inventory_source_002_current
  • business_observer.inventory_source_002_daily_snapshot
  • business_observer.economic_source_002_products
  • business_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 Clientes
  • SOURCE-002 SGC Productos
  • SOURCE-002B WooCommerce Imagenes
  • SOURCE-002C Stock Daily Snapshot
  • SOURCE-002D Stock Current 10min
  • SOURCE-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
  • email
  • WhatsApp
  • estado comercial
  • lista de precio asignada

Reglas:

  • tenant_id + codigo_cliente es 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:

  • PrecioL1 a PrecioL9
  • PrecioNetoL1 a PrecioNetoL9
  • IVAPrecioL1 a IVAPrecioL9
  • MargenL1 a MargenL9
  • PrecioListaFinal
  • PrecioListaNeto
  • PrecioOfertaFinal
  • PrecioCDescPermitidoFinal

Decision vigente:

  • no asumir que L1 es precio publico default hasta validacion humana;
  • regular_price actual sigue basado en PrecioListaFinal;
  • 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_mapping
  • business_observer.b2b_product_price
  • business_observer.b2b_pricing_decision_log
  • business_observer.v_b2b_customer_effective_price

Estado real:

  • PDF-010K dejo DDL candidate.
  • PDF-010Q termino en NO-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 10 POST controlados a productos en estado draft;
  • 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/batch solo 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_success
  • probe_duration_seconds
  • probe_ssl_earliest_cert_expiry
  • probe_http_status_code
  • ALERTS

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 responde 302 hacia 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/health
  • GET /ops/backups/status
  • GET /ops/restore/status
  • GET /ops/smtp/status
  • GET /ops/services/status
  • GET /ops/logs/summary
  • node_exporter privado para VPS WooCommerce

Metricas esperadas:

  • wp_health_status
  • woo_health_status
  • backup_last_success_age_seconds
  • restore_drill_last_success_age_seconds
  • smtp_last_check_success
  • redis_health_status
  • critical_service_status
  • critical_log_events_total
  • host_cpu_usage_ratio
  • host_memory_usage_ratio
  • host_disk_usage_ratio

Fase 3 comercial agregada

Productor seguro del lado La Directa:

  • GET /ops/metrics/orders
  • GET /ops/metrics/catalog
  • GET /ops/metrics/cart-checkout

Metricas esperadas:

  • orders_total
  • orders_revenue_total
  • average_order_value
  • orders_by_status_total
  • active_products_total
  • out_of_stock_products_total
  • low_stock_products_total
  • products_without_image_total
  • cart_starts_total
  • checkout_starts_total
  • checkout_completions_total
  • checkout_conversion_ratio

Restricciones:

  • no exponer order_id, customer_id, email, telefono, nombre, direccion, sku ni product_name como 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 VARIOS requieren 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 CantVentaAgrupada queda 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

  1. La Directa: validar estado real actual de los 10 drafts en WooCommerce Admin y decidir si siguen, se eliminan o se usan como base de QA.
  2. OpenClaw/La Directa: ejecutar discovery read-only actualizado de productos, categorias, atributo pa_marca, terminos e imagenes.
  3. OpenClaw: cerrar decision comercial de productos sin stock, sin imagen, sin precio y categorias VARIOS.
  4. OpenClaw: reintentar DDL B2B solo con backup nuevo, admin/owner validado y autorizacion explicita.
  5. La Directa: definir productor seguro Fase 2 para health, backups, SMTP, servicios y host metrics.
  6. La Directa: definir productor seguro Fase 3 para KPIs agregados de pedidos, ventas, catalogo y carrito/checkout.
  7. 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.