Complex rule condition schema clarifies nullable variant_id
The Catalog Products reference now marks variant_id as nullable in complex rule condition responses, matching what the API actually returns.
- Nullable
variant_id: complex rules created through the v2 API or the control panel can return conditions without avariant_id, so the field may benullinGETandPUTresponses.
For details, see the Complex Rules reference.
GraphQL Schema Updates
The Storefront GraphQL API adds a vault access token mutation for stored payment instruments and a way to list the company members who have placed orders. Both additions are alpha and marked deprecated in the schema: do not use them in production.
Storefront GraphQL
- Vault access tokens: a new
storedPaymentInstrumentsfield onCustomerMutationsexposes the newStoredPaymentInstrumentMutationstype, whosecreateVaultAccessTokenmutation issues a vault access token for the authenticated customer.- Result shape:
CreateVaultAccessTokenResultreturns thevaultAccessToken, itsexpiresAttimestamp, and anerrorslist ofCreateVaultAccessTokenError. Empty errors indicates success.
- Result shape:
- Company members with orders: a new
customersWithOrdersfield onActiveCompanyreturns a paginatedCompanyCustomerConnectionof company members who have placed at least one order.- Customer details: the new
CompanyCustomertype exposes each member’sentityId,firstName,lastName, andemail. - Filtering: the new
CustomerWithOrdersFiltersInputnarrows the list bycompanyIds.
- Customer details: the new
For schema details, browse the Storefront GraphQL API reference.
Clarified what updates a product’s date_modified
The product documentation now explains exactly which changes update the date_modified timestamp on a product, so you can avoid a common pitfall when detecting changes.
- Product record changes update
date_modified— editing a product’s name, description, pricing, categories, custom fields, images, options, modifiers, or variants updates the timestamp. - Inventory changes do not always update
date_modified— because inventory is a separate entity, stock updates processed by the Inventory API (including stock edits from the control panel Products list) leavedate_modifiedunchanged. Inventory updates processed by the Catalog API, such as aPUTthat setsinventory_level, do update it. - Use webhooks instead of polling — subscribe to the
store/product/updatedandstore/product/inventory/updatedwebhooks to reliably detect product and stock changes.
For details, see Inventory adjustments.
Storefront Foundations Updates
Updates the Storefront Foundations course to cover Stencil’s new multi-language storefront support and to keep a hands-on lab in sync with its underlying code.
- About Stencil now mentions that a single Stencil storefront can present multiple languages, with catalog and checkout data translated using the Translations Admin GraphQL API or the control panel’s Localization tab.
- Add a Subcategory Listing in Stencil lab syncs its code snippets with the current lab source, including the full category page markup and the component partial filename.
For more information, see About Stencil.