Skip to main content

Store Tools

Module-gated

These tools are only advertised to AI clients when the supplier has the Store module enabled. See Per-supplier tool filtering for details.

Manage store products (physical items for sale, not rentals), track inventory, view sales statistics, and identify low stock items.

Required scope: store:read for read tools, store:write for write tools

Tools Overviewโ€‹

ToolDescriptionRead-only?
list_store_productsList store products with filtersYes
get_store_productGet store product detailsYes
create_store_productCreate a new store productNo
update_store_productUpdate a store productNo
adjust_store_inventoryAdjust stock quantityNo
add_store_product_variation_optionAdd a variation property (e.g. "Size")No
create_store_product_variationCreate one variation (e.g. the "S" size)No
update_store_product_variationUpdate a variation's name, SKU or priceNo
delete_store_product_variationDelete a variationNo
get_low_stock_store_productsGet products with low stockYes
get_top_store_productsGet top-selling store productsYes
get_store_statsGet store sales statisticsYes

list_store_productsโ€‹

List store products with optional filters.

Parametersโ€‹

NameTypeRequiredDescription
searchstringNoSearch by product name or SKU
statusstringNoFilter by status: active, draft, archived
category_idintegerNoFilter by category ID
low_stock_onlybooleanNoFilter to low stock products only
limitintegerNoNumber of results (default 10, max 50)

get_store_productโ€‹

Get details of a specific store product including variations, stock levels, and images.

Parametersโ€‹

NameTypeRequiredDescription
product_idintegerYesThe store product ID

create_store_productโ€‹

Create a new store product for sale.

Parametersโ€‹

NameTypeRequiredDescription
namestringYesProduct name
pricenumberYesProduct price
skustringNoProduct SKU
brief_descriptionstringNoBrief product description
track_inventorybooleanNoWhether to track stock levels (default true)
stock_quantityintegerNoInitial stock quantity
is_standalonebooleanNoWhether this can be purchased independently
who_can_buystringNoeveryone, staff_only (POS and the app only, never the booking page) or off (add-on only)
whats_includedarrayNo[{label, description}] rows. See Content Blocks.
does_not_includearrayNo[{label, description}] rows โ€” what's not included. See Content Blocks.
itineraryarrayNo[{time, title, description}] rows.
highlightsarrayNoFlat list of strings (pill chips).
check_in_detailsstringNoRich-text HTML.
what_to_bringarrayNoFlat list of strings.
restrictionsstringNoRich-text HTML.
health_and_safetystringNoRich-text HTML.
cancellation_notesstringNoRich-text HTML.

update_store_productโ€‹

Update an existing store product.

Parametersโ€‹

NameTypeRequiredDescription
product_idintegerYesThe store product ID to update
namestringNoNew product name
pricenumberNoNew price
skustringNoNew SKU
brief_descriptionstringNoNew description
statusstringNoNew status: active, draft, archived
is_standalonebooleanNoWhether this can be purchased independently
who_can_buystringNoeveryone, staff_only (POS and the app only, never the booking page) or off (add-on only)
whats_includedarrayNo[{label, description}] rows. See Content Blocks.
does_not_includearrayNo[{label, description}] rows โ€” what's not included. See Content Blocks.
itineraryarrayNo[{time, title, description}] rows.
highlightsarrayNoFlat list of strings.
check_in_detailsstringNoRich-text HTML.
what_to_bringarrayNoFlat list of strings.
restrictionsstringNoRich-text HTML.
health_and_safetystringNoRich-text HTML.
cancellation_notesstringNoRich-text HTML.

adjust_store_inventoryโ€‹

Adjust stock quantity for a store product at one location. Use positive numbers to add stock, negative to remove.

Adjusts a single variation at a single location per call โ€” to stock several variations or locations, call it once per combination. Call get_store_product first for the variation IDs and get_locations for the location IDs.

Parametersโ€‹

NameTypeRequiredDescription
product_idintegerYesThe store product ID
quantity_changeintegerYesAmount to adjust (positive to add, negative to remove)
variation_idintegerConditionalThe variation to adjust. Required when the product has variations
location_idintegerNoThe location to stock. Defaults to the default location when omitted
reasonstringNoReason for the adjustment

A variation product's stock lives on its variations, so omitting variation_id for one returns an error rather than silently adjusting nothing.


Store product variationsโ€‹

Store products have their own variation tools โ€” the rental-product tools (create_product_variation) do not work on them.

The shape is two levels:

  • A variation property (option) is what a variation varies BY โ€” "Size", "Color". get_store_product returns these as variation_options with their IDs.
  • A variation is one concrete combination โ€” "S", or "S / Blue".

To set up sizes S/M/L with stock: get_store_product (read variation_options, adding one with add_store_product_variation_option if needed) โ†’ create_store_product_variation once per size โ†’ adjust_store_inventory once per variation per location.

add_store_product_variation_optionโ€‹

Add a variation property to a store product. Only needed when no suitable property exists yet.

NameTypeRequiredDescription
product_idintegerYesThe store product ID
namestringYesThe property name, e.g. "Size"
valuesstring[]NoOptional allowed values, e.g. ["S", "M", "L"]

create_store_product_variationโ€‹

Create one variation. Call once per variation.

NameTypeRequiredDescription
product_idintegerYesThe store product ID
option_valuesobject[]YesOne entry per property: [{"option_id": 3, "value": "S"}]
skustringNoOptional SKU
price_overridenumberNoOptional price. Omit to use the product base price.
stock_quantityintegerNoOptional starting stock. Prefer adjust_store_inventory so stock lands at a location.

Each value is registered on its property automatically, so the picker offers it next time.

update_store_product_variationโ€‹

Update a variation's name, SKU or price. Use adjust_store_inventory to change stock.

NameTypeRequiredDescription
product_idintegerYesThe store product ID
variation_idintegerYesThe variation ID
namestringNoNew display name
skustringNoNew SKU
price_overridenumberNoNew price

delete_store_product_variationโ€‹

Delete a variation. Its stock is removed with it.

NameTypeRequiredDescription
product_idintegerYesThe store product ID
variation_idintegerYesThe variation ID

get_low_stock_store_productsโ€‹

Get store products with low stock levels, including out-of-stock items.

Parametersโ€‹

NameTypeRequiredDescription
thresholdintegerNoStock threshold to consider as low (default: supplier setting)

get_top_store_productsโ€‹

Get top-selling store products by revenue or quantity sold.

Parametersโ€‹

NameTypeRequiredDescription
periodstringNoPredefined period: today, last_7_days, last_30_days, this_month, last_month, this_year
start_datestringNoCustom start date (overrides period)
end_datestringNoCustom end date (overrides period)
limitintegerNoNumber of top products to return (default 10)

get_store_statsโ€‹

Get store sales statistics including total revenue, items sold, average order value, and active product count.

Parametersโ€‹

NameTypeRequiredDescription
periodstringNoPredefined period: today, last_7_days, last_30_days, this_month, last_month, this_year
start_datestringNoCustom start date (overrides period)
end_datestringNoCustom end date (overrides period)