New checkout error types, locale fields, cart option identifiers, and B2B terminology updates across the Storefront and B2B GraphQL schemas.
CheckoutBillingAddressError and CheckoutCouponError types with COUPON_EXPIRED, COUPON_INELIGIBLE, COUPON_INVALID, COUPON_INVALID_LOCATION, COUPON_MIN_PURCHASE, COUPON_MODIFICATION_NOT_ALLOWED, and COUPON_NOT_APPLICABLE codes on CheckoutErrorCodeCompleteCheckoutError and UpdateCheckoutError unions surfaced through errors on CompleteCheckoutResult and UpdateCheckoutResult; CreateCheckoutError now includes CheckoutCouponErrorlocales field on BlogIndexPage, BlogPost, Brand, and Category for localized alternate paths and URLsattributeId field on every CartSelectedOption variant and addedByAttributeId on CartPhysicalItem and CartDigitalItem to correlate items back to the option that produced themBundleB2B updated to B2BEdition across userCompany, BCInfomation, OrderType, OrderedProductType, CompanyUserInfoType, CustomerInfoType, StoreSitesType, and UserAuthResultTypeFor schema details, browse the Storefront GraphQL API reference and the B2B GraphQL API reference.
Updates to the Catalyst Core course document how Catalyst authenticates GraphQL requests with private storefront tokens and how it proxies client-side requests.
BIGCOMMERCE_STOREFRONT_TOKEN is a private GraphQL Storefront API token and links to the Create Private Token endpointBIGCOMMERCE_STOREFRONT_UNAUTHENTICATED_TOKEN, the private token limited to the “Unauthenticated” scope used to proxy client-side GraphQL requestsPOST /graphql requests to BigCommerce without exposing a storefront tokenFor details, see the Catalyst Core course.
The GraphQL overview lesson in the B2B Core course now points to the dedicated B2B GraphQL API course for full coverage.
For details, see the B2B GraphQL API course.
Thanks to user feedback, the Stencil schemas reference has been rewritten so theme developers can answer the question “what objects can I actually use on this template?” without scanning the whole page.
ParamField rows with collapsible Expandable sections for nested objects and arrays.checkout.html, page-contact-form.html, {{pagination}} on blog.html, and {{faceted_search}} on search.html. A new callout names common routes (auth/login.html, errors.html, etc.) that receive only the globals, so gaps in the table aren’t read as omissions.?debug=context so you can dump the live context object for any URL instead of guessing from docs.theme_settings rewritten for non-Cornerstone themes — a new warning callout explains that the documented keys are Cornerstone defaults, not a fixed schema, and new subsections show how to access values via dot notation and how to find the real key list for your theme via config.json and ?debug=context.Keep the feedback coming — every piece of feedback we receive directly contributes to the improvement of our docs. Use the Was this page helpful? widget at the bottom of any docs page, and we’ll keep iterating.
For details, see the Stencil schemas reference.
Thanks to user feedback, REST /v2/ endpoints in the API Explorer now return JSON responses instead of XML, matching the Accept: application/json header advertised in the request.
Accept and other header parameters declared at the path level, so v2 responses render as JSON in the Explorer.For an example, try List Customers (v2) in the API Explorer.
Thanks to user feedback, store_hash now appears as a first-class, highlighted input in the API Explorer for the majority of REST endpoints — matching how order_id, product_id, and other resource identifiers already work.
Highlighted in the request URL — {store_hash} renders with the same accent styling as other path parameters in the URL bar at the top of every Explorer page.

Dedicated input field — store_hash now appears in the Path parameters section, so you can fill it in like any other parameter. Previously, you had to edit the URL string in the Explorer directly to set your store’s hash.

Generated code snippets updated — cURL, JavaScript, and Python snippets on the right rail pick up the value you enter, no manual substitution required.
This update covers every REST endpoint in the API Reference.
For an example, see List Products.
Thanks to user feedback, we’ve corrected the API reference for the Create or Update Batch of Price Lists Records endpoint (PUT /pricelists/records). Several fields the server enforces as required were previously marked as optional.
price_list_id — now correctly marked Requiredcurrency — now correctly marked Requiredvariant_id or sku — clarified that exactly one of these is required to identify the variantFor details, see Create or Update Batch of Price Lists Records.
Thanks to user feedback, we’ve improved the accuracy and consistency of the Product Modifiers OpenAPI spec so request and response shapes now match the live API exactly.
PUT /catalog/products/{product_id}/modifiers/{modifier_id} and the option_values update schema now share the same field set and types as their CREATE counterparts.option_value required fields to POST — label and sort_order are required only on create, matching the partial-update behavior of PUT.data, matching the live API and the GET/UPDATE responses (previously wrapped under a spurious data.items array).adjusters.image_url as read-only — sending it on POST/PUT returns HTTP 500. The field is set via the dedicated Create Product Modifier Image endpoint, which is now cross-linked from the relevant operations.image_file as required at the schema level instead of in prose.sort_order that were rendering as a confusing range pill.For details, see the Product Modifiers reference.
New types, fields, and enums across the Storefront and B2B GraphQL schemas.
CartError, CartLineItemError, CheckoutShippingConsignmentError, and CheckoutTaxError types with CartErrorCode, CheckoutErrorCode, and CheckoutTaxErrorCode enums, surfaced through the CreateCheckoutError union on CreateCheckoutResult.errorsExtraFieldValue interface and TextExtraFieldValue, NumberExtraFieldValue, MultilineTextExtraFieldValue, and MultipleChoiceExtraFieldValue implementations for B2B extra fieldsProductInventoryByLocation, ProductLocationConnection, and byLocation field on ProductInventory with location ID, code, type, and distance filteringSearchProductSuggestion and SearchProductSuggestionResult types and suggestions field on SearchProducts for spelling corrections and autocompletedisplayItemsCount field on BrandSearchFilter, CategorySearchFilter, and ProductAttributeSearchFilterdescription field on MetafieldsentityId field on CheckoutGiftCertificatebackorderShippingExpectationMessage field on orders and backorderMessage field on OrderPhysicalLineIteminventoryTracking, availableToSell, unlimitedBackorder, totalOnHand, and backorderMessage fields on CatalogQuickProductTypebackorderSnapshot field removed from OrderTypeFor schema details, browse the Storefront GraphQL API reference and the B2B GraphQL API reference.
Storefront sales reps (Super Admins) can now only access companies they are directly assigned to. Assignments do not traverse the Account Hierarchy — assigning a sales rep to a parent Company does not grant access to its subsidiaries.
companyId403 Permission denied; a non-integer companyId returns 400 Invalid companyIdFor details, see the Super Admin overview.