6/17/2026, 12:01:12 AM
Shopify added a new "shippingLabelPurchase" mutation that lets developers programmatically buy shipping labels, returning an async result via ShippingLabelPurchasePayload and supporting package options, preferred rates, and detailed error codes. A new "shippingLabel" query now retrieves a ShippingLabel by ID, and the shipping label type is also exposed as a field on the Fulfillment object. The schema now exposes collection metafield definitions usable in collection conditions through the "collectionConditionMetafieldDefinitions" query, returning objects that implement CollectionConditionMetafieldDefinitionInterface. Collections gain a "subCollectionEligibility" field that reports inclusion/exclusion viability with reasons via CollectionSubCollectionEligibility, aiding front‑end validation of sub‑collection sources. Several new input types (PackageInfoInput, PreferredRateSelectionInput, etc.) and enums (ShippingLabelPurchaseErrorCode, ShippingLabelPurchaseUserErrorCode, SubCollectionIneligibleReason) support the new features and provide detailed error codes. The legacy CollectionLinkedSourceInput type is removed and replaced by CollectionShareableSourceInput for linking sources. Minor description wording was adjusted for MailingAddress.validationResultSummary; no functional changes there.
Lists all metafield definitions that can be used to create collection conditions.
Returns a ShippingLabel resource by ID.
Purchases shipping label.
A non-metaobject metafield definition usable as a collection condition.
Common fields exposed by every metafield definition usable as a collection condition.
A metaobject-reference metafield definition usable as a collection condition.
The input fields for linking an existing shareable source to a collection.
The input fields for an exclusion condition based on collections.
Whether a collection can be referenced as a sub-collection target by another collection's source. Use this to surface ineligible targets up front (with reasons).
Whether a collection is eligible for one role (inclusion or exclusion) in a sub-collection relationship, plus the reason it isn't if applicable.
The input fields for package information for the shipping label. Exactly one of custom_package or carrier_package must be provided.
The input fields for selecting a preferred shipping rate by carrier and service codes.
The input fields for a carrier defined shipping package that are used to pack a shipment.
Types of shipping documents.
File format for label.
The optional shipping label for this fulfillment.
The input fields for a custom package for label purchase.
The shipping label purchase processing failure.
Possible error codes that can be returned by ShippingLabelPurchaseError.
The input fields for a shipping label input for purchase.
Return type for shippingLabelPurchase mutation.
A result object that tracks the progress of a shipping label purchase request.
The status of a shipping label purchase result.
An error that occurs during the execution of ShippingLabelPurchase.
Possible error codes that can be returned by ShippingLabelPurchaseUserError.
Represents a shipping document.
Stable identifier for why a collection cannot be referenced as a sub-collection target.
The input fields for linking an existing shareable source to a collection.
subCollectionEligibilityWhether this collection is eligible to be referenced as a sub-collection from
another collection's source. Returns one state per role (inclusion / exclusion).
Use this to filter ineligible targets up front and surface the reason.
shippingLabelThe optional shipping label for this fulfillment.
validationResultSummary