Documentation clarification on Buy X Get Y discount stacking
Added documentation notes clarifying that Buy X Get Y discounts stack only on customer-gets products (GY), not customer-buys products (BX), with a link to detailed limitations guidance. This is a documentation-only change that provides clarification to developers integrating discount features.
Alert history
- Informational
Documentation clarification on Buy X Get Y discount stacking
Added documentation notes clarifying that Buy X Get Y discounts stack only on customer-gets products (GY), not customer-buys products (BX), with a link to detailed limitations guidance. This is a documentation-only change that provides clarification to developers integrating discount features.
- Additive
Add new error codes to Shopify Admin API
Two new error codes have been added to the GraphQL schema:
GLOBAL_E_PRICING_STRATEGY_NOT_PERMITTED(indicating Global-e pricing configurations can only be edited by Global-e) andINVALID_STANDARD_METAOBJECT(indicating an invalid standard metaobject definition template). These are purely additive changes to the error enumeration that expand available error responses without breaking existing integrations. - Informational
Documentation example formatting fixes in filter descriptions
Documentation strings in MetafieldDefinition and Product search filter descriptions were updated to add proper quoting around ISO timestamp examples (e.g.,
created_at:>'2020-10-21T23:39:20Z'andupdated_at:>'2020-10-21T23:39:20Z'). This is a documentation/example correction that does not affect API behavior or schema. - Informational
Documentation rewording in search filter descriptions
The
return_statusfilter description was updated from"retur...(truncated) to a complete list of acceptable values, and URL references in several filter descriptions were adjusted (e.g.,fulfillment_statusfield link changed fromhttps://shopify.dev/docs/to a consistent format). These are pure documentation clarifications that do not change the API's behavior or accepted input values. - Additive
Add product_id and product_variant_id filters to subscriptionContracts search
Two new filter options
product_idandproduct_variant_idhave been added to thesubscriptionContractssearch query's filter parameter. These are documented additions that enable filtering subscription contracts by product or product variant ID, without breaking existing integrations. - Additive
Updated sourceName documentation and added new error codes
Updated documentation for the
sourceNamefield in draft orders and order creation inputs to simplify instructions and reference the order attribution guide. Added two new error codes:MANAGED_MARKETS_RESOURCE_NOT_ALLOWEDandINCOMPATIBLE_WITH_STANDARD_POLICY, plus deprecated thesavedSearchesandsegmentMigrationsfields in favor of alternatives. The documentation changes clarify how to set up order attribution without breaking existing field functionality, and the new error codes extend error handling without removing existing ones. - Informational
Enhanced documentation for cart and checkout validation mutations
The Shopify Admin API documentation for the
validationCreate,validationDelete, andvalidationUpdateGraphQL mutations has been expanded with detailed descriptions clarifying their purpose, behavior, and use cases. These are pure documentation improvements with no changes to the actual API contract or behavior. - Deprecation
Clarified deprecation message for priceRule field
The
priceRulefield inDraftOrderDuplicateLineItemsPayloadnow has a more detailed deprecation message indicating what to use instead (discountCodeanddiscountTitle) and when it will be removed (2026-10). This is still a deprecation warning rather than a breaking change, but clients should begin migrating now. - Additive
Add new MetafieldType enum values to Admin API
Five new enum values added to the
MetafieldTypeenum:CUMULATIVE,GEO_COORDINATE,ENTITY,UNITLESS_SCALAR, andMULTIPLIER. These are new optional metafield type options available for use in the Shopify Admin GraphQL API, with no breaking changes to existing integrations. - Deprecation
Deprecate codeDiscountNode query field
The
codeDiscountNodequery field is now marked deprecated in favor ofdiscountNode. This is a standard deprecation that allows clients time to migrate before the field is removed. Additionally, theDepositInputdescription was clarified from "for a B2B buyer" to "requirement" for broader applicability. - Additive
Add INVALID_TAG error code and deprecate automaticDiscountNode
The diff adds a new
INVALID_TAGerror enum value to three error types in the Shopify GraphQL API to indicate when one or more tags are not valid. Additionally, theautomaticDiscountNodequery field is now marked as deprecated in favor ofdiscountNode. These changes are additive: the new error code provides richer error reporting, and the deprecation preserves backward compatibility while guiding clients to the preferred field. - Additive
Documentation updates and new error codes for customer merge
The diff adds comprehensive documentation to the customer merge APIs explaining the deterministic rules for selecting which customer is kept, adds two new error codes (
MAXIMUM_CART_TRANSFORMSandMAXIMUM_PAYMENT_CUSTOMIZATIONS), and deprecates five marketing-related fields onCustomerPhoneNumberin favor ofsmsMarketingConsent. These are additive changes that clarify behavior and provide new optional fields; deprecated fields remain functional. - Deprecation
marketingActivityCreateExternal mutation deprecated
The
marketingActivityCreateExternalmutation is now marked deprecated in favor ofmarketingActivityUpsertExternal. Existing integrations will continue to work but should migrate to the replacement mutation. - Deprecation
Deprecate collectionAddProducts and collectionRemoveProducts mutations
The
collectionAddProductsandcollectionRemoveProductsmutations are now deprecated in favor ofcollectionUpdate. Documentation is being refactored to use "collection" terminology instead of distinguishing between "manual" and "smart" collection types, emphasizing that all collections can now include products manually and automatically through rules, sources, or conditions. - Additive
Add CUSTOM_APP_FUNCTION_NOT_ELIGIBLE error code
A new GraphQL error code
CUSTOM_APP_FUNCTION_NOT_ELIGIBLEhas been added to indicate when a Shopify Plus plan is required to activate functions from a custom app. This is an additive change that provides more granular error information without breaking existing integrations. - Deprecation
Deprecate Order.channelInformation field
The
channelInformationfield on the Order object is marked deprecated in favor of theattributionfield. Existing integrations will continue to work, but clients should migrate to useattributioninstead. - Additive
Add CA_SK_VPT_RESELLER_EXEMPTION and CA_NL_VPT_RESELLER_EXEMPTION tax exemption types
Two new tax exemption enum values were added to support VPT (Vapour Products Tax) reseller exemptions in Saskatchewan and Newfoundland and Labrador. These are new enum cases that existing integrations can opt into using without any breaking changes.
- Additive
Add customer_id filter to subscriptionContracts search and MACHINE_TRANSLATION_BATCH_COMPLETED webhook
Added
customer_idfilter field to thesubscriptionContractssearch query documentation, enabling clients to filter subscription contracts by customer ID. Also added a new webhook topicMACHINE_TRANSLATION_BATCH_COMPLETEDfor machine translation batch completion events. Both are purely additive and do not affect existing integrations. - Additive
Add MARKET_UPDATE_CONCURRENT_MODIFICATION error code
A new error code MARKET_UPDATE_CONCURRENT_MODIFICATION has been added to the Market mutations error response. This indicates that another modification to a market is in progress. The addition is backwards compatible and only affects error handling paths.
- Informational
Enhanced documentation for resourcePublicationsV2 catalogType argument
Documentation for the
catalogTypeargument in theresourcePublicationsV2field has been expanded across multiple object types to clarify default behavior and limitations. The changes explain thatAPPcatalog types are returned by default, thatProductandProductVariantsupport other catalog types likeCOMPANY_LOCATIONandMARKET, and thatCollectiononly supportsAPPcatalog types. No API behavior or schema has changed. - Informational
PriceRule field un-deprecated on DraftOrderApplyGiftCardWarning
The
priceRulefield on what appears to be aDraftOrderApplyGiftCardWarning(or similar warning type) has had its@deprecateddirective removed, meaning it is no longer marked as deprecated. This is a reversal of a prior deprecation — existing clients using the field are unaffected, but tooling that warned on deprecated field usage will no longer flag it. - Deprecation
Deprecate priceRule field in PriceRulePreviewError
The
priceRulefield in thePriceRulePreviewErrortype is now marked as deprecated. Existing code using this field will continue to work, but clients should plan to migrate away from it. - Additive
Add OTHER enum value to CashManagementDefaultReasonCodeEnum
The
CashManagementDefaultReasonCodeEnumenum gains a newOTHERvariant; simultaneously, an existingOTHERvariant in a related enum is deprecated in favor of this new location. Additionally, theMarkettype description is reworded for clarity but retains the same API semantics. The new enum value is purely additive for clients usingCashManagementDefaultReasonCodeEnum. - Informational
Documentation clarifications for product discount tags
Updated documentation for product discount tag handling to clarify the distinction between a discount's own
tagsfield and theproductDiscountsWithTagsOnSameCartLinefield which controls which other discounts it can combine with. The changes emphasize that modifying combination tags does not affect the discount's identity tags, and provide clearer examples and cross-references to relevant mutations. - Deprecation
Deprecate isCumulative field on engagement metrics
The
isCumulativefield on engagement metrics objects is now marked as deprecated via@deprecateddirective, with guidance to use non-cumulative metrics instead. The field remains functional but should no longer be used for new integrations. A new error codeTOO_MANY_DISCOUNTSwas also added to contract draft validation. - Informational
Update original_upload_size filter documentation type
The documentation for the
original_upload_sizefilter in the File search query was updated to reflect its type asfloatinstead ofstring. The detailed description of how the filter works (supporting byte units, ranges, and multipliers) was also removed. This is a documentation clarification that does not change the actual API behavior or how clients should interact with the filter. - Informational
Enhanced original_upload_size filter documentation
The
original_upload_sizefilter documentation in the File search query has been expanded from a simplefloattype to include detailed filter capabilities, examples, and unit support (B, KB, MB, GB, TB). This clarifies existing API behavior without changing the actual implementation—the filter was already functional, just now better documented. - Informational
New changelog entries added to developer changelog
Two new changelog entries were added to the Shopify developer changelog page: one on barcode support for inventory shipments API and another on new rejection reason codes in the Payments Apps API. These are content updates to the changelog documentation and do not alter any API behaviour.
- Informational
Changelog entry reordering and additions
The changelog page was reorganized to reorder entries and add a new changelog post about
LineItem.priceAfterAllDiscountsBeforeTaxesSetfield availability in the GraphQL Admin API. No changes to actual API functionality or documented behavior occurred — this is a webpage restructuring update.