The webhook event reference now documents several scopes you could already subscribe to, along with their payloads.
store/customer/metafield/{created,updated,deleted} and store/store/metafield/{created,updated,deleted} fire when customer-level or store-level metafields change. Both support data filtering on namespace.store/redirects/updated fires when you create or update redirects. The data field is an array with one entry per redirect, and id is 0 when the request doesn’t include a redirect ID.store/inventory/location/deleted fires when a location is deleted.store/channel/{channel_id}/settings/search/updated and store/channel/{channel_id}/settings/inventory/updated fire when a channel’s storefront search or inventory settings change.store/channel/{channel_id}/notifications/order/updated fires when a channel’s order notification settings change.For details, see the customers, stores, redirects, and locations events, and the channel settings and channel notifications events.
B2B Edition merchants can now customize the quote templates that are emailed and attached as PDFs to buyers, so every quote reflects their branding and the details their business and buyers need.
For details, see Quote Templates.
Transactional email templates now have a limit of 20 locales per template in each channel.
translations array — when you create or update an email template with the Email Templates API, the translations array accepts up to 20 locale objects.For details, see Email Templates Overview and Update an email template.
Storefront GraphQL order queries now return the store credit applied to an order, so headless storefronts can show a complete order totals breakdown without deriving the amount from the grand total.
BaseOrder interface adds a storeCreditTotal field of type Money, which reports the total store credit applied to the order. Because it is defined on the interface, the field is available on both Order and OrderWithPayments, alongside the existing subTotal, discountedSubTotal, wrappingCostTotal, shippingCostTotal, handlingCostTotal, taxTotal, and totalIncTax fields.For schema details, see the Storefront GraphQL API reference:
Storefront GraphQL product search no longer crashes when a query pages deep enough into results that the search engine can’t return more matches, on a store with semantic (AI-powered) search enabled. The request used to fail outright instead of returning a response.
For details, see Faceted and Textual Search with the GraphQL Storefront API.
The Optimized One-Page Checkout styling reference now matches the current optimized-checkout.scss file in Cornerstone, including the style overrides for Enhanced Checkout.
.optimizedCheckout-buttonPrimary and .optimizedCheckout-buttonSecondary, and they cover hover, focus, active, and disabled states..enhancedThemeV1 overrides that checkout applies when the Enhanced Checkout option is enabled in the control panel.For details, see Optimized One-Page Checkout.
Corrected reference pages that did not match live API behavior. The APIs are unchanged; the pages now match what the endpoints accept and return.
{ data, meta } response the gateway returns. Get Deployment Event Stream and Tail Worker Logs now show a field table per event.422 they return. Shipping also documents 400 and 413.certificate object, Update Email Template documents the three fields it actually reads, List Subscribers documents sort and direction, and shipping rate requests document rate_options.site_id and channel_id are integers, not strings. Tax customer endpoints require Accept, not Content-Type. Promotion Settings requires store_v2_information, not store_v2_marketing.If you built against any of these pages, recheck your request and response handling:
Invoice pages in the B2B Edition Buyer Portal now display the currency symbol on the side set by your store’s currency settings, instead of always placing it on the left.
For details, see B2B Edition Buyer Portal.
The B2B Edition Get Quote Details endpoint now returns updatedAt, so you can check whether a quote changed without calling List Quotes first.
GET /api/v3/io/rfq/{quote_id} returns updatedAt as a Unix timestamp integer. It holds the same value that List Quotes returns for the quote.PUT /api/v3/io/rfq/{quote_id} and {"status": "archived"} returns the quote details, so that response also includes updatedAt.For details, see the Quotes overview.
Catalyst 1.12.2 keeps a separate cart for each channel, so a cart started on one channel no longer appears or checks out on another. It also adds meta tags that identify how a storefront is hosted and which channel it serves.
getCartId, setCartId, and clearCartId act on the current channel. Login sends BigCommerce the cart for the channel the shopper signed in on, and logout sends the cart for the channel they signed out from. Existing single-cart cookies keep working and move to the new format on the shopper’s next cart action.hosting and channel_id meta tags: every page now renders a channel_id meta tag with the storefront’s channel, and a hosting meta tag that reads native on Catalyst Native Hosting, vercel on Vercel, and other everywhere else. They sit alongside the existing platform and store_hash tags, so Support can confirm a storefront’s setup from its page source.See the full 1.12.2 release notes for migration details and release tags.