10/15/2026, 12:00:15 AM
The inventorySetQuantities mutation now uses compare‑and‑swap semantics; each quantity must include a changeFromQuantity value (or null to opt‑out), omitting it causes an error. A new CHANGE_FROM_QUANTITY_STALE error is returned when a stale value is supplied. Idempotency keys have become mandatory as of 2026‑04. Subscription contract calculation mutations can return a top‑level THROTTLED error when the per‑app/per‑store rate limit is exceeded. ProductVariant now includes a compliance array for Y081 declarations, requiring new compliance input and object types. GiftCardErrorCode and ThemeDuplicateUserErrorCode enums have added values: TOO_BIG, CANNOT_DUPLICATE_DEMO_THEME, CANNOT_DUPLICATE_DEVELOPMENT_THEME, and CANNOT_DUPLICATE_RESTRICTED_THEME. InventoryItemPackedDimensions now reports zero for unset dimensions, with an updated description.
Set quantities of specified name using absolute values. This mutation supports compare-and-swap (CAS) functionality to handle
concurrent requests properly.
As of 2026-04, each quantity in quantities must include a changeFromQuantity value. The mutation only updates the
quantity if the persisted quantity matches changeFromQuantity, and otherwise returns a CHANGE_FROM_QUANTITY_STALE error.
In order to opt out of the check for a quantity, explicitly pass null as its changeFromQuantity. OmittingchangeFromQuantity returns an error.
Before 2026-04, if ignoreCompareQuantity is not set to true,
the mutation will only update the quantity if the persisted quantity matches the compareQuantity value.
If the compareQuantity value does not match the persisted value, the mutation will return an error. In order to opt out
of the compareQuantity check, the ignoreCompareQuantity argument can be set to true.
Note:
Only use this mutation if calling on behalf of a system that acts as the source of truth for inventory quantities,
otherwise please consider using the inventoryAdjustQuantities mutation.Opting out of the compare-and-swap check can lead to inaccurate inventory quantities if multiple requests are made concurrently.
It is recommended to always pass the expected current quantity aschangeFromQuantity(orcompareQuantitybefore 2026-04)
to ensure the accuracy of the inventory quantities, and to opt out of the check (with anullchangeFromQuantity, orignoreCompareQuantitybefore 2026-04) only when necessary.
For more information, refer to the compare and swap documentation.
Caution:
As of 2026-01, this mutation supports an optional idempotency key using the@idempotentdirective.
As of 2026-04, the idempotency key is required and must be provided using the@idempotentdirective.
For more information, see the idempotency documentation.
Starts an asynchronous calculation for changes to a single billing cycle of an existing subscription contract. Committing the calculation applies the changes only to the selected cycle, leaving the recurring contract unchanged.
Poll the subscriptionContractCalculation query to review the calculated contract, then commit it with the subscriptionContractCalculationCommit mutation.
Calls are rate limited per app and store. If you exceed the limit, then the mutation returns a top-level THROTTLED error and doesn't start a calculation. Wait a moment, then retry.
Learn how to update a subscription contract.
Starts an asynchronous calculation for a new subscription contract. The contract isn't created until you commit the calculation.
Poll the subscriptionContractCalculation query to review the calculated contract, its projected order totals, and any warnings, then commit it with the subscriptionContractCalculationCommit mutation.
Calls are rate limited per app and store. If you exceed the limit, then the mutation returns a top-level THROTTLED error and doesn't start a calculation. Wait a moment, then retry.
Learn how to build a subscription contract.
Starts an asynchronous calculation for changes to an existing subscription contract. The changes aren't applied to the contract until you commit the calculation, and fields omitted from the input remain unchanged.
Poll the subscriptionContractCalculation query to review the calculated contract, its projected order totals, and any warnings, then commit it with the subscriptionContractCalculationCommit mutation.
Calls are rate limited per app and store. If you exceed the limit, then the mutation returns a top-level THROTTLED error and doesn't start a calculation. Wait a moment, then retry.
Learn how to update a subscription contract.
A compliance declaration recorded on a product variant, such as the EU customs declaration Y081.
The input fields for a compliance declaration on a product variant.
The kind of compliance declaration recorded on a product variant.
companyTOO_BIGpackedDimensionscomplianceThe compliance declarations recorded on the product variant, such as the EU customs declaration Y081.
Empty when the variant has no declarations.
CANNOT_DUPLICATE_DEMO_THEMECANNOT_DUPLICATE_DEVELOPMENT_THEMECANNOT_DUPLICATE_RESTRICTED_THEME