Tool tree
gradeNot graded
page: Every page
search_productsAnswer
Search or browse this store's catalog. Returns products with purchasable variants; prices live on the variants. Use a variant id when adding to the cart.
View tool JSON
{
"name": "search_products",
"kind": "answer",
"impl": "imperative",
"description": "Search or browse this store's catalog. Returns products with purchasable variants; prices live on the variants. Use a variant id when adding to the cart.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free text. Omit to browse."
},
"category": {
"type": "string"
},
"sort": {
"type": "string",
"enum": [
"relevance",
"cheapest",
"expensive",
"newest",
"name",
"popular"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
}
},
"page": "/"
}get_productAnswer
Full detail, including description, for product ids or variant ids. Each product carries a `related` list: up to three in-stock suggestions from the same category in the same size, each with the variant id to add. Anything already in this browser's cart is left out of the suggestions.
View tool JSON
{
"name": "get_product",
"kind": "answer",
"impl": "imperative",
"description": "Full detail, including description, for product ids or variant ids. Each product carries a `related` list: up to three in-stock suggestions from the same category in the same size, each with the variant id to add. Anything already in this browser's cart is left out of the suggestions.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"ids"
]
},
"page": "/"
}add_to_cartAction
Add a variant to the shopper's cart. variant_id MUST be a variant id from search results, not a product id. Creates the cart on first use.
View tool JSON
{
"name": "add_to_cart",
"kind": "act",
"impl": "imperative",
"description": "Add a variant to the shopper's cart. variant_id MUST be a variant id from search results, not a product id. Creates the cart on first use.",
"inputSchema": {
"type": "object",
"properties": {
"variant_id": {
"type": "string"
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 99
}
},
"required": [
"variant_id"
]
},
"page": "/"
}view_cartAction
Show the current basket with line items and totals.
View tool JSON
{
"name": "view_cart",
"kind": "act",
"impl": "imperative",
"description": "Show the current basket with line items and totals.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}update_cart_itemAction
Set the quantity of a line. Quantity 0 removes it.
View tool JSON
{
"name": "update_cart_item",
"kind": "act",
"impl": "imperative",
"description": "Set the quantity of a line. Quantity 0 removes it.",
"inputSchema": {
"type": "object",
"properties": {
"variant_id": {
"type": "string"
},
"quantity": {
"type": "integer",
"minimum": 0,
"maximum": 99
}
},
"required": [
"variant_id",
"quantity"
]
},
"page": "/"
}apply_couponAction
Apply a promotion code to the cart.
View tool JSON
{
"name": "apply_coupon",
"kind": "act",
"impl": "imperative",
"description": "Apply a promotion code to the cart.",
"inputSchema": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"required": [
"code"
]
},
"page": "/"
}watch_priceAnswer
Be told when a variant reaches a target price. Returns already_met if the target is at or above the current price. The watch compares the real price and fires only when it actually reaches the target, so it may simply expire after 24h.
View tool JSON
{
"name": "watch_price",
"kind": "answer",
"impl": "imperative",
"description": "Be told when a variant reaches a target price. Returns already_met if the target is at or above the current price. The watch compares the real price and fires only when it actually reaches the target, so it may simply expire after 24h.",
"inputSchema": {
"type": "object",
"properties": {
"variant_id": {
"type": "string"
},
"target_price": {
"type": "number"
}
},
"required": [
"variant_id",
"target_price"
]
},
"page": "/"
}pay_with_walletSensitive Action
Generate a one-tap wallet payment page and open it. Pass items (variant ids or SKUs) to buy them directly, or omit items to pay for this tab's cart. The wallet sheet shows the items, shipping and total and collects the shopper's email, address and card, so you do not need to gather any of them. Prefer this over open_checkout.
View tool JSON
{
"name": "pay_with_wallet",
"kind": "transact",
"impl": "imperative",
"description": "Generate a one-tap wallet payment page and open it. Pass items (variant ids or SKUs) to buy them directly, or omit items to pay for this tab's cart. The wallet sheet shows the items, shipping and total and collects the shopper's email, address and card, so you do not need to gather any of them. Prefer this over open_checkout.",
"inputSchema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Variant ids or SKUs, or {id|sku, quantity} objects. Omit to use the current cart.",
"items": {}
},
"open": {
"type": "boolean",
"description": "Navigate to the page (default true)."
}
}
},
"page": "/"
}set_checkout_detailsAction
Set the shopper's email and delivery address on the cart. Send the state as `state` — either the abbreviation (CO) or the full name (Colorado) works. Required before shipping rates exist.
View tool JSON
{
"name": "set_checkout_details",
"kind": "act",
"impl": "imperative",
"description": "Set the shopper's email and delivery address on the cart. Send the state as `state` — either the abbreviation (CO) or the full name (Colorado) works. Required before shipping rates exist.",
"inputSchema": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"address1": {
"type": "string"
},
"address2": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string",
"description": "CO or Colorado; both accepted."
},
"zip": {
"type": "string"
},
"country": {
"type": "string",
"description": "Two-letter ISO. Defaults to US."
},
"phone": {
"type": "string"
}
},
"required": [
"email",
"address1",
"city",
"zip"
]
},
"page": "/"
}get_shipping_ratesAnswer
Delivery options for this cart, priced. Needs an address first. The `id` returned here is what select_shipping takes.
View tool JSON
{
"name": "get_shipping_rates",
"kind": "answer",
"impl": "imperative",
"description": "Delivery options for this cart, priced. Needs an address first. The `id` returned here is what select_shipping takes.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}select_shippingAction
Pick a delivery option by the `id` from get_shipping_rates, or by its title ("UPS Ground"). Do this BEFORE place_order: the payment is taken for the total at the time it is created, so adding shipping afterwards leaves the order underpaid.
View tool JSON
{
"name": "select_shipping",
"kind": "act",
"impl": "imperative",
"description": "Pick a delivery option by the `id` from get_shipping_rates, or by its title (\"UPS Ground\"). Do this BEFORE place_order: the payment is taken for the total at the time it is created, so adding shipping afterwards leaves the order underpaid.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Rate id or title."
}
},
"required": [
"id"
]
},
"page": "/"
}place_orderSensitive Action
Completes the purchase: attaches the payment token and submits the order. This is the tool that ends an agent-driven sale — open_checkout only hands a URL to a human. Requires an email, an address and a delivery option; if no delivery option has been chosen, the cheapest is selected automatically and named in the result. Demo store: any token is accepted and no money moves.
View tool JSON
{
"name": "place_order",
"kind": "transact",
"impl": "imperative",
"description": "Completes the purchase: attaches the payment token and submits the order. This is the tool that ends an agent-driven sale — open_checkout only hands a URL to a human. Requires an email, an address and a delivery option; if no delivery option has been chosen, the cheapest is selected automatically and named in the result. Demo store: any token is accepted and no money moves.",
"inputSchema": {
"type": "object",
"properties": {
"payment_token": {
"type": "string",
"description": "Any token on this demo store, e.g. tok_test_4242."
},
"last_digits": {
"type": "string"
},
"name_on_card": {
"type": "string"
}
}
},
"page": "/"
}open_checkoutSensitive Action
Returns the store's own checkout URL for the basket these tools built, so the shopper can enter address and payment themselves. Deliberately does NOT place an order, and by default does NOT navigate — navigating mid-call destroys the page the tools run in. Pass {open:true} to navigate this tab instead. This is the HUMAN handoff: it ends your turn and asks a person to finish. To complete the purchase yourself, use set_checkout_details -> select_shipping -> place_order.
View tool JSON
{
"name": "open_checkout",
"kind": "transact",
"impl": "imperative",
"description": "Returns the store's own checkout URL for the basket these tools built, so the shopper can enter address and payment themselves. Deliberately does NOT place an order, and by default does NOT navigate — navigating mid-call destroys the page the tools run in. Pass {open:true} to navigate this tab instead. This is the HUMAN handoff: it ends your turn and asks a person to finish. To complete the purchase yourself, use set_checkout_details -> select_shipping -> place_order.",
"inputSchema": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "Navigate this tab. Default false."
}
}
},
"page": "/"
}