call_destructive_tool
ChatGPTInvoke a destructive-category tool of the Brainerce Admin API by the exact name search_tools gave - a registry key, not a URL. Other categories are refused.
call_read_tool
ChatGPTInvoke a read-category tool of the Brainerce Admin API by the exact name search_tools gave - a registry key, not a URL. Other categories are refused.
call_write_tool
ChatGPTInvoke a write-category tool of the Brainerce Admin API by the exact name search_tools gave - a registry key, not a URL. Other categories are refused.
cancel_order
ChatGPTCancel an order: irreversible and NOT a refund, no money moves. Works on native and connector (Shopify/WooCommerce) orders. Refused once cancelled, refunded, completed or fulfilled.
count_products
ChatGPTTotal number of products (the counting route).
create_category
ChatGPTCreate a category; parentId nests it.
create_coupon
ChatGPTCreate a coupon: a CODE the shopper types at checkout; nothing is discounted until they enter it. ⛔ NOT for an automatic or storewide discount with no code: that is create_discount_rule.
create_discount_rule
ChatGPTCreate an automatic discount rule (applied at cart/checkout time, no code needed). Type drives the required discountConfig shape (PRODUCT_DISCOUNT, ORDER_DISCOUNT, BUY_X_GET_Y, BUY_X_GET_X, VOLUME_DISCOUNT, SHIPPING_DISCOUNT, BUNDLE). Optionally scope to specific channels, set a priority, date window, usage/budget caps, combination flags, filters, and conditions.
create_loyalty_tier
ChatGPTCreate a loyalty TIER: a level in the customer club, earned at a spend or points threshold. ⛔ This is what "VIP club", "members club" and "loyalty levels" mean - NOT create_tag, which only labels and carries no points or benefits.
create_product
ChatGPTCreate a product; physical goods only. SIMPLE needs basePrice; VARIABLE needs variants. KIT: type:KIT creates it EMPTY and unsellable; this surface cannot add components, so tell the merchant that is a dashboard task. categoryNames/brandNames auto-create by name; categories/brands take existing ids. External image URLs are queued and HIDDEN until import completes; importStatus pending means queued, NOT live, so report it as queued.
create_sales_channel
ChatGPTCreate a sales channel (storefront connection) with its vc_* id. New channels start in TEST mode; LIVE needs a public https domain. ⛔ Never repeat a full vc_ id into the conversation unless the merchant asked; it is the storefront's credential.
create_shipping_rate
ChatGPTAdd a rate to a zone. rateConfig by type: FLAT_RATE {amount}; WEIGHT_BASED {baseRate, perKg, maxWeight?}; PRICE_BASED {tiers:[{minOrderAmount, rate}]}; FREE {minOrderAmount?}; LOCAL_PICKUP {amount, pickupLocation:{name, line1, city, postalCode, country}}. Amounts are in the store currency. Example: FLAT_RATE with {"amount":10}.
create_shipping_zone
ChatGPTCreate a shipping zone: the destinations (countries, optionally regions or postal codes) a set of rates applies to. ["*"] is worldwide. Matched by priority, lower first. A zone needs at least one create_shipping_rate before checkout offers it.
create_tag
ChatGPTCreate a tag: a LABEL on products or customers, with an optional picture (image). To tag products use update_product (auto-creates missing tags). ⛔ NOT a customer programme: a VIP club, members club, loyalty levels or tiers is a LOYALTY TIER, which is not on this list - search_tools for "loyalty tier". A tag named "VIP" carries no points, benefits or members, and a model created exactly that when asked for a VIP club.
create_tax_rate
ChatGPTCreate a tax rate. ⛔ The rate is the MERCHANT's legal number: use the figure they gave, never one you assume; this registers and files nothing with any authority. Call list_tax_rates first and REFUSE a duplicate country+region. rate is a PERCENTAGE (17 = 17%, not 0.17). Omit country / region for everywhere. Collected only while taxEnabled is true (update_store).
create_variant
ChatGPTAdd a variant to a VARIABLE product. ⛔ Sets no stock - call set_variant_stock after.
duplicate_product
ChatGPTCreates a SECOND product: a draft copy, optionally renamed. Not idempotent; twice makes two copies.
fulfill_order
ChatGPTMark an order fulfilled/shipped, optionally with tracking. Destructive and not reversible here; emails the customer unless notify_customer:false (tracking button needs tracking_url). Unpaid orders need allow_unpaid_fulfillment:true. Already shipped: only tracking is corrected.
get_customer
ChatGPTOne customer in full.
get_customer_orders
ChatGPTA customer's orders; has fulfillmentStatus, which list_orders lacks. ⛔ Includes test orders and cannot flag them.
get_order
ChatGPTOne order in full.
get_product
ChatGPTOne product by id in full. inventory is the authoritative stock total, already summed across variants.
get_store
ChatGPTStore profile and settings. scheduledDeletionAt is the last day a suspended store can be reactivated, NOT an erasure date.
get_store_analytics_summary
ChatGPTWhole-store KPIs: product count (the counting route), order counts and revenue for today, week and month with last-month comparison.
get_store_setup_status
ChatGPTChecklist of what this store still needs before it can take a real order: store name, sales channel, products published to a channel, shipping, payment provider, tax. Each step has done, detail and nextAction (the tool here, else the dashboard page); nextStep is the first undone one. Call it when the merchant asks what is left, how to start selling or if the store is ready, instead of guessing. A payment provider in TEST mode is NOT done.
list_capabilities
ChatGPTEvery domain this connector can manage, grouped, with the noun to search each one by. ⛔ CALL THIS BEFORE ANSWERING "what can you do", "what can you help me with", or any request you cannot immediately place — and before telling a merchant that something is not possible. The tools you can see are roughly a TENTH of what this connector reaches; the rest are behind search_tools, so a capability answer written from your visible tool list is wrong and a merchant reading it concludes the platform is small. Measured on this connector four times: asked what it could do, it named products, orders, customers, discounts and shipping, and omitted loyalty clubs, blog posts and email campaigns every single time. Read-only, needs no sign-in, and returns the same list whatever the store.
list_categories
ChatGPTCategories with parentId and product counts.
list_coupons
ChatGPTList or search coupons.
list_customers
ChatGPTList, search and segment customers; returns order count and total spent.
list_discount_rules
ChatGPTList automatic discount rules.
list_orders
ChatGPTOrders, newest first. ⛔ status is the INTERNAL status, matched VERBATIM, one at a time: DRAFT, PENDING, PROCESSING, ON_HOLD, PAID (not shipped yet), SHIPPED, DELIVERED, FULFILLED, COMPLETED (gone), CANCELLED, REFUNDED, PARTIALLY_REFUNDED. Anything else returns an EMPTY page, not an error. Payment is financialStatus per row and is NOT filterable. Skip rows with isTestOrder.
list_products
ChatGPT⛔ NOT for counting. To answer 'how many products do I have', call get_store_analytics_summary (or count_products) — do NOT fetch a page here just to read meta.total: this tool renders a product CARD, so a one-row page shows the merchant ONE product beside your sentence saying seven. List products with pagination, search and filters (status, type, category/brand/tag names, sales channel, downloadable, has-images, locale, region for FX-overlaid display prices). Returns the standard { data, meta } page. Use this to find product ids before reading or editing. Each product's inventory field is the authoritative stock total — for VARIABLE products it is already summed across all variants, so use it directly rather than adding up variants[].inventory yourself. Pass layout: 'list' when the user asks for a list or table view.
list_sales_channels
ChatGPTAll sales channels with mode (TEST/LIVE), status, domain and connection id. ⛔ Never repeat a full vc_ id into the conversation unless the merchant asked; it is the storefront's credential.
list_shipping_zones
ChatGPTShipping zones with their rates (ratesCount). A zone with no rate offers nothing at checkout. Matched by priority, lower first.
list_tags
ChatGPTTags with product counts.
list_tax_rates
ChatGPTEvery tax rate on the store with its percentage and country / region. Call it BEFORE create_tax_rate.
search_tools
ChatGPTFinds the store-management tools that are NOT in your listing. This store runs hundreds of tools and the listing shows a fraction, so a task missing from it is usually reachable here rather than unsupported. Listed tools are excluded from these results by design. Search for the store-management tool(s) that match a task, e.g. "create product" or "cancel order" — compact mode replaces the usual flat list of every tool with this search step. Each result includes the tool's name, a short description, and its input schema; call it via call_read_tool / call_write_tool / call_destructive_tool depending on the result's annotations. Matching is on keywords, not meaning: send a SHORT ENGLISH verb-and-noun phrase ("set stock", "list orders"), not the user's sentence and not their language — passing prose through verbatim is the main cause of a missed match. If a search returns no results, rephrase and search again before concluding the capability does not exist. ⛔ Translate the merchant's words into the platform's own nouns BEFORE searching: "three for two" is a BUNDLE OFFER, "a VIP club" is a LOYALTY TIER, "toppings" are a MODIFIER GROUP, "a newsletter" is a CAMPAIGN. Measured on this connector: the merchant phrase verbatim finds the right tool 2 times in 15, the platform noun 14 times in 15. Call list_capabilities for every domain this store manages and the noun to search each one by.
set_product_stock
ChatGPTSet the absolute stock of a SIMPLE product. ⛔ On a VARIABLE product stock is per variant: use set_variant_stock (variant ids come from get_product); do not substitute a product-level write. ⛔ A KIT is refused; set its components.
set_variant_stock
ChatGPTSet one variant's absolute stock (newTotal) and/or its tracking mode on a VARIABLE product; variantId comes from get_product. Destructive: overwrites the count. For a SIMPLE product use set_product_stock.
show_product_gallery
ChatGPTShows products as a visual gallery with picture, name, price and stock. Use whenever the merchant wants to SEE products or their pictures; the only way to show a picture. Not for counting or analysis (list_products). Up to 24 per page.
update_email_template
ChatGPTEdit a transactional email template - order confirmation, shipping notice, password reset. Read it first with get_email_template; this REPLACES the fields it touches. Versions are kept, so a bad edit is recoverable.
update_order_status
ChatGPTChange an order's status (illegal transitions rejected). Destructive: emails the customer on SHIPPED, CANCELLED and COMPLETED/DELIVERED; a cancellation cannot be undone.
update_product
ChatGPTPartial update. categories/brands (ids) replace the set; categoryNames/brandNames auto-create and add. images REPLACES the whole gallery. External image URLs are queued and HIDDEN until import completes; importStatus pending means queued, NOT live, so report it as queued.
update_store
ChatGPTChange Settings → General: name, country, currency, language, tax flags; omitted fields unchanged. ⛔ currency RELABELS every existing price (100 ILS becomes 100 EUR, nothing is converted): refused while a checkout is in progress, and refused on a store with orders unless confirm:true is passed after the merchant has understood that; the default region follows only if it still matched the old currency. language sets the default language and seeds its email templates; untranslated text is shown as-is. ⛔ taxEnabled:true only flips the flag; the tax RATE is added with create_tax_rate, and with no rate checkout charges 0 tax. Timezone, contact details, colours, logo and dashboard modules are dashboard tasks here.
update_variant
ChatGPTUpdate a variant (partial). Channel-aware: pass channels to set per-sales-channel price/sku overlays. Use this for per-variation price changes.