Selected shipping option now matches the available options in createCheckout
We are beginning to roll out a fix for a bug in the Storefront GraphQL API where createCheckout could select a shipping option that wasn’t in the consignment’s availableShippingOptions. You may notice this take effect over the coming weeks.
- Affected requests:
createCheckoutmutations that setselectRecommendedOption: trueorshippingOptionSelectionStrategyon a shipping consignment, for stores whose shipping rates depend on the cart’s discounts, order total, or product dimensions. This includes carrier-calculated rates. - Selected option is one of the available options: the shipping option is selected using the same prices, discounts, and product dimensions as the returned
availableShippingOptions, soselectedShippingOptionmatches one of them and the consignment’sshippingCostmatches that option’s price. - No request changes: you don’t need to change your
createCheckoutrequests.
For details, see the createCheckout mutation reference.
Selected shipping option now matches the available options in updateCheckout
We are beginning to roll out the fix for selected shipping options in createCheckout to updateCheckout. The bug in the Storefront GraphQL API let updateCheckout select a shipping option that wasn’t in the consignment’s availableShippingOptions when the same request also changed line items or coupons. You may notice this take effect over the coming weeks.
- Affected requests:
updateCheckoutmutations that change line items or coupons and, in the same request, either setselectRecommendedOption: trueorshippingOptionSelectionStrategyon a shipping consignment, or update a consignment’s address without a shipping option. This applies to stores whose shipping rates depend on the cart’s discounts, order total, or product dimensions, including carrier-calculated rates. - Selected option is one of the available options: the shipping option is selected and validated using the cart’s updated prices, discounts, and product dimensions, the same ones used for the returned
availableShippingOptions.selectedShippingOptionmatches one of them and the consignment’sshippingCostmatches that option’s price. - No request changes: you don’t need to change your
updateCheckoutrequests.
For details, see the updateCheckout mutation reference.
New Smart Edits page under AI Tools
Docs now includes an AI Tools section that groups the control panel AI features. It brings the existing Catalog Enrichment guides together with a new overview of Smart Edits, the AI tool in the control panel product list that turns plain-language requests into a reviewable plan of bulk product updates. Existing Catalog Enrichment links redirect to the new location.
The page explains what Smart Edits is, how a session works from selecting products to applying changes, which product attributes it can update, what it doesn’t do, and when to reach for it instead of the bulk editor. It includes a short demo video and links to the Smart Edits support article, which covers setup, permissions, the full attribute list, and troubleshooting.
Smart Edits is in beta. Store owners can turn it on under Settings › Early access.
For details, see Smart Edits.
B2B Buyer Portal Updates
Updates the B2B Buyer Portal course to match a new release of its lab project, aligning the hands-on exercises in Modules 4 through 6 with the patterns the Buyer Portal itself uses.
- Permission checks now read from the Redux store, using the
rolePermissionSelectorselector withuseAppSelectorin place of thevalidatePermissionWithComparisonTypeutility. Because the value comes from global state, gated content re-renders when a user’s permissions change. - In-app navigation now uses React Router’s
useNavigatehook, replacing thesetOpenPageprop.setOpenPagecontrols the portal shell’s open and closed state rather than acting as a navigation API, and the lab components no longer thread it through as a prop. - GraphQL responses are typed with the
B3Request.graphqlB2Btype parameter instead ofasassertions. Response interfaces now describe the fulldataenvelope, which the request layer unwraps before returning. - Expands the routing and querying lessons to teach
useNavigateand response typing directly, so the instructional content matches the lab code. - Updates the lab project to a clean install of the Buyer Portal framework released on 2026-10-07.
For details, see the B2B Buyer Portal course.
Shipping option selection strategy for checkouts in the GraphQL Storefront API
BigCommerce is rolling out an optional shippingOptionSelectionStrategy field on checkout shipping consignments in the GraphQL Storefront API, so a caller can have a shipping option selected by a strategy of its choosing instead of the store’s default shipping option setting. You may notice this take effect over the coming weeks.
- Choose a selection strategy. The
createCheckoutandupdateCheckoutmutations accept an optionalshippingOptionSelectionStrategyonCreateCheckoutShippingConsignmentInputandShippingConsignmentUpdateCheckoutInput. It takes a value of the newShippingOptionSelectionStrategyenum:LEAST_EXPENSIVE,LEAST_EXPENSIVE_EXCLUDING_PICK_UPorMOST_EXPENSIVE. - Overrides the store setting. When the field is provided, the shipping option is selected using that strategy, even if the store’s default shipping option setting would recommend a different one.
isRecommendedon the available shipping options still reflects the store setting, so the selected option may not be the one marked as recommended. - One way to select per consignment. A request that sends
shippingOptionSelectionStrategytogether withselectRecommendedOption: trueorshippingOptionEntityIdis rejected. - Omitting the field changes nothing.
shippingOptionSelectionStrategyis optional, so existing mutations continue to work unchanged.
For details, see GraphQL Storefront API: Carts and Checkout.
BigCommerce MCP Server is generally available
The BigCommerce MCP server is no longer in beta. The B2C Storefront and B2B Storefront tool sets are now generally available.
- New settings location — enable the server under Settings → API and MCP → MCP in the control panel, instead of Settings → Early access
- Same terms flow — turn on Storefront MCP and accept the terms of service to enable the server for your store
- Per-storefront endpoint — once enabled, select a storefront to view and copy its MCP server URL
For details, see Enable MCP on your store.
Japanese prefecture names now use English spelling
Six Japanese prefecture names now use plain English spelling without macrons, following ISO 3166-2:JP. If your integration matches states by name, update it to use the new names.
- Unchanged identifiers: state IDs and state abbreviations stay the same, so lookups by ID or abbreviation are not affected.
For details, see Get all country states.
301 redirects now apply to storefront channels only
We are beginning to roll out a fix so that the 301 redirects are only created for storefront channels, meaning any channel with a type of storefront.
The rollout starts on November 10, 2026.
- Storefront channels unchanged. All channels with a
typeofstorefrontstill get automatic redirects, including Stencil (bigcommerce), Catalyst, Next, WordPress, and custom storefront channels. - Non-storefront channels skipped. Channels with other types, such as marketplace and marketing channels, no longer get 301 redirects, because they don’t serve storefront pages.
- Existing redirects kept. Redirects that were already created for non-storefront channels are not removed at this time.
For details, see the Redirects overview.
Retrieve staff action logs with the Store Logs API
The Store Logs V3 API now includes a Staff Action Logs endpoint, so you can audit what staff users did in a store’s control panel over a given period.
- New endpoint:
GET /stores/{store_hash}/v3/store/stafflogsreturns staff action log entries with the staff username, IP address, timestamp, summary, and action details. - Required time window: send
timestamp:minas a Unix timestamp. Addtimestamp:maxto set the end of the window, which defaults to the current time. The window must not exceed 90 days. - Filters, paging, and sorting: filter by
staff_username,service_name,summary,ipaddress, oruserid, and uselimit,page,sort, anddirectionto page through and order results. - Authentication: requests use the existing
store_logs_read_onlyOAuth scope, the same as System Logs.
For details, see the Store Logs API reference.
Clearer error for duplicate Worldpay Access payments at checkout
When a shopper pays at checkout and Worldpay Access rejects the payment as already processed, the checkout payment request now returns a duplicate_transaction error instead of a generic server error.
- Error code: the response carries
duplicate_transactionrather thanserver_error, so a repeated transaction reference is distinguishable from a gateway failure. - HTTP status: these checkout payment requests return
400 Bad Requestinstead of500 Internal Server Error. - No setup changes: you don’t need to change your Worldpay Access settings.
For details, see the Payments overview.