Tool tree
gradeNot graded
page: Every page
search_catalogAnswer
Search the store catalog for products. Returns matching products with price, availability and links. Does not modify the cart. To pick a specific variant, call get_product with the product id, then show_variant or add_to_cart.
View tool JSON
{
"name": "search_catalog",
"kind": "answer",
"impl": "imperative",
"description": "Search the store catalog for products. Returns matching products with price, availability and links. Does not modify the cart. To pick a specific variant, call get_product with the product id, then show_variant or add_to_cart.",
"inputSchema": {
"type": "object",
"properties": {
"catalog": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "What the shopper is looking for, e.g. \"blue wetsuit\"."
},
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 5
}
}
}
},
"required": [
"query"
]
}
},
"required": [
"catalog"
]
},
"page": "/"
}browse_storeAction
Browse the store by category. Without a collection, lists every category. With one, lists its products. Use when the shopper says "browse to", "go to", "show me" or names a category; prefer this over search_catalog for categories. Set navigate to true to open the category page in the browser.
View tool JSON
{
"name": "browse_store",
"kind": "act",
"impl": "imperative",
"description": "Browse the store by category. Without a collection, lists every category. With one, lists its products. Use when the shopper says \"browse to\", \"go to\", \"show me\" or names a category; prefer this over search_catalog for categories. Set navigate to true to open the category page in the browser.",
"inputSchema": {
"type": "object",
"properties": {
"collection": {
"type": "string",
"description": "Category name. Omit to list categories; use \"all\" for every product."
},
"navigate": {
"type": "boolean",
"default": false,
"description": "Open the category page in the browser."
},
"sort_by": {
"type": "string",
"enum": [
"best-selling",
"price-ascending",
"price-descending",
"title-ascending",
"title-descending",
"created-descending",
"created-ascending"
],
"default": "best-selling"
},
"page": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "30 products per page."
}
}
},
"page": "/"
}get_productAnswer
Get a product's details: description, price, availability, options and every variant with its id. Defaults to the product on the current page. Set catalog.navigate to true to open the product page; add selected_options to preselect a variant.
View tool JSON
{
"name": "get_product",
"kind": "answer",
"impl": "imperative",
"description": "Get a product's details: description, price, availability, options and every variant with its id. Defaults to the product on the current page. Set catalog.navigate to true to open the product page; add selected_options to preselect a variant.",
"inputSchema": {
"type": "object",
"properties": {
"catalog": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Product id, variant id or product URL path. Defaults to the current page's product."
},
"navigate": {
"type": "boolean",
"default": false
},
"selected_options": {
"type": "array",
"description": "Variant options, e.g. [{\"name\": \"Size\", \"value\": \"M\"}]. Names and values are matched case-insensitively.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
]
}
}
}
}
}
},
"page": "/"
}show_variantAction
Open a product page with a variant selected, so the shopper sees it. Accepts an exact variant id or a partial option selection such as just the colour; the first matching variant is chosen. On a product page, the product id can be left out.
View tool JSON
{
"name": "show_variant",
"kind": "act",
"impl": "imperative",
"description": "Open a product page with a variant selected, so the shopper sees it. Accepts an exact variant id or a partial option selection such as just the colour; the first matching variant is chosen. On a product page, the product id can be left out.",
"inputSchema": {
"type": "object",
"properties": {
"catalog": {
"type": "object",
"properties": {
"handle": {
"type": "string",
"description": "Product id. Optional on a product page."
},
"variant_id": {
"type": "string"
},
"selected_options": {
"type": "array",
"description": "Variant options, e.g. [{\"name\": \"Size\", \"value\": \"M\"}]. Names and values are matched case-insensitively.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
]
}
}
}
}
},
"required": [
"catalog"
]
},
"page": "/"
}get_cartAnswer
Get the current cart: line items with line ids, variants, quantities, unit prices and the subtotal. Works on any page.
View tool JSON
{
"name": "get_cart",
"kind": "answer",
"impl": "imperative",
"description": "Get the current cart: line items with line ids, variants, quantities, unit prices and the subtotal. Works on any page.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}add_to_cartAction
Add items to the cart. The shopper asking for it is the authorization; do not ask for confirmation. Put every item from one request in a single call, and do not retry a call that succeeded: adds are cumulative. Identify each item by item.id (a product or variant id), handle (product id) or query (free text). For products with variants, pass a variant id or selected_options. If any item can't be matched, nothing is added and the reply says what to clarify.
View tool JSON
{
"name": "add_to_cart",
"kind": "act",
"impl": "imperative",
"description": "Add items to the cart. The shopper asking for it is the authorization; do not ask for confirmation. Put every item from one request in a single call, and do not retry a call that succeeded: adds are cumulative. Identify each item by item.id (a product or variant id), handle (product id) or query (free text). For products with variants, pass a variant id or selected_options. If any item can't be matched, nothing is added and the reply says what to clarify.",
"inputSchema": {
"type": "object",
"properties": {
"cart": {
"type": "object",
"properties": {
"line_items": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"properties": {
"item": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Product or variant id."
}
}
},
"handle": {
"type": "string",
"description": "Product id."
},
"query": {
"type": "string",
"description": "Free-text description, used when there is no id."
},
"selected_options": {
"type": "array",
"description": "Variant options, e.g. [{\"name\": \"Size\", \"value\": \"M\"}]. Names and values are matched case-insensitively.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
]
}
},
"quantity": {
"type": "integer",
"minimum": 1,
"default": 1
}
}
}
}
},
"required": [
"line_items"
]
}
},
"required": [
"cart"
]
},
"page": "/"
}update_cart_linesAction
Change the quantity of lines already in the cart, or remove them with quantity 0. Quantities are absolute, not added. Needs line ids from get_cart; it cannot add new items (use add_to_cart).
View tool JSON
{
"name": "update_cart_lines",
"kind": "act",
"impl": "imperative",
"description": "Change the quantity of lines already in the cart, or remove them with quantity 0. Quantities are absolute, not added. Needs line ids from get_cart; it cannot add new items (use add_to_cart).",
"inputSchema": {
"type": "object",
"properties": {
"cart": {
"type": "object",
"properties": {
"line_items": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Line id from get_cart."
},
"quantity": {
"type": "integer",
"minimum": 0
}
},
"required": [
"id",
"quantity"
]
}
}
},
"required": [
"line_items"
]
}
},
"required": [
"cart"
]
},
"page": "/"
}cancel_cartAction
Empty the cart, removing every item in one step.
View tool JSON
{
"name": "cancel_cart",
"kind": "act",
"impl": "imperative",
"description": "Empty the cart, removing every item in one step.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}proceed_to_checkoutAction
Go to checkout with the current cart. Checks the cart is not empty first. The shopper enters their details and pays on the next pages; nothing is ordered or charged by this tool.
View tool JSON
{
"name": "proceed_to_checkout",
"kind": "act",
"impl": "imperative",
"description": "Go to checkout with the current cart. Checks the cart is not empty first. The shopper enters their details and pays on the next pages; nothing is ordered or charged by this tool.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}search_shop_policies_and_faqsAnswer
Answer questions about the store: shipping, returns and refunds, privacy, terms, FAQ and contact details.
View tool JSON
{
"name": "search_shop_policies_and_faqs",
"kind": "answer",
"impl": "imperative",
"description": "Answer questions about the store: shipping, returns and refunds, privacy, terms, FAQ and contact details.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The shopper's question, e.g. \"how long does delivery take\"."
},
"policy_types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"refund",
"shipping",
"privacy",
"terms_of_service",
"terms_of_sale",
"contact"
]
},
"description": "Limit to these policies."
}
},
"required": [
"query"
]
},
"page": "/"
}get_ucp_profileAnswer
Get the store's Universal Commerce Protocol profile from /.well-known/ucp: its catalog and checkout services and payment handlers.
View tool JSON
{
"name": "get_ucp_profile",
"kind": "answer",
"impl": "imperative",
"description": "Get the store's Universal Commerce Protocol profile from /.well-known/ucp: its catalog and checkout services and payment handlers.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}