Zinc Universal Checkout
Place, list, and retrieve orders via the Zinc API (zinc.com). Use when the user wants to buy a product from an online retailer, check order status, list recent orders, or anything involving the Zinc e-commerce ordering API. Requires ZINC_API_KEY environment variable.
技能说明
name: zinc-orders description: Place, list, and retrieve orders via the Zinc API (zinc.com). Use when the user wants to buy a product from an online retailer, check order status, list recent orders, or anything involving the Zinc e-commerce ordering API. Requires ZINC_API_KEY environment variable.
Zinc Orders
Place and manage orders on online retailers through the Zinc API (https://api.zinc.com).
Prerequisites
ZINC_API_KEYenv var must be set. Get one from https://app.zinc.com.
Authentication
All requests use Bearer token auth:
Authorization: Bearer $ZINC_API_KEY
Endpoints
Create Order — POST /orders
Place a new order. Orders process asynchronously.
Required fields:
products— array of{ url, quantity?, variant? }objectsurl: direct product page URL on a supported retailerquantity: integer (default 1)variant: array of{ label, value }for size/color/etc.
shipping_address— object withfirst_name,last_name,address_line1,address_line2,city,state(2-letter),postal_code,phone_number,country(ISO alpha-2, e.g. "US")max_price— integer, maximum price in cents
Optional fields:
idempotency_key— string (max 36 chars) to prevent duplicatesretailer_credentials_id— short ID likezn_acct_XXXXXXXXmetadata— arbitrary key-value objectpo_number— purchase order number string
Response: order object with id (UUID), status, items, shipping_address, created_at, tracking_numbers, etc.
Order statuses: pending → in_progress → order_placed | order_failed | cancelled
List Orders — GET /orders
Returns { orders: [...] } array of order objects.
Get Order — GET /orders/{id}
Retrieve a single order by UUID.
Example: Place an Order
curl -X POST https://api.zinc.com/orders \
-H "Authorization: Bearer $ZINC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"products": [{ "url": "https://example.com/product", "quantity": 1 }],
"max_price": 5000,
"shipping_address": {
"first_name": "Jane",
"last_name": "Doe",
"address_line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"phone_number": "5551234567",
"country": "US"
}
}'
Error Handling
See references/errors.md for the full error code reference.
Key points:
- HTTP errors return
{ code, message, details } - Order processing failures appear in webhook/order response as
error_type - Common issues:
max_price_exceeded,product_out_of_stock,invalid_shipping_address
Order Status Tracking
Orders process asynchronously and typically take 5–10 minutes. After placing an order:
- Schedule a cron job to check the order status ~7 minutes after creation.
- Use
GET /orders/{id}to poll. - Report the result back to the user in the same channel.
- If still pending/in_progress, schedule another check in 5 minutes.
Terminal statuses: order_placed, order_failed, cancelled — stop polling.
Non-terminal: pending, in_progress — schedule another check in 3–5 minutes.
Example cron job (isolated, announce back to the channel):
{
"name": "zinc-order-check-<short_id>",
"schedule": { "kind": "at", "at": "<ISO-8601 ~7min from now>" },
"payload": {
"kind": "agentTurn",
"message": "Check Zinc order <order_id> via GET https://api.zinc.com/orders/<order_id>"
},
"sessionTarget": "isolated",
"delivery": {
"mode": "announce",
"channel": "<channel>",
"to": "<channel_id>"
}
}
Safety
- Always confirm with the user before placing an order (
POST /orders). This spends real money. - Reading orders (GET) is always safe.
- Validate that
max_priceis reasonable before submitting.
如何使用「Zinc Universal Checkout」?
- 打开小龙虾AI(Web 或 iOS App)
- 点击上方「立即使用」按钮,或在对话框中输入任务描述
- 小龙虾AI 会自动匹配并调用「Zinc Universal Checkout」技能完成任务
- 结果即时呈现,支持继续对话优化