[{"slug":"ZV-2026-0104","server_name":"store-odebi8ye4k-1.mybigcommerce.com","severity":"breaking","title":"store-odebi8ye4k-1.mybigcommerce.com: Field id was removed from get_product_details input; consumers still sending it may be rejected or silently ignored.","summary":"[risky] Description of get_product_details changed (69% word delta). [breaking] Field id was removed from get_product_details input; consumers still sending it may be rejected or silently ignored. [risky] Optional field channelId was added to get_product_details; may shift model behaviour. [breaking] New required field productIds on get_product_details; requests without it will fail. [safe] Field option_values on get_product_details is no longer required. [breaking] Field product was removed from get_product_details output; consumers reading it will break. [risky] Field products was added to get_product_details output. [risky] Field totalCount was added to get_product_details output. [risky] Description of search_products changed (34% word delta).","changes":[{"kind":"description_changed","tool":"get_product_details","after":"\nGet product details (variants, options and images) by product ID(s).\n\nArguments:\nproductIds - array of product IDs to get details for (from 'search_products').\n  [IMPORTANT] Request only the products the user needs. A server-configured limit\n  applies (default 20); requests over the limit are rejected with an error (retry with fewer IDs).\noption_values - resolve a specific variant by option/value IDs. Only valid with a SINGLE\n  productId, and applied on the B2C storefront catalog. B2B buyers instead receive every\n  variant (each with its option/value IDs) and pick the desired one from the returned list.\nchannelId - optional; scopes the B2B catalog. Defaults to the channel resolved from the request.\n\nReturns:\n- products: array of products, each with:\n  - variants: each carrying entityId, SKU, and options (optionId, optionLabel, valueId, valueLabel).\n  - For B2B buyers, variants also include price, inventoryLevel, purchaseable, and bulkPricing.\n- Products not found are omitted from the array.\n\nFlow:\n- Call 'search_products' to get product IDs.\n- Call this tool with the product IDs to get variants, options and images.\n- Call 'add_item_to_cart' with results of 'search_products' and 'get_product_details' (variant) tools.\n\t- [IMPORTANT] If a product has variants you must specify which variant to add.\n","before":"\nGet product details (variants and images) by product ID. \n\nArguments:\nid - the ID of the product to get details for.\noptionValues - if product has options you should ask user to pick options. [IMPORTANT] If user has chosen options, pass them in 'option_values' parameter. [IMPORTANT] If product has options this field is required and ask user to pick\n\nReturns:\n- Product details including variants and images.\n- null if product is not found\n\nFlow:\n- Call 'search_products' tool to get base product details and product ID.\n- Call this tool with the product ID to get variant and images of the product.\n- Call 'add_item_to_cart' with results of 'search_products' and 'get_product_details' (variant) tools to add the product to the cart.\n\t- [IMPORTANT] If product has variants you will have to specify which variant to add\n","detail":"Description of `get_product_details` changed (69% word delta).","severity":"risky","descriptionDelta":0.6910569105691057},{"kind":"input_property_removed","path":"inputSchema.properties.id","tool":"get_product_details","before":{"type":"integer"},"detail":"Field `id` was removed from `get_product_details` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.channelId","tool":"get_product_details","after":{"type":["null","integer"]},"detail":"Optional field `channelId` was added to `get_product_details`; may shift model behaviour.","severity":"risky"},{"kind":"input_required_added","path":"inputSchema.properties.productIds","tool":"get_product_details","after":{"type":["null","array"],"items":{"type":"integer"}},"detail":"New required field `productIds` on `get_product_details`; requests without it will fail.","severity":"breaking"},{"kind":"input_required_removed","path":"inputSchema.required.option_values","tool":"get_product_details","detail":"Field `option_values` on `get_product_details` is no longer required.","severity":"safe"},{"kind":"output_property_removed","path":"outputSchema.properties.product","tool":"get_product_details","before":{"type":"object","properties":{"images":{"type":["null","array"],"items":{"type":"string"}},"variants":{"type":["null","array"],"items":{"type":"object","required":["entityId","SKU"],"properties":{"SKU":{"type":"string"},"options":{"type":["null","array"],"items":{"type":"string"}},"entityId":{"type":"integer"}},"additionalProperties":false}}},"additionalProperties":false},"detail":"Field `product` was removed from `get_product_details` output; consumers reading it will break.","severity":"breaking"},{"kind":"output_property_added","path":"outputSchema.properties.products","tool":"get_product_details","after":{"type":["null","array"],"items":{"type":"object","properties":{"id":{"type":"integer"},"sku":{"type":"string"},"name":{"type":"string"},"images":{"type":["null","array"],"items":{"type":"string"}},"variants":{"type":["null","array"],"items":{"type":"object","required":["entityId","SKU"],"properties":{"SKU":{"type":"string"},"price":{"type":["null","number"]},"options":{"type":["null","array"],"items":{"type":"object","required":["optionId","optionLabel","valueId","valueLabel"],"properties":{"valueId":{"type":"integer"},"optionId":{"type":"integer"},"valueLabel":{"type":"string"},"optionLabel":{"type":"string"}},"additionalProperties":false}},"entityId":{"type":"integer"},"bulkPricing":{"type":["null","array"],"items":{"type":"object","required":["minQty","price"],"properties":{"price":{"type":"number"},"maxQty":{"type":["null","integer"]},"minQty":{"type":"integer"}},"additionalProperties":false}},"purchaseable":{"type":["null","boolean"]},"inventoryLevel":{"type":["null","integer"]}},"additionalProperties":false}},"productUrl":{"type":"string"},"availability":{"type":"string"},"currencyCode":{"type":"string"},"isPriceHidden":{"type":"boolean"},"inventoryTracking":{"type":"string"},"orderQuantityMaximum":{"type":"integer"},"orderQuantityMinimum":{"type":"integer"}},"additionalProperties":false}},"detail":"Field `products` was added to `get_product_details` output.","severity":"risky"},{"kind":"output_property_added","path":"outputSchema.properties.totalCount","tool":"get_product_details","after":{"type":"integer"},"detail":"Field `totalCount` was added to `get_product_details` output.","severity":"risky"},{"kind":"description_changed","tool":"search_products","after":"\nSearch products by a term\n\nArguments:\nterm - the search term to look for products. It should be at least 3 characters long.\ncursor - optional, used for pagination. If provided, it will return the next page of results after.\n\nPagination:\nSupports pagination with 'cursor' arguments. If 'cursor' is not provided, it will return the first page of results.\nValue for 'cursor' can be obtained from the 'nextCursor' field in the response. If 'nextCursor' is null, it means there are no more results to fetch.\nIf value of cursor is null (or a string representation of 'null') dont send it in the payload.\n\nResults:\nEach product includes 'requiresFileUpload'. When true, the product has a required file-upload\noption (e.g. \"upload your design\") and shouldn't be added to cart through this assistant. Do not\nattempt to purchase it — tell the user it must be ordered on the website.\n\nFlow:\n- Call this tool with a 'term' argument and optionally with 'cursor' to search for products.\n\t- if you find a matching product, call 'get_product_details' with the product ID to get its\n\t  variants and options (if any).\n\t- if 'requiresFileUpload' is true, inform the user the product needs a file upload and cannot\n\t  be purchased here.\n- Call 'add_item_to_cart' with results of 'search_products' and 'get_product_details' (variant) tools to add the product to the cart.\n    - [IMPORTANT] If product has variants ask user to pick\n","before":"\nSearch products by a term\n\nArguments:\nterm - the search term to look for products. It should be at least 3 characters long.\ncursor - optional, used for pagination. If provided, it will return the next page of results after.\n\nPagination:\nSupports pagination with 'cursor' arguments. If 'cursor' is not provided, it will return the first page of results.\nValue for 'cursor' can be obtained from the 'nextCursor' field in the response. If 'nextCursor' is null, it means there are no more results to fetch.\nIf value of cursor is null (or a string representation of 'null') dont send it in the payload.\n\nFlow:\n- Call this tool with a 'term' argument and optionally with 'cursor' to search for products.\n\t- if you find matching product \n\t\t- and product has options available - ask user which option to choose and only after he choose call 'get_product_details' with option values as an input\n\t\t- if product has no options - you can call 'get_product_details' with the product ID to get details about the product.\n- Call 'add_item_to_cart' and with results of 'search_products' and 'get_product_details' (variant) tools to add the product to the cart.\n    - [IMPORTANT] If product has variants ask user to pick\n","detail":"Description of `search_products` changed (34% word delta).","severity":"risky","descriptionDelta":0.3359375}],"published_at":"2026-08-17T17:26:16.489Z"}]