Files
shopify_run_run/docs/analisis_tiempos.md
T
georgeandClaude Sonnet 5.5 901dd8763d Integración Shopify → SAP Business One (snobbycl y on-chile)
Pipeline de integración de órdenes de Shopify a SAP Service Layer:
Invoice de reserva, pago con tarjeta o transferencia por transacción,
solicitud de traslado, traslado de stock y entrega.

- Invoice igual a lo cobrado; fulfillments limitados a lo facturado
- Estados terminales integrated, timeout, ignored y cancelled
- Idempotencia contra SAP: adopta documentos existentes en vez de duplicar
- Reintentos de red en el cliente de Shopify
- Secretos fuera de los JSON de tienda (${VARIABLE} resuelta desde .env)
- Herramientas de consulta, integración puntual y carga de pruebas
- Documentación en docs/ (flujo, casos especiales, mapeo, configuración)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 19:22:40 -05:00

3.2 KiB

Análisis de tiempos del pipeline Shopify → SAP

Fecha de medición: 2026-09-25. Entorno: SAP Service Layer (SBODemoCL) en la misma red/VPN, Shopify Admin API por internet.

Latencias individuales medidas (llamadas aisladas)

Llamada Tiempo promedio
SAP GET (misma red/VPN) ~0.056 s
Shopify GET orden completa ~0.469 s

Ciclo real completo (20 órdenes, snobbycl, sin RUT)

Métrica Valor
Duración total 87 s
Promedio por orden ~4.3 s
Intervalo configurado ("rapido") 600 s
Margen usado ~14% del ciclo

Esta medición corresponde a órdenes sin RUT (ninguna llamó a BusinessPartners), caso "tienda" completo: Invoice → Payment → InventoryTransferRequest → StockTransfer → Delivery, con sus referencias cruzadas.

Ruta más larga: tienda + RUT nuevo (creación de BusinessPartner)

16 llamadas en total:

# Servicio Llamada Tiempo aprox.
1 Shopify GET orders/{id}.json ~0.47 s
2 SAP GET BusinessPartners (buscar por RUT) ~0.06 s
3 SAP POST BusinessPartners (crear, RUT no existía) ~0.40 s
4 SAP POST Invoices ~0.35 s
5 SAP POST IncomingPayments ~0.35 s
6 SAP POST InventoryTransferRequests ~0.35 s
7 SAP GET Invoices (leer referencias) ~0.06 s
8 SAP PATCH Invoices (agregar ref. ITR) ~0.35 s
9 SAP GET InventoryTransferRequests (traer líneas completas) ~0.06 s
10 SAP POST StockTransfers ~0.35 s
11 SAP GET Invoices (leer referencias) ~0.06 s
12 SAP PATCH Invoices (agregar ref. StockTransfer) ~0.35 s
13 SAP GET StockTransfers (traer líneas completas) ~0.06 s
14 SAP POST DeliveryNotes ~0.35 s
15 SAP GET Invoices (leer referencias) ~0.06 s
16 SAP PATCH Invoices (agregar ref. Delivery) ~0.35 s

Subtotales

Tipo Cantidad Tiempo total
Shopify GET 1 ~0.47 s
SAP GET 6 ~0.36 s
SAP POST 6 ~2.15 s
SAP PATCH 3 ~1.05 s
Total 16 ~4.0-4.6 s

Coincide con lo medido en vivo (~4.3 s/orden en snobbycl sin RUT — a esa ruta le faltan las llamadas 2 y 3 de la tabla, por eso da un poco menos que esta ruta completa con creación de BusinessPartner).

Caso CD (solo ITR, sin StockTransfer ni Delivery, sin RUT): ~5 llamadas, bastante más rápido que el caso tienda completo.

Capacidad estimada por ciclo

Con ~4.3-4.6 s/orden real, dejando colchón de seguridad (~70-80% del intervalo usado, el resto para variabilidad de red, reintentos por 401, rate limit de Shopify):

Modo Intervalo Teórico máx. Recomendado con margen
rapido 600 s ~139 órdenes ~95-110
full 1800 s ~418 órdenes ~290-330

Configuración aplicada

max_orders_per_cycle = 50 para ambas tiendas (snobbycl y on-chile-distributor-prod), muy por debajo de la capacidad real medida — deja margen amplio para picos de tráfico o llamadas más lentas de lo normal.

Con 50 órdenes/ciclo y ~4.6 s/orden en el peor caso (todas con RUT nuevo), un ciclo tardaría ~230 s, menos del 40% del intervalo "rapido" de 600 s.