Standard Agentic Commerce Engine
The Standard Agentic Commerce Engine is a standard client and protocol guide for connecting agents to compatible e-commerce backends. It gives agents a consistent way to search products, manage carts, access account data, create orders, and hand payment back to the user.
GitHub Repository: https://github.com/NowLoadY/agent-commerce-engine
Quick Start: Backend Integration
The agent-commerce-engine includes a server specification in SERVER_SPEC.md for sites that want to expose a compatible commerce API. By implementing the documented endpoints, an existing storefront can support agent-driven product discovery, cart actions, account flows, and order creation without requiring a custom tool for each brand.
Reference Case: Lafeitu
For a production-grade implementation example using this engine, see the Lafeitu Gourmet Skill. It demonstrates the engine specialized for a real-world artisanal food brand.
🔒 Security & Privacy
To ensure transparency and protect user data, the Standard Agentic Commerce Engine follows these security protocols:
1. Local Credential Persistence
- Storage Location:
~/.openclaw/credentials/agent-commerce-engine/ - Mechanism: Account and session Token information is stored locally in JSON format. The credential file is written with
0600(user-only) permissions. - Security Upgrade: Since version 1.4.0, raw passwords are never stored after the initial login. The engine exchanges the password for a signed cryptographic token.
- Scope: Credentials are stored on the local machine for reuse by the current user environment.
- Lifecycle: Credentials can be purged at any time by running the
logoutcommand.
2. Secure Transmission
- Token-based Auth: Uses
x-api-tokenheaders for authentication. Raw passwords are only transmitted once during theloginorregisterphase to exchange for a token. - HTTPS Enforcement: The client rejects non-HTTPS remote endpoints.
localhostand127.0.0.1remain available for local development. - Encrypted Transport: Production traffic is expected to run over HTTPS so tokens are not sent over plain HTTP.
3. Anonymous Tracking (Visitor ID)
- To support shopping carts for unauthenticated users, a unique, non-identifiable
Visitor ID(UUID v4) is generated and stored locally. This ID contains no personal information.
🛠 Tool Priority & Fallback Strategy
To provide the most accurate and efficient experience, follow this priority sequence:
- API First (Primary): Always attempt to use the
commerce.pyscript first. It provides structured, high-precision data. Target a store via--store <url>argument. - Stateless Headers: Rely on the engine's built-in header management (
x-user-account,x-visitor-id) to maintain session integrity without cookies. - Self-Correction: If the API returns a 404 for a specific slug discovered via browser, prioritize the API's
searchresults as the source of truth for the backend.
🧠 Agent Operational Logic
Follow these logical flows to ensure a high-quality user experience:
1. Product Discovery & Validation
Goal: Ensure the item exists and find the correct specifications before taking action.
- Action: Always run
searchorlistbefore adding to cart. - Logic: Use the API to discover the correct
slugand validvariantspecs. Use--pageand--limitarguments to safely navigate large catalogs without overwhelming the context limit. - Refinement: If multiple results are found, ask the user to specify based on the returned attributes. If
totalPages > pagein the results, consider fetching the next page or refining the search.
2. Authentication & Profile Flow
Goal: Manage user privacy and session data.
- Logic: The API is stateless. Actions requiring identity will return
401 Unauthorizedif credentials aren't saved. - Commands:
- View profile:
python3 scripts/commerce.py get-profile - Update details:
python3 scripts/commerce.py update-profile --name "Name" --address "..." --phone "..." --email "..."
- View profile:
- Required Data: Respect the schema of the specific brand's backend.
3. Registration Flow
Goal: Handle new users.
- Trigger: When the user needs a new account or the backend returns "User Not Found".
- Instruction: Prefer the built-in
send-codeandregistercommands when the backend supports them. If a backend only returns a registration URL, hand the user to that flow.
4. Shopping Cart Management
Goal: Precise modification of the user's shopping session.
- Logic: The engine supports incrementing quantities or setting absolute values.
- Commands:
- Add:
python3 scripts/commerce.py add-cart <slug> --variant <V> --quantity <Q> - Update:
python3 scripts/commerce.py update-cart <slug> --variant <V> --quantity <Q> - Remove:
python3 scripts/commerce.py remove-cart <slug> --variant <V> - Clear:
python3 scripts/commerce.py clear-cart - Checkout / Create Order (Handoff):
python3 scripts/commerce.py create-order --name <NAME> --phone <PHONE> --province <PROVINCE> --city <CITY> --address <ADDRESS>
- Add:
- Validation: Variant values must be strictly chosen from the product's available options list.
- Payment Flow (Crucial): Agents currently cannot directly execute consumer payments (card/mobile wallets) due to a lack of financial authorization. Once an order is generated via
create-order, the API typically returns a URL. The Agent MUST hand this URL to the human user to finalize payment.
5. Brand Information & Storytelling
Goal: Access brand identity and support data.
- Logic: Use the
brand-infointerface to retrieve narrative content. - Tooling:
python3 scripts/commerce.py brand-story: Get the narrative/mission.python3 scripts/commerce.py company-info: Get formal details.python3 scripts/commerce.py contact-info: Get customer support channels.
🚀 Capabilities Summary
search/list: Product discovery and inventory scan. Use--page <N>and--limit <N>to safely paginate through large catalogs.get: Deep dive into product specifications, variants, and pricing.promotions: Current business rules, shipping thresholds, and active offers.cart: Complete session summary including VIP discounts and tax/shipping estimates.add-cart/update-cart/remove-cart/clear-cart: Atomic cart control.create-order: Finalize cart into a pending order and secure payment URL for user handoff.get-profile/update-profile: Personalization and fulfillment data.brand-story/company-info/contact-info: Brand context and support.orders: Real-time tracking and purchase history.
💻 CLI Configuration & Examples
# Target a store directly via --store (preferred)
python3 scripts/commerce.py --store https://api.yourbrand.com/v1 list --page 1 --limit 20
python3 scripts/commerce.py --store https://api.yourbrand.com/v1 search "item"
python3 scripts/commerce.py --store https://api.yourbrand.com/v1 add-cart <slug> --variant <variant_id>
# Or use environment variable (deprecated, will be removed in a future version)
export COMMERCE_URL="https://api.yourbrand.com/v1"
python3 scripts/commerce.py list
Credentials are automatically stored per-domain under ~/.openclaw/credentials/agent-commerce-engine/<domain>/.
🤖 Troubleshooting & Debugging
AUTH_REQUIRED: Token missing or expired. Runloginto obtain a new token.AUTH_INVALID: Wrong credentials. Verify account and password.PRODUCT_NOT_FOUND: Resource not found. Verifyslugviasearch.VARIANT_UNAVAILABLE: The requested variant is invalid or out of stock. Check theinstructionfield for available alternatives.CART_EMPTY: Attempted checkout with no items. Add items first.- Connection Error: Verify the
--storeURL is correct and the endpoint is reachable.