Arquitectura y modelo de compra
Responsabilidades
Sección titulada «Responsabilidades»| Componente | Responsabilidad |
|---|---|
| Persona y agente | Descubrir productos, entregar datos de compra y confirmar explícitamente. |
| Setareh | Consultar Shopify, fijar el quote, validar el settlement y evitar duplicados. |
| Shopify | Fuente de verdad de catálogo, variantes, inventario, draft orders y órdenes. |
| Wallet del agente | Lee el desafío x402, aplica sus límites locales y firma el pago. |
| Facilitador x402 | Verifica y liquida el pago antes de que Setareh complete el draft. |
| Stellar testnet | Red de liquidación del MVP para USDC testnet. |
Setareh no recibe la clave privada de la wallet. Shopify tampoco se sustituye: la orden final, sus datos de fulfillment y el inventario permanecen en el backoffice del comercio.
Shopify primero, no Shopify para siempre
Sección titulada «Shopify primero, no Shopify para siempre»El código del MVP usa un cliente Shopify directamente. Esa decisión permite probar catálogo, inventario, borradores y órdenes con una sola fuente de verdad, pero no significa que Setareh ya soporte otras plataformas.
La frontera de extensión prevista es un adaptador de comercio. Antes de sumar otro canal, debe existir una implementación del adaptador y sus pruebas para:
- buscar catálogo y variantes;
- consultar disponibilidad para una cantidad concreta;
- crear una cotización/borrador con el precio y despacho del comercio;
- completar o crear la orden después de un settlement válido;
- consultar la orden para recuperación y conciliación.
El núcleo de Setareh —políticas, quote con vencimiento, estado de pago,
idempotencia, auditoría y manual_review— debe conservar el mismo contrato
independientemente del adaptador. Un futuro conector para otro e-commerce,
backoffice propio o comercio físico tendrá su alcance, amenazas y pruebas
propios; no es una capacidad actual del MVP.
Flujo de compra
Sección titulada «Flujo de compra»Agente ── busca catálogo / consulta stock ──► Setareh ──► ShopifyAgente ── crea quote confirmado ────────────► Setareh ──► Draft order ShopifyWallet ◄── endpoint de pago x402 ──────────── SetarehWallet ── POST, desafío 402 y pago firmado ─► Facilitador x402 / Stellar testnetFacilitador ── settlement válido ───────────► Setareh ──► Completa orden ShopifySetareh ── orden y evidencia segura ────────► AgenteEl quote captura los ítems, la dirección, el total de Shopify, el equivalente USDC, la fuente de tasa y un vencimiento. No es sólo una estimación: el servidor compara el desafío x402 contra ese quote antes de crear una orden.
Estados
Sección titulada «Estados»quoted → payment_required → payment_submitted → payment_settled → creating_shopify_order → createdEl paso a payment_submitted es atómico: sólo un intento de pago puede
reclamar el quote, y el facilitador no recibe ningún otro.
Los estados de excepción son expired, out_of_stock, payment_failed,
payment_unknown y manual_review. Un estado de revisión nunca es éxito: se
detienen los reintentos y se concilia con el mismo quoteId. payment_unknown
significa que el settlement no tuvo una respuesta definitiva y se resuelve
consultando la red con reconcile:payment.
Consulta Estados y recuperación para el significado operativo de cada uno.
Límites deliberados del MVP
Sección titulada «Límites deliberados del MVP»- Un comercio piloto por configuración.
- Sólo
USDCenstellar:testnet. - Quotes de duración y máximo USDC configurables.
- Despacho fijo opcional; no hay cotización dinámica de tarifas Shopify.
- No hay mainnet, devolución automática, custodia de wallets ni autenticación pública de la API lista para producción.