Skip to main content
object

The schema's entry point for all mutation operations.

Anchor to abandonmentUpdateActivitiesDeliveryStatusesabandonmentUpdateActivitiesDeliveryStatuses
•AbandonmentUpdateActivitiesDeliveryStatusesPayload

Updates the marketing activities delivery statuses for an abandonment.

Anchor to appPurchaseOneTimeCreateappPurchaseOneTimeCreate
•AppPurchaseOneTimeCreatePayload

Charges a shop for features or services one time. This type of charge is recommended for apps that aren't billed on a recurring basis. Test and demo shops aren't charged.

Anchor to appRevokeAccessScopesappRevokeAccessScopes
•AppRevokeAccessScopesPayload

Revokes access scopes previously granted for an app installation.

Anchor to appSubscriptionCancelappSubscriptionCancel
•AppSubscriptionCancelPayload

Cancels an app subscription on a store.

Anchor to appSubscriptionCreateappSubscriptionCreate
•AppSubscriptionCreatePayload

Allows an app to charge a store for features or services on a recurring basis.

Anchor to appSubscriptionLineItemUpdateappSubscriptionLineItemUpdate
•AppSubscriptionLineItemUpdatePayload

Updates the capped amount on the usage pricing plan of an app subscription line item.

Anchor to appSubscriptionTrialExtendappSubscriptionTrialExtend
•AppSubscriptionTrialExtendPayload

Extends the trial of an app subscription.

•AppUninstallPayload

Uninstalls an app.

Anchor to appUsageRecordCreateappUsageRecordCreate
•AppUsageRecordCreatePayload

Enables an app to charge a store for features or services on a per-use basis. The usage charge value is counted towards the cappedAmount limit that was specified in the appUsagePricingDetails field when the app subscription was created. If you create an app usage charge that causes the total usage charges in a billing interval to exceed the capped amount, then a Total price exceeds balance remaining error is returned.

•ArticleCreatePayload

Creates an article.

•ArticleDeletePayload

Deletes an article.

•ArticleUpdatePayload

Updates an article.

•BackupRegionUpdatePayload

Update the backup region that is used when we have no better signal of what region a buyer is in.

•BlogCreatePayload

Creates a blog.

•BlogDeletePayload

Deletes a blog.

•BlogUpdatePayload

Updates a blog.

•BulkOperationCancelPayload

Starts the cancelation process of a running bulk operation.

There may be a short delay from when a cancelation starts until the operation is actually canceled.

Anchor to bulkOperationRunMutationbulkOperationRunMutation
•BulkOperationRunMutationPayload

Creates and runs a bulk operation mutation.

To learn how to bulk import large volumes of data asynchronously, refer to the bulk import data guide.

Anchor to bulkOperationRunQuerybulkOperationRunQuery
•BulkOperationRunQueryPayload

Creates and runs a bulk operation query.

See the bulk operations guide for more details.

Anchor to bulkProductResourceFeedbackCreatebulkProductResourceFeedbackCreate
•BulkProductResourceFeedbackCreatePayload

Creates product feedback for multiple products.

Anchor to carrierServiceCreatecarrierServiceCreate
•CarrierServiceCreatePayload

Creates a new carrier service.

Anchor to carrierServiceDeletecarrierServiceDelete
•CarrierServiceDeletePayload

Removes an existing carrier service.

Anchor to carrierServiceUpdatecarrierServiceUpdate
•CarrierServiceUpdatePayload

Updates a carrier service. Only the app that creates a carrier service can update it.

•CartTransformCreatePayload

Create a CartTransform function to the Shop.

•CartTransformDeletePayload

Destroy a cart transform function from the Shop.

Anchor to catalogContextUpdatecatalogContextUpdate
•CatalogContextUpdatePayload

Updates the context of a catalog.

•CatalogCreatePayload

Creates a new catalog.

•CatalogDeletePayload

Delete a catalog.

•CatalogUpdatePayload

Updates an existing catalog.

Anchor to checkoutBrandingUpsertcheckoutBrandingUpsert
•CheckoutBrandingUpsertPayload

Updates the checkout branding settings for a checkout profile.

If the settings don't exist, then new settings are created. The checkout branding settings applied to a published checkout profile will be immediately visible within the store's checkout. The checkout branding settings applied to a draft checkout profile could be previewed within the admin checkout editor.

To learn more about updating checkout branding settings, refer to the checkout branding tutorial.

Anchor to collectionAddProductscollectionAddProducts
•CollectionAddProductsPayload

Adds products to a collection.

Anchor to collectionAddProductsV2collectionAddProductsV2
•CollectionAddProductsV2Payload

Asynchronously adds a set of products to a given collection. It can take a long time to run. Instead of returning a collection, it returns a job which should be polled.

•CollectionCreatePayload

Creates a collection to group products together in the online store and other sales channels. For example, an athletics store might create different collections for running attire, shoes, and accessories.

There are two types of collections:

Use the collectionCreate mutation when you need to:

  • Create a new collection for a product launch or campaign
  • Organize products by category, season, or promotion
  • Automate product grouping using rules (for example, by tag, type, or price)

Note

The created collection is unpublished by default. To make it available to customers, use the publishablePublish mutation after creation.


Learn more about using metafields with smart collections.

•CollectionDeletePayload

Deletes a collection.

Anchor to collectionRemoveProductscollectionRemoveProducts
•CollectionRemoveProductsPayload

Removes a set of products from a given collection. The mutation can take a long time to run. Instead of returning an updated collection the mutation returns a job, which should be polled. For use with manual collections only.

Anchor to collectionReorderProductscollectionReorderProducts
•CollectionReorderProductsPayload

Asynchronously reorders products within a specified collection. Instead of returning an updated collection, this mutation returns a job, which should be polled. The Collection.sortOrder must be MANUAL.

How to use this mutation:

  • Provide only the products that actually moved in the moves list; do not send the entire product list. For example: to move the product at index 1 to index N, send a single move for that product with newPosition: N.
  • Each move is applied sequentially in the order provided.
  • newPosition is a zero-based index within the collection at the moment the move is applied (after any prior moves in the list).
  • Products not included in moves keep their relative order, aside from any displacement caused by the moves.
  • If newPosition is greater than or equal to the number of products, the product is placed at the end.

Example:

  • Initial order: [A, B, C, D, E] (indices 0..4)
  • Moves (applied in order):
  • E -> newPosition: 1
  • C -> newPosition: 4
  • Result: [A, E, B, D, C]

Displaced products will have their position altered in a consistent manner with no gaps.

•CollectionUpdatePayload

Updates a collection, modifying its properties, products, or publication settings. Collections help organize products together in the online store and other sales channels.

Use the collectionUpdate mutation to programmatically modify collections in scenarios such as:

  • Updating collection details, like title, description, or image
  • Modifying SEO metadata for better search visibility
  • Changing which products are included (using rule updates for smart collections)
  • Publishing or unpublishing collections across different sales channels
  • Updating custom data using metafields

There are two types of collections with different update capabilities:

  • Custom (manual) collections: You can update collection properties, but rule sets can't be modified since products are manually selected.
  • Smart (automated) collections: You can update both collection properties and the rules that automatically determine which products are included. When updating rule sets for smart collections, the operation might be processed asynchronously. In these cases, the mutation returns a job object that you can use to track the progress of the update.

To publish or unpublish collections to specific sales channels, use the dedicated publishablePublish and publishableUnpublish mutations.

Learn more about using metafields with smart collections.

Anchor to combinedListingUpdatecombinedListingUpdate
•CombinedListingUpdatePayload

Add, remove and update CombinedListings of a given Product.

CombinedListings are comprised of multiple products to create a single listing. There are two kinds of products used in a CombinedListing:

  1. Parent products
  2. Child products

The parent product is created with a productCreate with a CombinedListingRole of PARENT. Once created, you can associate child products with the parent product using this mutation. Parent products represent the idea of a product (e.g. Shoe).

Child products represent a particular option value (or combination of option values) of a parent product. For instance, with your Shoe parent product, you may have several child products representing specific colors of the shoe (e.g. Shoe - Blue). You could also have child products representing more than a single option (e.g. Shoe - Blue/Canvas, Shoe - Blue/Leather, etc...).

The combined listing is the association of parent product to one or more child products.

Learn more about Combined Listings.

•CommentApprovePayload

Approves a comment.

•CommentDeletePayload

Deletes a comment.

•CommentNotSpamPayload

Marks a comment as not spam.

•CommentSpamPayload

Marks a comment as spam.

•CompaniesDeletePayload

Deletes a list of companies.

Anchor to companyAddressDeletecompanyAddressDelete
•CompanyAddressDeletePayload

Deletes a company address.

Anchor to companyAssignCustomerAsContactcompanyAssignCustomerAsContact
•CompanyAssignCustomerAsContactPayload

Assigns the customer as a company contact.

Anchor to companyAssignMainContactcompanyAssignMainContact
•CompanyAssignMainContactPayload

Assigns the main contact for the company.

Anchor to companyContactAssignRolecompanyContactAssignRole
•CompanyContactAssignRolePayload

Assigns a role to a contact for a location.

Anchor to companyContactAssignRolescompanyContactAssignRoles
•CompanyContactAssignRolesPayload

Assigns roles on a company contact.

Anchor to companyContactCreatecompanyContactCreate
•CompanyContactCreatePayload

Creates a company contact and the associated customer.

Anchor to companyContactDeletecompanyContactDelete
•CompanyContactDeletePayload

Deletes a company contact.

Anchor to companyContactRemoveFromCompanycompanyContactRemoveFromCompany
•CompanyContactRemoveFromCompanyPayload

Removes a company contact from a Company.

Anchor to companyContactRevokeRolecompanyContactRevokeRole
•CompanyContactRevokeRolePayload

Revokes a role on a company contact.

Anchor to companyContactRevokeRolescompanyContactRevokeRoles
•CompanyContactRevokeRolesPayload

Revokes roles on a company contact.

Anchor to companyContactsDeletecompanyContactsDelete
•CompanyContactsDeletePayload

Deletes one or more company contacts.

Anchor to companyContactUpdatecompanyContactUpdate
•CompanyContactUpdatePayload

Updates a company contact.

•CompanyCreatePayload

Creates a company.

•CompanyDeletePayload

Deletes a company.

Anchor to companyLocationAssignAddresscompanyLocationAssignAddress
•CompanyLocationAssignAddressPayload

Updates an address on a company location.

Anchor to companyLocationAssignRolescompanyLocationAssignRoles
•CompanyLocationAssignRolesPayload

Assigns roles on a company location.

Anchor to companyLocationAssignStaffMemberscompanyLocationAssignStaffMembers
•CompanyLocationAssignStaffMembersPayload

Creates one or more mappings between a staff member at a shop and a company location.

Anchor to companyLocationCreatecompanyLocationCreate
•CompanyLocationCreatePayload

Creates a company location.

Anchor to companyLocationDeletecompanyLocationDelete
•CompanyLocationDeletePayload

Deletes a company location.

Anchor to companyLocationRemoveStaffMemberscompanyLocationRemoveStaffMembers
•CompanyLocationRemoveStaffMembersPayload

Deletes one or more existing mappings between a staff member at a shop and a company location.

Anchor to companyLocationRevokeRolescompanyLocationRevokeRoles
•CompanyLocationRevokeRolesPayload

Revokes roles on a company location.

Anchor to companyLocationsDeletecompanyLocationsDelete
•CompanyLocationsDeletePayload

Deletes a list of company locations.

Anchor to companyLocationTaxSettingsUpdatecompanyLocationTaxSettingsUpdate
•CompanyLocationTaxSettingsUpdatePayload

Sets the tax settings for a company location.

Anchor to companyLocationUpdatecompanyLocationUpdate
•CompanyLocationUpdatePayload

Updates a company location.

Anchor to companyRevokeMainContactcompanyRevokeMainContact
•CompanyRevokeMainContactPayload

Revokes the main contact from the company.

•CompanyUpdatePayload

Updates a company.

•ConsentPolicyUpdatePayload

Update or create consent policies in bulk.

Anchor to customerAddressCreatecustomerAddressCreate
•CustomerAddressCreatePayload

Create a new customer address.

Anchor to customerAddressDeletecustomerAddressDelete
•CustomerAddressDeletePayload

Deletes a customer's address.

Anchor to customerAddressUpdatecustomerAddressUpdate
•CustomerAddressUpdatePayload

Update a customer's address information.

Anchor to customerAddTaxExemptionscustomerAddTaxExemptions
•CustomerAddTaxExemptionsPayload

Add tax exemptions for the customer.

Anchor to customerCancelDataErasurecustomerCancelDataErasure
•CustomerCancelDataErasurePayload

Cancels a pending erasure of a customer's data. Read more here.

To request an erasure of a customer's data use the customerRequestDataErasure mutation.

•CustomerCreatePayload

Create a new customer. As of API version 2022-10, apps using protected customer data must meet the protected customer data requirements.

•CustomerDeletePayload

Delete a customer. As of API version 2022-10, apps using protected customer data must meet the protected customer data requirements.

Anchor to customerEmailMarketingConsentUpdatecustomerEmailMarketingConsentUpdate
•CustomerEmailMarketingConsentUpdatePayload

Update a customer's email marketing information information.

Anchor to customerGenerateAccountActivationUrlcustomerGenerateAccountActivationUrl
•CustomerGenerateAccountActivationUrlPayload

Generate an account activation URL for a customer.

•CustomerMergePayload

Merges two customers.

Anchor to customerPaymentMethodCreditCardCreatecustomerPaymentMethodCreditCardCreate
•CustomerPaymentMethodCreditCardCreatePayload

Creates a credit card payment method for a customer using a session id. These values are only obtained through card imports happening from a PCI compliant environment. Please use customerPaymentMethodRemoteCreate if you are not managing credit cards directly.

Anchor to customerPaymentMethodCreditCardUpdatecustomerPaymentMethodCreditCardUpdate
•CustomerPaymentMethodCreditCardUpdatePayload

Updates the credit card payment method for a customer.

Anchor to customerPaymentMethodGetUpdateUrlcustomerPaymentMethodGetUpdateUrl
•CustomerPaymentMethodGetUpdateUrlPayload

Returns a URL that allows the customer to update a specific payment method.

Currently, customerPaymentMethodGetUpdateUrl only supports Shop Pay.

Anchor to customerPaymentMethodPaypalBillingAgreementCreatecustomerPaymentMethodPaypalBillingAgreementCreate
•CustomerPaymentMethodPaypalBillingAgreementCreatePayload

Creates a PayPal billing agreement for a customer.

Anchor to customerPaymentMethodPaypalBillingAgreementUpdatecustomerPaymentMethodPaypalBillingAgreementUpdate
•CustomerPaymentMethodPaypalBillingAgreementUpdatePayload

Updates a PayPal billing agreement for a customer.

Anchor to customerPaymentMethodRemoteCreatecustomerPaymentMethodRemoteCreate
•CustomerPaymentMethodRemoteCreatePayload

Create a payment method from remote gateway identifiers. NOTE: This operation processes payment methods asynchronously. The returned payment method will initially have incomplete details. Developers must poll this payment method using customerPaymentMethod query until all payment method details are available, or the payment method is revoked (usually within seconds).

Anchor to customerPaymentMethodRevokecustomerPaymentMethodRevoke
•CustomerPaymentMethodRevokePayload

Revokes a customer's payment method.

Anchor to customerPaymentMethodSendUpdateEmailcustomerPaymentMethodSendUpdateEmail
•CustomerPaymentMethodSendUpdateEmailPayload

Sends a link to the customer so they can update a specific payment method.

Anchor to customerRemoveTaxExemptionscustomerRemoveTaxExemptions
•CustomerRemoveTaxExemptionsPayload

Remove tax exemptions from a customer.

Anchor to customerReplaceTaxExemptionscustomerReplaceTaxExemptions
•CustomerReplaceTaxExemptionsPayload

Replace tax exemptions for a customer.

Anchor to customerRequestDataErasurecustomerRequestDataErasure
•CustomerRequestDataErasurePayload

Enqueues a request to erase customer's data. Read more here.

To cancel the data erasure request use the customerCancelDataErasure mutation.

Anchor to customerSegmentMembersQueryCreatecustomerSegmentMembersQueryCreate
•CustomerSegmentMembersQueryCreatePayload

Creates a customer segment members query.

Anchor to customerSendAccountInviteEmailcustomerSendAccountInviteEmail
•CustomerSendAccountInviteEmailPayload

Sends the customer an account invite email.

•CustomerSetPayload

Creates or updates a customer in a single mutation.

Use this mutation when syncing information from an external data source into Shopify.

This mutation can be used to create a new customer, update an existing customer by id, or upsert a customer by a unique key (email or phone).

To create a new customer omit the identifier argument. To update an existing customer, include the identifier with the id of the customer to update.

To perform an 'upsert' by unique key (email or phone) use the identifier argument to upsert a customer by a unique key (email or phone). If a customer with the specified unique key exists, it will be updated. If not, a new customer will be created with that unique key.

As of API version 2022-10, apps using protected customer data must meet the protected customer data requirements

Any list field (e.g. addresses, will be updated so that all included entries are either created or updated, and all existing entries not included will be deleted.

All other fields will be updated to the value passed. Omitted fields will not be updated.

Anchor to customerSmsMarketingConsentUpdatecustomerSmsMarketingConsentUpdate
•CustomerSmsMarketingConsentUpdatePayload

Update a customer's SMS marketing consent information.

•CustomerUpdatePayload

Update a customer's attributes. As of API version 2022-10, apps using protected customer data must meet the protected customer data requirements.

Anchor to customerUpdateDefaultAddresscustomerUpdateDefaultAddress
•CustomerUpdateDefaultAddressPayload

Updates a customer's default address.

•DataSaleOptOutPayload

Opt out a customer from data sale.

Anchor to delegateAccessTokenCreatedelegateAccessTokenCreate
•DelegateAccessTokenCreatePayload

Creates a delegate access token.

To learn more about creating delegate access tokens, refer to Delegate OAuth access tokens to subsystems.

Anchor to delegateAccessTokenDestroydelegateAccessTokenDestroy
•DelegateAccessTokenDestroyPayload

Destroys a delegate access token.

Anchor to deliveryCustomizationActivationdeliveryCustomizationActivation
•DeliveryCustomizationActivationPayload

Activates and deactivates delivery customizations.

Anchor to deliveryCustomizationCreatedeliveryCustomizationCreate
•DeliveryCustomizationCreatePayload

Creates a delivery customization.

Anchor to deliveryCustomizationDeletedeliveryCustomizationDelete
•DeliveryCustomizationDeletePayload

Creates a delivery customization.

Anchor to deliveryCustomizationUpdatedeliveryCustomizationUpdate
•DeliveryCustomizationUpdatePayload

Updates a delivery customization.

Anchor to deliveryProfileCreatedeliveryProfileCreate
•DeliveryProfileCreatePayload

Create a delivery profile.

Anchor to deliveryProfileRemovedeliveryProfileRemove
•DeliveryProfileRemovePayload

Enqueue the removal of a delivery profile.

Anchor to deliveryProfileUpdatedeliveryProfileUpdate
•DeliveryProfileUpdatePayload

Update a delivery profile.

Anchor to deliveryPromiseParticipantsUpdatedeliveryPromiseParticipantsUpdate
•DeliveryPromiseParticipantsUpdatePayload

Updates the delivery promise participants by adding or removing owners based on a branded promise handle.

Anchor to deliveryPromiseProviderUpsertdeliveryPromiseProviderUpsert
•DeliveryPromiseProviderUpsertPayload

Creates or updates a delivery promise provider. Currently restricted to select approved delivery promise partners.

Anchor to deliverySettingUpdatedeliverySettingUpdate
•DeliverySettingUpdatePayload

Set the delivery settings for a shop.

Anchor to deliveryShippingOriginAssigndeliveryShippingOriginAssign
•DeliveryShippingOriginAssignPayload

Assigns a location as the shipping origin while using legacy compatibility mode for multi-location delivery profiles.

Anchor to discountAutomaticActivatediscountAutomaticActivate
•DiscountAutomaticActivatePayload

Activates an automatic discount.

Anchor to discountAutomaticAppCreatediscountAutomaticAppCreate
•DiscountAutomaticAppCreatePayload

Creates an automatic discount that's managed by an app. Use this mutation with Shopify Functions when you need advanced, custom, or dynamic discount capabilities that aren't supported by Shopify's native discount types.

For example, use this mutation to create an automatic discount using an app's "Volume" discount type that applies a percentage off when customers purchase more than the minimum quantity of a product. For an example implementation, refer to our tutorial.


Note

To create code discounts with custom logic, use the discountCodeAppCreate mutation.


Anchor to discountAutomaticAppUpdatediscountAutomaticAppUpdate
•DiscountAutomaticAppUpdatePayload

Updates an existing automatic discount that's managed by an app using Shopify Functions. Use this mutation when you need advanced, custom, or dynamic discount capabilities that aren't supported by Shopify's native discount types.

For example, use this mutation to update a new "Volume" discount type that applies a percentage off when customers purchase more than the minimum quantity of a product. For an example implementation, refer to our tutorial.


Note

To update code discounts with custom logic, use the discountCodeAppUpdate mutation instead.


Anchor to discountAutomaticBasicCreatediscountAutomaticBasicCreate
•DiscountAutomaticBasicCreatePayload

Creates an amount off discount that's automatically applied on a cart and at checkout.


Note

To create code discounts, use the discountCodeBasicCreate mutation.


Anchor to discountAutomaticBasicUpdatediscountAutomaticBasicUpdate
•DiscountAutomaticBasicUpdatePayload

Updates an existing amount off discount that's automatically applied on a cart and at checkout.


Note

To update code discounts, use the discountCodeBasicUpdate mutation instead.


Anchor to discountAutomaticBulkDeletediscountAutomaticBulkDelete
•DiscountAutomaticBulkDeletePayload

Asynchronously delete automatic discounts in bulk if a search or saved_search_id argument is provided or if a maximum discount threshold is reached (1,000). Otherwise, deletions will occur inline. Warning: All automatic discounts will be deleted if a blank search argument is provided.

Anchor to discountAutomaticBxgyCreatediscountAutomaticBxgyCreate
•DiscountAutomaticBxgyCreatePayload

Creates a buy X get Y discount (BXGY) that's automatically applied on a cart and at checkout.


Note

To create code discounts, use the discountCodeBxgyCreate mutation.


Anchor to discountAutomaticBxgyUpdatediscountAutomaticBxgyUpdate
•DiscountAutomaticBxgyUpdatePayload

Updates an existing buy X get Y discount (BXGY) that's automatically applied on a cart and at checkout.


Note

To update code discounts, use the discountCodeBxgyUpdate mutation instead.


Anchor to discountAutomaticDeactivatediscountAutomaticDeactivate
•DiscountAutomaticDeactivatePayload

Deactivates an automatic discount.

Anchor to discountAutomaticDeletediscountAutomaticDelete
•DiscountAutomaticDeletePayload

Deletes an automatic discount.

Anchor to discountAutomaticFreeShippingCreatediscountAutomaticFreeShippingCreate
•DiscountAutomaticFreeShippingCreatePayload

Creates a free shipping discount that's automatically applied on a cart and at checkout.


Note

To create code discounts, use the discountCodeFreeShippingCreate mutation.


Anchor to discountAutomaticFreeShippingUpdatediscountAutomaticFreeShippingUpdate
•DiscountAutomaticFreeShippingUpdatePayload

Updates an existing free shipping discount that's automatically applied on a cart and at checkout.


Note

To update code discounts, use the discountCodeFreeShippingUpdate mutation instead.


Anchor to discountCodeActivatediscountCodeActivate
•DiscountCodeActivatePayload

Activates a code discount.

Anchor to discountCodeAppCreatediscountCodeAppCreate
•DiscountCodeAppCreatePayload

Creates a code discount. The discount type must be provided by an app extension that uses Shopify Functions. Functions can implement order, product, or shipping discount functions. Use this mutation with Shopify Functions when you need custom logic beyond Shopify's native discount types.

For example, use this mutation to create a code discount using an app's "Volume" discount type that applies a percentage off when customers purchase more than the minimum quantity of a product. For an example implementation, refer to our tutorial.


Note

To create automatic discounts with custom logic, use discountAutomaticAppCreate.


Anchor to discountCodeAppUpdatediscountCodeAppUpdate
•DiscountCodeAppUpdatePayload

Updates a code discount, where the discount type is provided by an app extension that uses Shopify Functions. Use this mutation when you need advanced, custom, or dynamic discount capabilities that aren't supported by Shopify's native discount types.


Note

To update automatic discounts, use discountAutomaticAppUpdate.


Anchor to discountCodeBasicCreatediscountCodeBasicCreate
•DiscountCodeBasicCreatePayload

Creates an amount off discount that's applied on a cart and at checkout when a customer enters a code. Amount off discounts can be a percentage off or a fixed amount off.


Note

To create discounts that are automatically applied on a cart and at checkout, use the discountAutomaticBasicCreate mutation.


Anchor to discountCodeBasicUpdatediscountCodeBasicUpdate
•DiscountCodeBasicUpdatePayload

Updates an amount off discount that's applied on a cart and at checkout when a customer enters a code. Amount off discounts can be a percentage off or a fixed amount off.


Note

To update discounts that are automatically applied on a cart and at checkout, use the discountAutomaticBasicUpdate mutation.


Anchor to discountCodeBulkActivatediscountCodeBulkActivate
•DiscountCodeBulkActivatePayload

Activates multiple code discounts asynchronously using one of the following:

  • A search query
  • A saved search ID
  • A list of discount code IDs

For example, you can activate discounts for all codes that match a search criteria, or activate a predefined set of discount codes.

Anchor to discountCodeBulkDeactivatediscountCodeBulkDeactivate
•DiscountCodeBulkDeactivatePayload

Deactivates multiple code-based discounts asynchronously using one of the following:

  • A search query
  • A saved search ID
  • A list of discount code IDs

For example, you can deactivate discounts for all codes that match a search criteria, or deactivate a predefined set of discount codes.

Anchor to discountCodeBulkDeletediscountCodeBulkDelete
•DiscountCodeBulkDeletePayload

Deletes multiple code-based discounts asynchronously using one of the following:

  • A search query
  • A saved search ID
  • A list of discount code IDs

For example, you can delete discounts for all codes that match a search criteria, or delete a predefined set of discount codes.

Anchor to discountCodeBxgyCreatediscountCodeBxgyCreate
•DiscountCodeBxgyCreatePayload

Creates a buy X get Y discount (BXGY) that's applied on a cart and at checkout when a customer enters a code.


Note

To create discounts that are automatically applied on a cart and at checkout, use the discountAutomaticBxgyCreate mutation.


Anchor to discountCodeBxgyUpdatediscountCodeBxgyUpdate
•DiscountCodeBxgyUpdatePayload

Updates a buy X get Y discount (BXGY) that's applied on a cart and at checkout when a customer enters a code.


Note

To update discounts that are automatically applied on a cart and at checkout, use the discountAutomaticBxgyUpdate mutation.


Anchor to discountCodeDeactivatediscountCodeDeactivate
•DiscountCodeDeactivatePayload

Deactivates a code discount.

•DiscountCodeDeletePayload

Deletes a code discount.

Anchor to discountCodeFreeShippingCreatediscountCodeFreeShippingCreate
•DiscountCodeFreeShippingCreatePayload

Creates an free shipping discount that's applied on a cart and at checkout when a customer enters a code.


Note

To create discounts that are automatically applied on a cart and at checkout, use the discountAutomaticFreeShippingCreate mutation.


Anchor to discountCodeFreeShippingUpdatediscountCodeFreeShippingUpdate
•DiscountCodeFreeShippingUpdatePayload

Updates a free shipping discount that's applied on a cart and at checkout when a customer enters a code.


Note

To update a free shipping discount that's automatically applied on a cart and at checkout, use the discountAutomaticFreeShippingUpdate mutation.


Anchor to discountCodeRedeemCodeBulkDeletediscountCodeRedeemCodeBulkDelete
•DiscountCodeRedeemCodeBulkDeletePayload

Asynchronously delete discount codes in bulk that customers can use to redeem a discount.

Anchor to discountRedeemCodeBulkAdddiscountRedeemCodeBulkAdd
•DiscountRedeemCodeBulkAddPayload

Asynchronously add discount codes in bulk that customers can use to redeem a discount. You can use the discountRedeemCodeBulkAdd mutation to automate the distribution of discount codes through emails or other marketing channels.

Anchor to disputeEvidenceUpdatedisputeEvidenceUpdate
•DisputeEvidenceUpdatePayload

Updates a dispute evidence.

Anchor to draftOrderBulkAddTagsdraftOrderBulkAddTags
•DraftOrderBulkAddTagsPayload

Adds tags to multiple draft orders.

Anchor to draftOrderBulkDeletedraftOrderBulkDelete
•DraftOrderBulkDeletePayload

Deletes multiple draft orders.

Anchor to draftOrderBulkRemoveTagsdraftOrderBulkRemoveTags
•DraftOrderBulkRemoveTagsPayload

Removes tags from multiple draft orders.

•DraftOrderCalculatePayload

Calculates the properties of a draft order. Useful for determining information such as total taxes or price without actually creating a draft order.

•DraftOrderCompletePayload

Completes a draft order and converts it into a regular order. The order appears in the merchant's orders list, and the customer can be notified about their order.

Use the draftOrderComplete mutation when a merchant is ready to finalize a draft order and create a real order in their store. The draftOrderComplete mutation also supports sales channel attribution for tracking order sources using the sourceName argument, cart validation controls for app integrations, and detailed error reporting for failed completions.

You can complete a draft order with different payment scenarios:

  • Mark the order as paid immediately.
  • Set the order as payment pending using payment terms.
  • Specify a custom payment amount.
  • Select a specific payment gateway.

Note

When completing a draft order, inventory is reserved for the items in the order. This means the items will no longer be available for other customers to purchase. Make sure to verify inventory availability before completing the draft order.


•DraftOrderCreatePayload

Creates a draft order with attributes such as customer information, line items, shipping and billing addresses, and payment terms. Draft orders are useful for merchants that need to:

  • Create new orders for sales made by phone, in person, by chat, or elsewhere. When a merchant accepts payment for a draft order, an order is created.
  • Send invoices to customers with a secure checkout link.
  • Use custom items to represent additional costs or products not in inventory.
  • Re-create orders manually from active sales channels.
  • Sell products at discount or wholesale rates.
  • Take pre-orders.

After creating a draft order, you can:


Note

When you create a draft order, you can't reserve or hold inventory for the items in the order by default. However, you can reserve inventory using the reserveInventoryUntil input.


Anchor to draftOrderCreateFromOrderdraftOrderCreateFromOrder
•DraftOrderCreateFromOrderPayload

Creates a draft order from order.

•DraftOrderDeletePayload

Deletes a draft order.

•DraftOrderDuplicatePayload

Duplicates a draft order.

Anchor to draftOrderInvoicePreviewdraftOrderInvoicePreview
•DraftOrderInvoicePreviewPayload

Previews a draft order invoice email.

Anchor to draftOrderInvoiceSenddraftOrderInvoiceSend
•DraftOrderInvoiceSendPayload

Sends an email invoice for a draft order.

•DraftOrderUpdatePayload

Updates a draft order.

If a checkout has been started for a draft order, any update to the draft will unlink the checkout. Checkouts are created but not immediately completed when opening the merchant credit card modal in the admin, and when a buyer opens the invoice URL. This is usually fine, but there is an edge case where a checkout is in progress and the draft is updated before the checkout completes. This will not interfere with the checkout and order creation, but if the link from draft to checkout is broken the draft will remain open even after the order is created.

Anchor to eventBridgeServerPixelUpdateeventBridgeServerPixelUpdate
•EventBridgeServerPixelUpdatePayload

Updates the server pixel to connect to an EventBridge endpoint. Running this mutation deletes any previous subscriptions for the server pixel.

Anchor to fileAcknowledgeUpdateFailedfileAcknowledgeUpdateFailed
•FileAcknowledgeUpdateFailedPayload

Acknowledges file update failure by resetting FAILED status to READY and clearing any media errors.

•FileCreatePayload

Creates file assets for a store from external URLs or files that were previously uploaded using the stagedUploadsCreate mutation.

Use the fileCreate mutation to add various types of media and documents to your store. These files are added to the Files page in the Shopify admin and can be referenced by other resources in your store.

The fileCreate mutation supports multiple file types:

  • Images: Product photos, variant images, and general store imagery
  • Videos: Shopify-hosted videos for product demonstrations and marketing
  • External videos: YouTube and Vimeo videos for enhanced product experiences
  • 3D models: Interactive 3D representations of products
  • Generic files: PDFs, documents, and other file types for store resources

The mutation handles duplicate filenames using configurable resolution modes that automatically append UUIDs, replace existing files, or raise errors when conflicts occur.


Note

Files are processed asynchronously. Check the fileStatus field to monitor processing completion. The maximum number of files that can be created in a single batch is 250.


After creating files, you can make subsequent updates using the following mutations:

  • fileUpdate: Update file properties such as alt text or replace file contents while preserving the same URL.
  • fileDelete: Remove files from your store when they are no longer needed.

To list all files in your store, use the files query.

Learn how to manage product media and file assets in your app.

•FileDeletePayload

Deletes file assets that were previously uploaded to your store.

Use the fileDelete mutation to permanently remove media and file assets from your store when they are no longer needed. This mutation handles the complete removal of files from both your store's file library and any associated references to products or other resources.

The fileDelete mutation supports removal of multiple file types:

  • Images: Product photos, variant images, and general store imagery
  • Videos: Shopify-hosted videos for product demonstrations and marketing content
  • External Videos: YouTube and Vimeo videos linked to your products
  • 3D models: Interactive 3D representations of products
  • Generic files: PDFs, documents, and other file types stored in your Files page

When you delete files that are referenced by products, the mutation automatically removes those references and reorders any remaining media to maintain proper positioning. Product file references are database relationships managed through a media reference system, not just links in product descriptions. The Shopify admin provides a UI to manage these relationships, and when files are deleted, the system automatically cleans up all references. Files that are currently being processed by other operations are rejected to prevent conflicts.


Caution

File deletion is permanent and can't be undone. When you delete a file that's being used in your store, it will immediately stop appearing wherever it was displayed. For example, if you delete a product image, that product will show a broken image or placeholder on your storefront and in the admin. The same applies to any other files linked from themes, blog posts, or pages. Before deleting files, you can use the files query to list and review your store's file assets.


Learn how to manage product media and file assets in your app.

•FileUpdatePayload

Updates properties, content, and metadata associated with an existing file asset that has already been uploaded to Shopify.

Use the fileUpdate mutation to modify various aspects of files already stored in your store. Files can be updated individually or in batches.

The fileUpdate mutation supports updating multiple file properties:

  • Alt text: Update accessibility descriptions for images and other media.
  • File content: Replace image or generic file content while maintaining the same URL.
  • Filename: Modify file names (extension must match the original).
  • Product references: Add or remove associations between files and products. Removing file-product associations deletes the file from the product's media gallery and clears the image from any product variants that were using it.

The mutation handles different file types with specific capabilities:

  • Images: Update preview images, original source, filename, and alt text.
  • Generic files: Update original source, filename, and alt text.
  • Videos and 3D models: Update alt text and product references.

Note

Files must be in ready state before they can be updated. The mutation includes file locking to prevent conflicts during updates. You can't simultaneously update both originalSource and previewImageSource.


After updating files, you can use related mutations for additional file management:

  • fileCreate: Create new file assets from external URLs or staged uploads.
  • fileDelete: Remove files from your store when they are no longer needed.

Learn how to manage product media and file assets in your app.

•FlowTriggerReceivePayload

Triggers any workflows that begin with the trigger specified in the request body. To learn more, refer to Create Shopify Flow triggers.

•FulfillmentCancelPayload

Cancels a fulfillment.

Anchor to fulfillmentConstraintRuleCreatefulfillmentConstraintRuleCreate
•FulfillmentConstraintRuleCreatePayload

Creates a fulfillment constraint rule and its metafield.

Anchor to fulfillmentConstraintRuleDeletefulfillmentConstraintRuleDelete
•FulfillmentConstraintRuleDeletePayload

Deletes a fulfillment constraint rule and its metafields.

Anchor to fulfillmentConstraintRuleUpdatefulfillmentConstraintRuleUpdate
•FulfillmentConstraintRuleUpdatePayload

Update a fulfillment constraint rule.

•FulfillmentCreatePayload

Creates a fulfillment for one or many fulfillment orders. The fulfillment orders are associated with the same order and are assigned to the same location.

Anchor to fulfillmentEventCreatefulfillmentEventCreate
•FulfillmentEventCreatePayload

Creates a fulfillment event for a specified fulfillment.

Anchor to fulfillmentOrderAcceptCancellationRequestfulfillmentOrderAcceptCancellationRequest
•FulfillmentOrderAcceptCancellationRequestPayload

Accept a cancellation request sent to a fulfillment service for a fulfillment order.

Anchor to fulfillmentOrderAcceptFulfillmentRequestfulfillmentOrderAcceptFulfillmentRequest
•FulfillmentOrderAcceptFulfillmentRequestPayload

Accepts a fulfillment request sent to a fulfillment service for a fulfillment order.

Anchor to fulfillmentOrderCancelfulfillmentOrderCancel
•FulfillmentOrderCancelPayload

Marks a fulfillment order as canceled.

Anchor to fulfillmentOrderClosefulfillmentOrderClose
•FulfillmentOrderClosePayload

Marks an in-progress fulfillment order as incomplete, indicating the fulfillment service is unable to ship any remaining items, and closes the fulfillment request.

This mutation can only be called for fulfillment orders that meet the following criteria:

  • Assigned to a fulfillment service location,
  • The fulfillment request has been accepted,
  • The fulfillment order status is IN_PROGRESS.

This mutation can only be called by the fulfillment service app that accepted the fulfillment request. Calling this mutation returns the control of the fulfillment order to the merchant, allowing them to move the fulfillment order line items to another location and fulfill from there, remove and refund the line items, or to request fulfillment from the same fulfillment service again.

Closing a fulfillment order is explained in the fulfillment service guide.

Anchor to fulfillmentOrderHoldfulfillmentOrderHold
•FulfillmentOrderHoldPayload

Applies a fulfillment hold on a fulfillment order.

As of the 2025-01 API version, the mutation can be successfully executed on fulfillment orders that are already on hold. To place multiple holds on a fulfillment order, apps need to supply the handle field. Each app can place up to 10 active holds per fulfillment order. If an app attempts to place more than this, the mutation will return a user error indicating that the limit has been reached. The app would need to release one of its existing holds before being able to apply a new one.

Anchor to fulfillmentOrderLineItemsPreparedForPickupfulfillmentOrderLineItemsPreparedForPickup
•FulfillmentOrderLineItemsPreparedForPickupPayload

Mark line items associated with a fulfillment order as being ready for pickup by a customer.

Sends a Ready For Pickup notification to the customer to let them know that their order is ready to be picked up.

Anchor to fulfillmentOrderMergefulfillmentOrderMerge
•FulfillmentOrderMergePayload

Merges a set or multiple sets of fulfillment orders together into one based on line item inputs and quantities.

Anchor to fulfillmentOrderMovefulfillmentOrderMove
•FulfillmentOrderMovePayload

Changes the location which is assigned to fulfill a number of unfulfilled fulfillment order line items.

Moving a fulfillment order will fail in the following circumstances:

  • The fulfillment order is closed.
  • The destination location doesn't stock the requested inventory item.
  • The API client doesn't have the correct permissions.

Line items which have already been fulfilled can't be re-assigned and will always remain assigned to the original location.

You can't change the assigned location while a fulfillment order has a request status of SUBMITTED, ACCEPTED, CANCELLATION_REQUESTED, or CANCELLATION_REJECTED. These request statuses mean that a fulfillment order is awaiting action by a fulfillment service and can't be re-assigned without first having the fulfillment service accept a cancellation request. This behavior is intended to prevent items from being fulfilled by multiple locations or fulfillment services.

How re-assigning line items affects fulfillment orders

First scenario: Re-assign all line items belonging to a fulfillment order to a new location.

In this case, the assignedLocation of the original fulfillment order will be updated to the new location.

Second scenario: Re-assign a subset of the line items belonging to a fulfillment order to a new location. You can specify a subset of line items using the fulfillmentOrderLineItems parameter (available as of the 2023-04 API version), or specify that the original fulfillment order contains line items which have already been fulfilled.

If the new location is already assigned to another active fulfillment order, on the same order, then a new fulfillment order is created. The existing fulfillment order is closed and line items are recreated in a new fulfillment order.

Anchor to fulfillmentOrderOpenfulfillmentOrderOpen
•FulfillmentOrderOpenPayload

Marks a scheduled fulfillment order as open.

Anchor to fulfillmentOrderRejectCancellationRequestfulfillmentOrderRejectCancellationRequest
•FulfillmentOrderRejectCancellationRequestPayload

Rejects a cancellation request sent to a fulfillment service for a fulfillment order.

Anchor to fulfillmentOrderRejectFulfillmentRequestfulfillmentOrderRejectFulfillmentRequest
•FulfillmentOrderRejectFulfillmentRequestPayload

Rejects a fulfillment request sent to a fulfillment service for a fulfillment order.

Anchor to fulfillmentOrderReleaseHoldfulfillmentOrderReleaseHold
•FulfillmentOrderReleaseHoldPayload

Releases the fulfillment hold on a fulfillment order.

Anchor to fulfillmentOrderReschedulefulfillmentOrderReschedule
•FulfillmentOrderReschedulePayload

Reschedules a scheduled fulfillment order.

Updates the value of the fulfillAt field on a scheduled fulfillment order.

The fulfillment order will be marked as ready for fulfillment at this date and time.

Anchor to fulfillmentOrderSplitfulfillmentOrderSplit
•FulfillmentOrderSplitPayload

Splits a fulfillment order or orders based on line item inputs and quantities.

Anchor to fulfillmentOrdersSetFulfillmentDeadlinefulfillmentOrdersSetFulfillmentDeadline
•FulfillmentOrdersSetFulfillmentDeadlinePayload

Sets the latest date and time by which the fulfillment orders need to be fulfilled.

Anchor to fulfillmentOrderSubmitCancellationRequestfulfillmentOrderSubmitCancellationRequest
•FulfillmentOrderSubmitCancellationRequestPayload

Sends a cancellation request to the fulfillment service of a fulfillment order.

Anchor to fulfillmentOrderSubmitFulfillmentRequestfulfillmentOrderSubmitFulfillmentRequest
•FulfillmentOrderSubmitFulfillmentRequestPayload

Sends a fulfillment request to the fulfillment service of a fulfillment order.

Anchor to fulfillmentServiceCreatefulfillmentServiceCreate
•FulfillmentServiceCreatePayload

Creates a fulfillment service.

Fulfillment service location

When creating a fulfillment service, a new location will be automatically created on the shop and will be associated with this fulfillment service. This location will be named after the fulfillment service and inherit the shop's address.

If you are using API version 2023-10 or later, and you need to specify custom attributes for the fulfillment service location (for example, to change its address to a country different from the shop's country), use the LocationEdit mutation after creating the fulfillment service.

Anchor to fulfillmentServiceDeletefulfillmentServiceDelete
•FulfillmentServiceDeletePayload

Deletes a fulfillment service.

Anchor to fulfillmentServiceUpdatefulfillmentServiceUpdate
•FulfillmentServiceUpdatePayload

Updates a fulfillment service.

If you are using API version 2023-10 or later, and you need to update the location managed by the fulfillment service (for example, to change the address of a fulfillment service), use the LocationEdit mutation.

Anchor to fulfillmentTrackingInfoUpdatefulfillmentTrackingInfoUpdate
•FulfillmentTrackingInfoUpdatePayload

Updates tracking information for a fulfillment.

•GiftCardCreatePayload

Create a gift card.

•GiftCardCreditPayload

Credit a gift card.

•GiftCardDeactivatePayload

Deactivate a gift card. A deactivated gift card cannot be used by a customer. A deactivated gift card cannot be re-enabled.

•GiftCardDebitPayload

Debit a gift card.

Anchor to giftCardSendNotificationToCustomergiftCardSendNotificationToCustomer
•GiftCardSendNotificationToCustomerPayload

Send notification to the customer of a gift card.

Anchor to giftCardSendNotificationToRecipientgiftCardSendNotificationToRecipient
•GiftCardSendNotificationToRecipientPayload

Send notification to the recipient of a gift card.

•GiftCardUpdatePayload

Update a gift card.

•InventoryActivatePayload

Activate an inventory item at a location.

Anchor to inventoryAdjustQuantitiesinventoryAdjustQuantities
•InventoryAdjustQuantitiesPayload

Apply changes to inventory quantities.

Anchor to inventoryBulkToggleActivationinventoryBulkToggleActivation
•InventoryBulkToggleActivationPayload

Modify the activation status of an inventory item at locations. Activating an inventory item at a particular location allows that location to stock that inventory item. Deactivating an inventory item at a location removes the inventory item's quantities and turns off the inventory item from that location.

•InventoryDeactivatePayload

Removes an inventory item's quantities from a location, and turns off inventory at the location.

•InventoryItemUpdatePayload

Updates an inventory item.

Anchor to inventoryMoveQuantitiesinventoryMoveQuantities
•InventoryMoveQuantitiesPayload

Moves inventory between inventory quantity names at a single location.

Anchor to inventorySetQuantitiesinventorySetQuantities
•InventorySetQuantitiesPayload

Set quantities of specified name using absolute values. This mutation supports compare-and-set functionality to handle concurrent requests properly. 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 compareQuantity check can lead to inaccurate inventory quantities if multiple requests are made concurrently. It is recommended to always include the compareQuantity value to ensure the accuracy of the inventory quantities and to opt out of the check using ignoreCompareQuantity only when necessary.


Anchor to inventorySetScheduledChangesinventorySetScheduledChanges
•InventorySetScheduledChangesPayload

Set up scheduled changes of inventory items.

Anchor to inventoryShipmentAddItemsinventoryShipmentAddItems
•InventoryShipmentAddItemsPayload

Adds items to an inventory shipment.

Anchor to inventoryShipmentCreateinventoryShipmentCreate
•InventoryShipmentCreatePayload

Adds a draft shipment to an inventory transfer.

Anchor to inventoryShipmentCreateInTransitinventoryShipmentCreateInTransit
•InventoryShipmentCreateInTransitPayload

Adds an in-transit shipment to an inventory transfer.

Anchor to inventoryShipmentDeleteinventoryShipmentDelete
•InventoryShipmentDeletePayload

Deletes an inventory shipment. Only draft shipments can be deleted.

Anchor to inventoryShipmentMarkInTransitinventoryShipmentMarkInTransit
•InventoryShipmentMarkInTransitPayload

Marks a draft inventory shipment as in transit.

Anchor to inventoryShipmentReceiveinventoryShipmentReceive
•InventoryShipmentReceivePayload

Receive an inventory shipment.

Anchor to inventoryShipmentRemoveItemsinventoryShipmentRemoveItems
•InventoryShipmentRemoveItemsPayload

Remove items from an inventory shipment.

Anchor to inventoryShipmentSetTrackinginventoryShipmentSetTracking
•InventoryShipmentSetTrackingPayload

Edits the tracking info on an inventory shipment.

Anchor to inventoryShipmentUpdateItemQuantitiesinventoryShipmentUpdateItemQuantities
•InventoryShipmentUpdateItemQuantitiesPayload

Updates items on an inventory shipment.

Anchor to inventoryTransferCancelinventoryTransferCancel
•InventoryTransferCancelPayload

Cancels an inventory transfer.

Anchor to inventoryTransferCreateinventoryTransferCreate
•InventoryTransferCreatePayload

Creates an inventory transfer.

Anchor to inventoryTransferCreateAsReadyToShipinventoryTransferCreateAsReadyToShip
•InventoryTransferCreateAsReadyToShipPayload

Creates an inventory transfer in ready to ship.

Anchor to inventoryTransferDeleteinventoryTransferDelete
•InventoryTransferDeletePayload

Deletes an inventory transfer.

Anchor to inventoryTransferDuplicateinventoryTransferDuplicate
•InventoryTransferDuplicatePayload

This mutation allows duplicating an existing inventory transfer. The duplicated transfer will have the same line items and quantities as the original transfer, but will be in a draft state with no shipments.

Anchor to inventoryTransferEditinventoryTransferEdit
•InventoryTransferEditPayload

Edits an inventory transfer.

Anchor to inventoryTransferMarkAsReadyToShipinventoryTransferMarkAsReadyToShip
•InventoryTransferMarkAsReadyToShipPayload

Sets an inventory transfer to ready to ship.

Anchor to inventoryTransferRemoveItemsinventoryTransferRemoveItems
•InventoryTransferRemoveItemsPayload

This mutation allows removing the shippable quantities of line items on a Transfer. It removes all quantities of the item from the transfer that are not associated with shipments.

Anchor to inventoryTransferSetItemsinventoryTransferSetItems
•InventoryTransferSetItemsPayload

This mutation allows for the setting of line items on a Transfer. Will replace the items already set, if any.

•LocationActivatePayload

Activates a location so that you can stock inventory at the location. Refer to the isActive and activatable fields on the Location object.

•LocationAddPayload

Adds a new location.

•LocationDeactivatePayload

Deactivates a location and moves inventory, pending orders, and moving transfers to a destination location.

•LocationDeletePayload

Deletes a location.

•LocationEditPayload

Edits an existing location.

As of the 2023-10 API version, apps can change the name and address of their fulfillment service locations.

Anchor to locationLocalPickupDisablelocationLocalPickupDisable
•LocationLocalPickupDisablePayload

Disables local pickup for a location.

Anchor to locationLocalPickupEnablelocationLocalPickupEnable
•LocationLocalPickupEnablePayload

Enables local pickup for a location.

•MarketCreatePayload

Creates a new market.

Anchor to marketCurrencySettingsUpdatemarketCurrencySettingsUpdate
•MarketCurrencySettingsUpdatePayload

Updates currency settings of a market.

•MarketDeletePayload

Deletes a market definition.

Anchor to marketingActivitiesDeleteAllExternalmarketingActivitiesDeleteAllExternal
•MarketingActivitiesDeleteAllExternalPayload

Deletes all external marketing activities. Deletion is performed by a background job, as it may take a bit of time to complete if a large number of activities are to be deleted. Attempting to create or modify external activities before the job has completed will result in the create/update/upsert mutation returning an error.

Anchor to marketingActivityCreatemarketingActivityCreate
•MarketingActivityCreatePayload

Create new marketing activity. Marketing activity app extensions are deprecated and will be removed in the near future.

Anchor to marketingActivityCreateExternalmarketingActivityCreateExternal
•MarketingActivityCreateExternalPayload

Creates a new external marketing activity.

Anchor to marketingActivityDeleteExternalmarketingActivityDeleteExternal
•MarketingActivityDeleteExternalPayload

Deletes an external marketing activity.

Anchor to marketingActivityUpdatemarketingActivityUpdate
•MarketingActivityUpdatePayload

Updates a marketing activity with the latest information. Marketing activity app extensions are deprecated and will be removed in the near future.

Anchor to marketingActivityUpdateExternalmarketingActivityUpdateExternal
•MarketingActivityUpdateExternalPayload

Update an external marketing activity.

Anchor to marketingActivityUpsertExternalmarketingActivityUpsertExternal
•MarketingActivityUpsertExternalPayload

Creates a new external marketing activity or updates an existing one. When optional fields are absent or null, associated information will be removed from an existing marketing activity.

Anchor to marketingEngagementCreatemarketingEngagementCreate
•MarketingEngagementCreatePayload

Creates a new marketing engagement for a marketing activity or a marketing channel.

Anchor to marketingEngagementsDeletemarketingEngagementsDelete
•MarketingEngagementsDeletePayload

Marks channel-level engagement data such that it no longer appears in reports. Activity-level data cannot be deleted directly, instead the MarketingActivity itself should be deleted to hide it from reports.

Anchor to marketLocalizationsRegistermarketLocalizationsRegister
•MarketLocalizationsRegisterPayload

Creates or updates market localizations.

Anchor to marketLocalizationsRemovemarketLocalizationsRemove
•MarketLocalizationsRemovePayload

Deletes market localizations.

•MarketUpdatePayload

Updates the properties of a market.

•MenuCreatePayload

Creates a menu.

•MenuDeletePayload

Deletes a menu.

•MenuUpdatePayload

Updates a menu.

Anchor to metafieldDefinitionCreatemetafieldDefinitionCreate
•MetafieldDefinitionCreatePayload

Creates a metafield definition. Any metafields existing under the same owner type, namespace, and key will be checked against this definition and will have their type updated accordingly. For metafields that are not valid, they will remain unchanged but any attempts to update them must align with this definition.

Anchor to metafieldDefinitionDeletemetafieldDefinitionDelete
•MetafieldDefinitionDeletePayload

Delete a metafield definition. Optionally deletes all associated metafields asynchronously when specified.

Anchor to metafieldDefinitionPinmetafieldDefinitionPin
•MetafieldDefinitionPinPayload

You can organize your metafields in your Shopify admin by pinning/unpinning metafield definitions. The order of your pinned metafield definitions determines the order in which your metafields are displayed on the corresponding pages in your Shopify admin. By default, only pinned metafields are automatically displayed.

Anchor to metafieldDefinitionUnpinmetafieldDefinitionUnpin
•MetafieldDefinitionUnpinPayload

You can organize your metafields in your Shopify admin by pinning/unpinning metafield definitions. The order of your pinned metafield definitions determines the order in which your metafields are displayed on the corresponding pages in your Shopify admin. By default, only pinned metafields are automatically displayed.

Anchor to metafieldDefinitionUpdatemetafieldDefinitionUpdate
•MetafieldDefinitionUpdatePayload

Updates a metafield definition.

•MetafieldsDeletePayload

Deletes multiple metafields in bulk.

•MetafieldsSetPayload

Sets metafield values. Metafield values will be set regardless if they were previously created or not.

Allows a maximum of 25 metafields to be set at a time.

This operation is atomic, meaning no changes are persisted if an error is encountered.

As of 2024-07, this operation supports compare-and-set functionality to better handle concurrent requests. If compareDigest is set for any metafield, the mutation will only set that metafield if the persisted metafield value matches the digest used on compareDigest. If the metafield doesn't exist yet, but you want to guarantee that the operation will run in a safe manner, set compareDigest to null. The compareDigest value can be acquired by querying the metafield object and selecting compareDigest as a field. If the compareDigest value does not match the digest for the persisted value, the mutation will return an error. You can opt out of write guarantees by not sending compareDigest in the request.

Anchor to metaobjectBulkDeletemetaobjectBulkDelete
•MetaobjectBulkDeletePayload

Asynchronously delete metaobjects and their associated metafields in bulk.

•MetaobjectCreatePayload

Creates a new metaobject.

Anchor to metaobjectDefinitionCreatemetaobjectDefinitionCreate
•MetaobjectDefinitionCreatePayload

Creates a new metaobject definition.

Anchor to metaobjectDefinitionDeletemetaobjectDefinitionDelete
•MetaobjectDefinitionDeletePayload

Deletes the specified metaobject definition. Also deletes all related metafield definitions, metaobjects, and metafields asynchronously.

Anchor to metaobjectDefinitionUpdatemetaobjectDefinitionUpdate
•MetaobjectDefinitionUpdatePayload

Updates a metaobject definition with new settings and metafield definitions.

•MetaobjectDeletePayload

Deletes the specified metaobject and its associated metafields.

•MetaobjectUpdatePayload

Updates an existing metaobject.

•MetaobjectUpsertPayload

Retrieves a metaobject by handle, then updates it with the provided input values. If no matching metaobject is found, a new metaobject is created with the provided input values.

Anchor to mobilePlatformApplicationCreatemobilePlatformApplicationCreate
•MobilePlatformApplicationCreatePayload

Create a mobile platform application.

Anchor to mobilePlatformApplicationDeletemobilePlatformApplicationDelete
•MobilePlatformApplicationDeletePayload

Delete a mobile platform application.

Anchor to mobilePlatformApplicationUpdatemobilePlatformApplicationUpdate
•MobilePlatformApplicationUpdatePayload

Update a mobile platform application.

•OrderCancelPayload

Cancels an order, with options for refunding, restocking inventory, and customer notification.


Caution

Order cancellation is irreversible. An order that has been cancelled can't be restored to its original state.


Use the orderCancel mutation to programmatically cancel orders in scenarios such as:

  • Customer-requested cancellations due to size, color, or other preference changes
  • Payment processing failures or declined transactions
  • Fraud detection and prevention
  • Insufficient inventory availability
  • Staff errors in order processing
  • Wholesale or B2B order management workflows

The orderCancel mutation provides flexible refund options including refunding to original payment methods or issuing store credit. If a payment was only authorized (temporarily held) but not yet charged, that hold will be automatically released when the order is cancelled, even if you choose not to refund other payments.

The mutation supports different cancellation reasons: customer requests, payment declines, fraud, inventory issues, staff errors, or other unspecified reasons. Each cancellation can include optional staff notes for internal documentation (notes aren't visible to customers).

An order can only be cancelled if it meets the following criteria:

  • The order hasn't already been cancelled.
  • The order has no pending payment authorizations.
  • The order has no active returns in progress.
  • The order has no outstanding fulfillments that can't be cancelled.

Orders might be assigned to locations that become deactivated after the order was created. When cancelling such orders, inventory behavior depends on payment status:

  • Paid orders: Cancellation will fail with an error if restocking is enabled, since inventory can't be returned to deactivated locations.
  • Unpaid orders: Cancellation succeeds but inventory is not restocked anywhere, even when the restock option is enabled. The committed inventory effectively becomes unavailable rather than being returned to stock at the deactivated location.

After you cancel an order, you can still make limited updates to certain fields (like notes and tags) using the orderUpdate.

For partial refunds or more complex refund scenarios on active orders, such as refunding only specific line items while keeping the rest of the order fulfilled, consider using the refundCreate mutation instead of full order cancellation.

Learn how to build apps that integrate with order management and fulfillment processes.

•OrderCapturePayload

Captures payment for an authorized transaction on an order. Use this mutation to claim the money that was previously reserved by an authorization transaction.

The orderCapture mutation can be used in the following scenarios:

  • To capture the full amount of an authorized transaction
  • To capture a partial payment by specifying an amount less than the total order amount
  • To perform multiple captures on the same order, as long as the order transaction is multi-capturable

Note

Multi-capture functionality is only available to stores on a Shopify Plus plan. For multi-currency orders, the currency field is required and should match the presentment currency from the order.


After capturing a payment, you can:

  • View the transaction details including status, amount, and processing information.
  • Track the captured amount in both shop and presentment currencies.
  • Monitor the transaction's settlement status.

Learn more about order transactions.

•OrderClosePayload

Closes an open order.

•OrderCreatePayload

Creates an order with attributes such as customer information, line items, and shipping and billing addresses.

Use the orderCreate mutation to programmatically generate orders in scenarios where orders aren't created through the standard checkout process, such as when importing orders from an external system or creating orders for wholesale customers.

The orderCreate mutation doesn't support applying multiple discounts, such as discounts on line items. Automatic discounts won't be applied unless you replicate the logic of those discounts in your custom implementation. You can apply a discount code, but only one discount code can be set for each order.


Note

If you're using the orderCreate mutation with a trial or development store, then you can create a maximum of five new orders per minute.


After you create an order, you can make subsequent edits to the order using one of the following mutations:

  • orderUpdate: Used for simple updates to an order, such as changing the order's note, tags, or customer information.
  • orderEditBegin: Used when you need to make significant updates to an order, such as adding or removing line items, changing quantities, or modifying discounts. The orderEditBegin mutation initiates an order editing session, allowing you to make multiple changes before finalizing them. Learn more about using the orderEditBegin mutation to edit existing orders.

Learn how to build apps that integrate with order management and fulfillment processes.

Anchor to orderCreateMandatePaymentorderCreateMandatePayment
•OrderCreateMandatePaymentPayload

Creates a payment for an order by mandate.

Anchor to orderCreateManualPaymentorderCreateManualPayment
•OrderCreateManualPaymentPayload

Create a manual payment for an order. You can only create a manual payment for an order if it isn't already fully paid.

•OrderCustomerRemovePayload

Removes customer from an order.

•OrderCustomerSetPayload

Sets a customer on an order.

•OrderDeletePayload

Deletes an order. For more information on which orders can be deleted, refer to Delete an order.

Anchor to orderEditAddCustomItemorderEditAddCustomItem
•OrderEditAddCustomItemPayload

Adds a custom line item to an existing order. For example, you could add a gift wrapping service as a custom line item. To learn how to edit existing orders, refer to Edit an existing order with Admin API.

Anchor to orderEditAddLineItemDiscountorderEditAddLineItemDiscount
•OrderEditAddLineItemDiscountPayload

Adds a discount to a line item on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to Edit existing orders.

Anchor to orderEditAddShippingLineorderEditAddShippingLine
•OrderEditAddShippingLinePayload

Adds a shipping line to an existing order. For more information on how to use the GraphQL Admin API to edit an existing order, refer to Edit existing orders.

•OrderEditAddVariantPayload

Adds a line item from an existing product variant. As of API version 2025-04, the orderEditAddVariant API will respect the contextual pricing of the variant.

•OrderEditBeginPayload

Starts editing an order. Mutations are operating on OrderEdit. All order edits start with orderEditBegin, have any number of orderEdit* mutations made, and end with orderEditCommit.

•OrderEditCommitPayload

Applies and saves staged changes to an order. Mutations are operating on OrderEdit. All order edits start with orderEditBegin, have any number of orderEdit* mutations made, and end with orderEditCommit.

Anchor to orderEditRemoveDiscountorderEditRemoveDiscount
•OrderEditRemoveDiscountPayload

Removes a discount on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to Edit existing orders.

Anchor to orderEditRemoveShippingLineorderEditRemoveShippingLine
•OrderEditRemoveShippingLinePayload

Removes a shipping line from an existing order. For more information on how to use the GraphQL Admin API to edit an existing order, refer to Edit existing orders.

Anchor to orderEditSetQuantityorderEditSetQuantity
•OrderEditSetQuantityPayload

Sets the quantity of a line item on an order that is being edited. For more information on how to use the GraphQL Admin API to edit an existing order, refer to Edit existing orders.

Anchor to orderEditUpdateDiscountorderEditUpdateDiscount
•OrderEditUpdateDiscountPayload

Updates a manual line level discount on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to Edit existing orders.

Anchor to orderEditUpdateShippingLineorderEditUpdateShippingLine
•OrderEditUpdateShippingLinePayload

Updates a shipping line on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to Edit existing orders.

•OrderInvoiceSendPayload

Sends an email invoice for an order.

•OrderMarkAsPaidPayload

Marks an order as paid by recording a payment transaction for the outstanding amount.

Use the orderMarkAsPaid mutation to record payments received outside the standard checkout process. The orderMarkAsPaid mutation is particularly useful in scenarios where:

  • Orders were created with manual payment methods (cash on delivery, bank deposit, money order)
  • Payments were received offline and need to be recorded in the system
  • Previously authorized payments need to be captured manually
  • Orders require manual payment reconciliation due to external payment processing

The mutation validates that the order can be marked as paid before processing. An order can be marked as paid only if it has a positive outstanding balance and its financial status isn't already PAID. The mutation will either create a new sale transaction for the full outstanding amount or capture an existing authorized transaction, depending on the order's current payment state.

After successfully marking an order as paid, the order's financial status is updated to reflect the payment, and payment events are logged for tracking and analytics purposes.

Learn more about managing orders in apps.

•OrderOpenPayload

Opens a closed order.

Anchor to orderRiskAssessmentCreateorderRiskAssessmentCreate
•OrderRiskAssessmentCreatePayload

Create a risk assessment for an order.

•OrderUpdatePayload

Updates the attributes of an order, such as the customer's email, the shipping address for the order, tags, and metafields associated with the order.

If you need to make significant updates to an order, such as adding or removing line items, changing quantities, or modifying discounts, then use the orderEditBegin mutation instead. The orderEditBegin mutation initiates an order editing session, allowing you to make multiple changes before finalizing them. Learn more about using the orderEditBegin mutation to edit existing orders.

If you need to remove a customer from an order, then use the orderCustomerRemove mutation instead.

Learn how to build apps that integrate with order management and fulfillment processes.

•PageCreatePayload

Creates a page.

•PageDeletePayload

Deletes a page.

•PageUpdatePayload

Updates a page.

Anchor to paymentCustomizationActivationpaymentCustomizationActivation
•PaymentCustomizationActivationPayload

Activates and deactivates payment customizations.

Anchor to paymentCustomizationCreatepaymentCustomizationCreate
•PaymentCustomizationCreatePayload

Creates a payment customization.

Anchor to paymentCustomizationDeletepaymentCustomizationDelete
•PaymentCustomizationDeletePayload

Deletes a payment customization.

Anchor to paymentCustomizationUpdatepaymentCustomizationUpdate
•PaymentCustomizationUpdatePayload

Updates a payment customization.

•PaymentReminderSendPayload

Sends an email payment reminder for a payment schedule.

•PaymentTermsCreatePayload

Create payment terms on an order. To create payment terms on a draft order, use a draft order mutation and include the request with the DraftOrderInput.

•PaymentTermsDeletePayload

Delete payment terms for an order. To delete payment terms on a draft order, use a draft order mutation and include the request with the DraftOrderInput.

•PaymentTermsUpdatePayload

Update payment terms on an order. To update payment terms on a draft order, use a draft order mutation and include the request with the DraftOrderInput.

•PriceListCreatePayload

Creates a price list. You can use the priceListCreate mutation to create a new price list and associate it with a catalog. This enables you to sell your products with contextual pricing.

•PriceListDeletePayload

Deletes a price list. For example, you can delete a price list so that it no longer applies for products in the associated market.

Anchor to priceListFixedPricesAddpriceListFixedPricesAdd
•PriceListFixedPricesAddPayload

Creates or updates fixed prices on a price list. You can use the priceListFixedPricesAdd mutation to set a fixed price for specific product variants. This lets you change product variant pricing on a per country basis. Any existing fixed price list prices for these variants will be overwritten.

Anchor to priceListFixedPricesByProductUpdatepriceListFixedPricesByProductUpdate
•PriceListFixedPricesByProductUpdatePayload

Updates the fixed prices for all variants for a product on a price list. You can use the priceListFixedPricesByProductUpdate mutation to set or remove a fixed price for all variants of a product associated with the price list.

Anchor to priceListFixedPricesDeletepriceListFixedPricesDelete
•PriceListFixedPricesDeletePayload

Deletes specific fixed prices from a price list using a product variant ID. You can use the priceListFixedPricesDelete mutation to delete a set of fixed prices from a price list. After deleting the set of fixed prices from the price list, the price of each product variant reverts to the original price that was determined by the price list adjustment.

Anchor to priceListFixedPricesUpdatepriceListFixedPricesUpdate
•PriceListFixedPricesUpdatePayload

Updates fixed prices on a price list. You can use the priceListFixedPricesUpdate mutation to set a fixed price for specific product variants or to delete prices for variants associated with the price list.

•PriceListUpdatePayload

Updates a price list. If you modify the currency, then any fixed prices set on the price list will be deleted.

Anchor to privacyFeaturesDisableprivacyFeaturesDisable
•PrivacyFeaturesDisablePayload

Disable a shop's privacy features.

•ProductBundleCreatePayload

Creates a new componentized product.

•ProductBundleUpdatePayload

Updates a componentized product.

•ProductCreatePayload

Creates a product with attributes such as title, description, vendor, and media.

The productCreate mutation helps you create many products at once, avoiding the tedious or time-consuming process of adding them one by one in the Shopify admin. Common examples include creating products for a new collection, launching a new product line, or adding seasonal products.

You can define product options and values, allowing you to create products with different variations like sizes or colors. You can also associate media files to your products, including images and videos.

The productCreate mutation only supports creating a product with its initial product variant. To create multiple product variants for a single product and manage prices, use the productVariantsBulkCreate mutation.


Note

The productCreate mutation has a throttle that takes effect when a store has 50,000 product variants. After this threshold is reached, no more than 1,000 new product variants can be created per day.


After you create a product, you can make subsequent edits to the product using one of the following mutations:

  • publishablePublish: Used to publish the product and make it available to customers. The productCreate mutation creates products in an unpublished state by default, so you must perform a separate operation to publish the product.
  • productUpdate: Used to update a single product, such as changing the product's title, description, vendor, or associated media.
  • productSet: Used to perform multiple operations on products, such as creating or modifying product options and variants.

Learn more about the product model and adding product data.

•ProductDeletePayload

Permanently deletes a product and all its associated data, including variants, media, publications, and inventory items.

Use the productDelete mutation to programmatically remove products from your store when they need to be permanently deleted from your catalog, such as when removing discontinued items, cleaning up test data, or synchronizing with external inventory management systems.

The productDelete mutation removes the product from all associated collections, and removes all associated data for the product, including:

  • All product variants and their inventory items
  • Product media (images, videos) that are not referenced by other products
  • Product options and option values
  • Product publications across all sales channels
  • Product tags and metadata associations

The productDelete mutation also has the following effects on existing orders and transactions:

  • Draft orders: Existing draft orders that reference this product will retain the product information as stored data, but the product reference will be removed. Draft orders can still be completed with the stored product details.
  • Completed orders and refunds: Previously completed orders that included this product aren't affected. The product information in completed orders is preserved for record-keeping, and existing refunds for this product remain valid and processable.

Caution

Product deletion is irreversible. After a product is deleted, it can't be recovered. Consider archiving or unpublishing products instead if you might need to restore them later.


If you need to delete a large product, such as one that has many variants that are active at several locations, you might encounter timeout errors. To avoid these timeout errors, you can set the synchronous parameter to false to run the deletion asynchronously, which returns a ProductDeleteOperation that you can monitor for completion status.

If you need more granular control over product cleanup, consider using these alternative mutations:

Learn more about the product model.

•ProductDuplicatePayload

Duplicates a product.

If you need to duplicate a large product, such as one that has many variants that are active at several locations, you might encounter timeout errors.

To avoid these timeout errors, you can instead duplicate the product asynchronously.

In API version 2024-10 and higher, include synchronous: false argument in this mutation to perform the duplication asynchronously.

In API version 2024-07 and lower, use the asynchronous ProductDuplicateAsyncV2.

Metafield values are not duplicated if the unique values capability is enabled.

•ProductFeedCreatePayload

Creates a product feed for a specific publication.

•ProductFeedDeletePayload

Deletes a product feed for a specific publication.

•ProductFullSyncPayload

Runs the full product sync for a given shop.

Anchor to productJoinSellingPlanGroupsproductJoinSellingPlanGroups
•ProductJoinSellingPlanGroupsPayload

Adds multiple selling plan groups to a product.

Anchor to productLeaveSellingPlanGroupsproductLeaveSellingPlanGroups
•ProductLeaveSellingPlanGroupsPayload

Removes multiple groups from a product.

Anchor to productOptionsCreateproductOptionsCreate
•ProductOptionsCreatePayload

Creates one or more options on a product, such as size, color, or material. Each option includes a name, position, and a list of values. The combination of a product option and value creates a product variant.

Use the productOptionsCreate mutation for the following use cases:

  • Add product choices: Add a new option, like "Size" (Small, Medium, Large) or "Color" (Red, Blue, Green), to an existing product so customers can select their preferred variant.
  • Enable personalization features: Add options such as "Engraving text" to let customers customize their purchase.
  • Offer seasonal or limited edition products: Add a new value (for example, "Holiday red") to an existing option to support limited-time or seasonal variants.
  • Integrate with apps that manage product configuration: Allow third-party apps to add options, like "Bundle size", when customers select or customize product bundles.
  • Link options to metafields: Associate a product option with a custom metafield, like "Fabric code", for richer integrations with other systems or apps.

Note

The productOptionsCreate mutation enforces strict data integrity for product options and variants. All option positions must be sequential, and every option should be used by at least one variant. If you use the CREATE variant strategy, consider the maximum allowed number of variants for each product (100 by default, and 2,048 if you've enabled the Extended Variants developer preview).


After you create product options, you can further manage a product's configuration using related mutations:

Learn more about the product model and adding product data.

Anchor to productOptionsDeleteproductOptionsDelete
•ProductOptionsDeletePayload

Deletes one or more options from a product. Product options define the choices available for a product, such as size, color, or material.


Caution

Removing an option can affect a product's variants and their configuration. Deleting an option might also delete associated option values and, depending on the chosen strategy, might affect variants.


Use the productOptionsDelete mutation for the following use cases:

  • Simplify product configuration: Remove obsolete or unnecessary options (for example, discontinue "Material" if all variants are now the same material).
  • Clean up after seasonal or limited-time offerings: Delete options that are no longer relevant (for example, "Holiday edition").
  • Automate catalog management: Enable apps or integrations to programmatically remove options as product data changes.

Note

The productOptionsDelete mutation enforces strict data integrity for product options and variants. All option positions must remain sequential, and every remaining option must be used by at least one variant.


After you delete a product option, you can further manage a product's configuration using related mutations:

Learn more about the product model and adding product data.

Anchor to productOptionsReorderproductOptionsReorder
•ProductOptionsReorderPayload

Reorders the options and option values on a product, updating the order in which product variants are presented to customers.

The productOptionsReorder mutation accepts a list of product options, each identified by id or name, and an optional list of values (also by id or name) specifying the new order. The order of options in the mutation's input determines their new positions (for example, the first option becomes option1). The order of values within each option determines their new positions. The mutation recalculates the order of variants based on the new option and value order.

Suppose a product has the following variants:

  1. "Red / Small"
  2. "Green / Medium"
  3. "Blue / Small"

You reorder options and values:

options: [
{ name: "Size", values: [{ name: "Small" }, { name: "Medium" }] },
{ name: "Color", values: [{ name: "Green" }, { name: "Red" }, { name: "Blue" }] }
]

The resulting variant order will be:

  1. "Small / Green"
  2. "Small / Red"
  3. "Small / Blue"
  4. "Medium / Green"

Use the productOptionsReorder mutation for the following use cases:

  • Change the order of product options: For example, display "Color" before "Size" in a store.
  • Reorder option values within an option: For example, show "Red" before "Blue" in a color picker.
  • Control the order of product variants: The order of options and their values determines the sequence in which variants are listed and selected.
  • Highlight best-selling options: Present the most popular or relevant options and values first.
  • Promote merchandising strategies: Highlight seasonal colors, limited editions, or featured sizes.

Note

The productOptionsReorder mutation enforces strict data integrity for product options and variants. All option positions must be sequential, and every option should be used by at least one variant.


After you reorder product options, you can further manage a product's configuration using related mutations:

Learn more about the product model and managing product data.

•ProductOptionUpdatePayload

Updates an option on a product, such as size, color, or material. Each option includes a name, position, and a list of values. The combination of a product option and value creates a product variant.

Use the productOptionUpdate mutation for the following use cases:

  • Update product choices: Modify an existing option, like "Size" (Small, Medium, Large) or "Color" (Red, Blue, Green), so customers can select their preferred variant.
  • Enable personalization features: Update an option (for example, "Engraving text") to let customers customize their purchase.
  • Offer seasonal or limited edition products: Update a value (for example, "Holiday red") on an existing option to support limited-time or seasonal variants.
  • Integrate with apps that manage product configuration: Allow third-party apps to update options, like "Bundle size", when customers select or customize product bundles.
  • Link options to metafields: Associate a product option with a custom metafield, like "Fabric code", for richer integrations with other systems or apps.

Note

The productOptionUpdate mutation enforces strict data integrity for product options and variants. All option positions must be sequential, and every option should be used by at least one variant.


After you update a product option, you can further manage a product's configuration using related mutations:

Learn more about the product model and adding product data.

•ProductReorderMediaPayload

Asynchronously reorders the media attached to a product.

•ProductSetPayload

Performs multiple operations to create or update products in a single request.

Use the productSet mutation to sync information from an external data source into Shopify, manage large product catalogs, and perform batch updates. The mutation is helpful for bulk product management, including price adjustments, inventory updates, and product lifecycle management.

The behavior of productSet depends on the type of field it's modifying:

  • For list fields: Creates new entries, updates existing entries, and deletes existing entries that aren't included in the mutation's input. Common examples of list fields include collections, metafields, and variants.

  • For all other field types: Updates only the included fields. Any omitted fields will remain unchanged.


Note

By default, stores have a limit of 100 product variants for each product. You can create a development store and enable the Extended Variants developer preview to create or update a maximum of 2,048 product variants in a single operation.


You can run productSet in one of the following modes:

  • Synchronously: Returns the updated product in the response.
  • Asynchronously: Returns a ProductSetOperation object. Use the productOperation query to check the status of the operation and retrieve details of the updated product and its product variants.

If you need to only manage product variants, then use one of the following mutations:

If you need to only manage product options, then use one of the following mutations:

Learn more about syncing product data from an external source.

•ProductUpdatePayload

Updates a product with attributes such as title, description, vendor, and media.

The productUpdate mutation helps you modify many products at once, avoiding the tedious or time-consuming process of updating them one by one in the Shopify admin. Common examples including updating product details like status or tags.

The productUpdate mutation doesn't support updating product variants. To update multiple product variants for a single product and manage prices, use the productVariantsBulkUpdate mutation.


Note

The productUpdate mutation has a throttle that takes effect when a store has 50,000 product variants. After this threshold is reached, no more than 1,000 new product variants can be updated per day.


After updating a product, you can make additional changes using one of the following mutations:

  • productSet: Used to perform multiple operations on products, such as creating or modifying product options and variants.
  • publishablePublish: Used to publish the product and make it available to customers, if the product is currently unpublished.

Learn more about the product model and adding product data.

Anchor to productVariantAppendMediaproductVariantAppendMedia
•ProductVariantAppendMediaPayload

Appends media from a product to variants of the product.

Anchor to productVariantDetachMediaproductVariantDetachMedia
•ProductVariantDetachMediaPayload

Detaches media from product variants.

Anchor to productVariantJoinSellingPlanGroupsproductVariantJoinSellingPlanGroups
•ProductVariantJoinSellingPlanGroupsPayload

Adds multiple selling plan groups to a product variant.

Anchor to productVariantLeaveSellingPlanGroupsproductVariantLeaveSellingPlanGroups
•ProductVariantLeaveSellingPlanGroupsPayload

Remove multiple groups from a product variant.

Anchor to productVariantRelationshipBulkUpdateproductVariantRelationshipBulkUpdate
•ProductVariantRelationshipBulkUpdatePayload

Creates new bundles, updates existing bundles, and removes bundle components for one or multiple bundles.

Anchor to productVariantsBulkCreateproductVariantsBulkCreate
•ProductVariantsBulkCreatePayload

Creates multiple product variants for a single product in one operation. You can run this mutation directly or as part of a bulk operation for large-scale catalog updates.

Use the productVariantsBulkCreate mutation to efficiently add new product variants—such as different sizes, colors, or materials—to an existing product. The mutation is helpful if you need to add product variants in bulk, such as importing from an external system.

The mutation supports:

  • Creating variants with custom options and values
  • Associating media (for example, images, videos, and 3D models) with the product or its variants
  • Handling complex product configurations

Note

By default, stores have a limit of 100 product variants for each product. You can create a development store and enable the Extended Variants developer preview to create a maximum of 2,048 product variants in a single operation.


After creating variants, you can make additional changes using one of the following mutations:

  • productVariantsBulkUpdate: Updates multiple product variants for a single product in one operation.
  • productSet: Used to perform multiple operations on products, such as creating or modifying product options and variants.

You can also specifically manage product options through related mutations:

Learn more about the product model and adding product data.

Anchor to productVariantsBulkDeleteproductVariantsBulkDelete
•ProductVariantsBulkDeletePayload

Deletes multiple variants in a single product. This mutation can be called directly or via the bulkOperation.

Anchor to productVariantsBulkReorderproductVariantsBulkReorder
•ProductVariantsBulkReorderPayload

Reorders multiple variants in a single product. This mutation can be called directly or via the bulkOperation.

Anchor to productVariantsBulkUpdateproductVariantsBulkUpdate
•ProductVariantsBulkUpdatePayload

Updates multiple product variants for a single product in one operation. You can run this mutation directly or as part of a bulk operation for large-scale catalog updates.

Use the productVariantsBulkUpdate mutation to efficiently modify product variants—such as different sizes, colors, or materials—associated with an existing product. The mutation is helpful if you need to update a product's variants in bulk, such as importing from an external system.

The mutation supports:

  • Updating variants with custom options and values
  • Associating media (for example, images, videos, and 3D models) with the product or its variants
  • Handling complex product configurations

Note

By default, stores have a limit of 100 product variants for each product. You can create a development store and enable the Extended Variants developer preview to update a maximum of 2,048 product variants in a single operation.


After creating variants, you can make additional changes using the productSet mutation, which is used to perform multiple operations on products, such as creating or modifying product options and variants.

You can also specifically manage product options through related mutations:

Learn more about the product model and adding product data.

•PublicationCreatePayload

Creates a publication.

•PublicationDeletePayload

Deletes a publication.

•PublicationUpdatePayload

Updates a publication.

•PublishablePublishPayload

Publishes a resource to a channel. If the resource is a product, then it's visible in the channel only if the product status is active. Products that are sold exclusively on subscription (requiresSellingPlan: true) can be published only on online stores.

Anchor to publishablePublishToCurrentChannelpublishablePublishToCurrentChannel
•PublishablePublishToCurrentChannelPayload

Publishes a resource to current channel. If the resource is a product, then it's visible in the channel only if the product status is active. Products that are sold exclusively on subscription (requiresSellingPlan: true) can be published only on online stores.

Anchor to publishableUnpublishpublishableUnpublish
•PublishableUnpublishPayload

Unpublishes a resource from a channel. If the resource is a product, then it's visible in the channel only if the product status is active.

Anchor to publishableUnpublishToCurrentChannelpublishableUnpublishToCurrentChannel
•PublishableUnpublishToCurrentChannelPayload

Unpublishes a resource from the current channel. If the resource is a product, then it's visible in the channel only if the product status is active.

Anchor to pubSubServerPixelUpdatepubSubServerPixelUpdate
•PubSubServerPixelUpdatePayload

Updates the server pixel to connect to a Google PubSub endpoint. Running this mutation deletes any previous subscriptions for the server pixel.

Anchor to quantityPricingByVariantUpdatequantityPricingByVariantUpdate
•QuantityPricingByVariantUpdatePayload

Updates quantity pricing on a price list. You can use the quantityPricingByVariantUpdate mutation to set fixed prices, quantity rules, and quantity price breaks. This mutation does not allow partial successes. If any of the requested resources fail to update, none of the requested resources will be updated. Delete operations are executed before create operations.

•QuantityRulesAddPayload

Creates or updates existing quantity rules on a price list. You can use the quantityRulesAdd mutation to set order level minimums, maximumums and increments for specific product variants.

•QuantityRulesDeletePayload

Deletes specific quantity rules from a price list using a product variant ID. You can use the quantityRulesDelete mutation to delete a set of quantity rules from a price list.

•RefundCreatePayload

Creates a refund for an order, allowing you to process returns and issue payments back to customers.

Use the refundCreate mutation to programmatically process refunds in scenarios where you need to return money to customers, such as when handling returns, processing chargebacks, or correcting order errors.

The refundCreate mutation supports various refund scenarios:

  • Refunding line items with optional restocking
  • Refunding shipping costs
  • Refunding duties and import taxes
  • Refunding additional fees
  • Processing refunds through different payment methods
  • Issuing store credit refunds (when enabled)

You can create both full and partial refunds, and optionally allow over-refunding in specific cases.

After creating a refund, you can track its status and details through the order's refunds field. The refund is associated with the order and can be used for reporting and reconciliation purposes.

Learn more about managing returns and refunding duties.


Note

The refunding behavior of the refundCreate mutation is similar to the refundReturn mutation. The key difference is that the refundCreate mutation lets you to specify restocking behavior for line items, whereas the returnRefund mutation focuses solely on handling the financial refund without any restocking input.


•RemoveFromReturnPayload

Removes return and/or exchange lines from a return.

Anchor to returnApproveRequestreturnApproveRequest
•ReturnApproveRequestPayload

Approves a customer's return request. If this mutation is successful, then the Return.status field of the approved return is set to OPEN.

•ReturnCancelPayload

Cancels a return and restores the items back to being fulfilled. Canceling a return is only available before any work has been done on the return (such as an inspection or refund).

•ReturnClosePayload

Indicates a return is complete, either when a refund has been made and items restocked, or simply when it has been marked as returned in the system.

•ReturnCreatePayload

Creates a return from an existing order that has at least one fulfilled line item that hasn't yet been refunded. If you create a return on an archived order, then the order is automatically unarchived.

Use the returnCreate mutation when your workflow involves approving or declining requested returns outside of the Shopify platform.

The returnCreate mutation performs the following actions:

  • Creates a return in the OPEN state, and assumes that the return request from the customer has already been approved
  • Creates a reverse fulfillment order, and enables you to create a reverse delivery for the reverse fulfillment order
  • Creates a sales agreement with a RETURN reason, which links to all sales created for the return or exchange
  • Generates sales records that reverse the sales records for the items being returned
  • Generates sales records for any exchange line items

After you've created a return, use the return query to retrieve the return by its ID. Learn more about providing a return management workflow for merchants.

Anchor to returnDeclineRequestreturnDeclineRequest
•ReturnDeclineRequestPayload

Declines a return on an order. When a return is declined, each ReturnLineItem.fulfillmentLineItem can be associated to a new return. Use the ReturnCreate or ReturnRequest mutation to initiate a new return.

•ReturnProcessPayload

Process a return.

•ReturnReopenPayload

Reopens a closed return.

•ReturnRequestPayload

A customer's return request that hasn't been approved or declined. This mutation sets the value of the Return.status field to REQUESTED. To create a return that has the Return.status field set to OPEN, use the returnCreate mutation.

Anchor to reverseDeliveryCreateWithShippingreverseDeliveryCreateWithShipping
•ReverseDeliveryCreateWithShippingPayload

Creates a new reverse delivery with associated external shipping information.

Anchor to reverseDeliveryShippingUpdatereverseDeliveryShippingUpdate
•ReverseDeliveryShippingUpdatePayload

Updates a reverse delivery with associated external shipping information.

Anchor to reverseFulfillmentOrderDisposereverseFulfillmentOrderDispose
•ReverseFulfillmentOrderDisposePayload

Disposes reverse fulfillment order line items.

•SavedSearchCreatePayload

Creates a saved search.

•SavedSearchDeletePayload

Delete a saved search.

•SavedSearchUpdatePayload

Updates a saved search.

•ScriptTagCreatePayload
Theme app extensions

If your app integrates with a Shopify theme and you plan to submit it to the Shopify App Store, you must use theme app extensions instead of Script tags. Script tags can only be used with vintage themes. Learn more.

Script tag deprecation

Script tags will be sunset for the Order status page on August 28, 2025. Upgrade to Checkout Extensibility before this date. Shopify Scripts will continue to work alongside Checkout Extensibility until August 28, 2025.

Creates a new script tag.

•ScriptTagDeletePayload
Theme app extensions

If your app integrates with a Shopify theme and you plan to submit it to the Shopify App Store, you must use theme app extensions instead of Script tags. Script tags can only be used with vintage themes. Learn more.

Script tag deprecation

Script tags will be sunset for the Order status page on August 28, 2025. Upgrade to Checkout Extensibility before this date. Shopify Scripts will continue to work alongside Checkout Extensibility until August 28, 2025.

Deletes a script tag.

•ScriptTagUpdatePayload
Theme app extensions

If your app integrates with a Shopify theme and you plan to submit it to the Shopify App Store, you must use theme app extensions instead of Script tags. Script tags can only be used with vintage themes. Learn more.

Script tag deprecation

Script tags will be sunset for the Order status page on August 28, 2025. Upgrade to Checkout Extensibility before this date. Shopify Scripts will continue to work alongside Checkout Extensibility until August 28, 2025.

Updates a script tag.

•SegmentCreatePayload

Creates a segment.

•SegmentDeletePayload

Deletes a segment.

•SegmentUpdatePayload

Updates a segment.

Anchor to sellingPlanGroupAddProductssellingPlanGroupAddProducts
•SellingPlanGroupAddProductsPayload

Adds multiple products to a selling plan group.

Anchor to sellingPlanGroupAddProductVariantssellingPlanGroupAddProductVariants
•SellingPlanGroupAddProductVariantsPayload

Adds multiple product variants to a selling plan group.

Anchor to sellingPlanGroupCreatesellingPlanGroupCreate
•SellingPlanGroupCreatePayload

Creates a Selling Plan Group.

Anchor to sellingPlanGroupDeletesellingPlanGroupDelete
•SellingPlanGroupDeletePayload

Delete a Selling Plan Group. This does not affect subscription contracts.

Anchor to sellingPlanGroupRemoveProductssellingPlanGroupRemoveProducts
•SellingPlanGroupRemoveProductsPayload

Removes multiple products from a selling plan group.

Anchor to sellingPlanGroupRemoveProductVariantssellingPlanGroupRemoveProductVariants
•SellingPlanGroupRemoveProductVariantsPayload

Removes multiple product variants from a selling plan group.

Anchor to sellingPlanGroupUpdatesellingPlanGroupUpdate
•SellingPlanGroupUpdatePayload

Update a Selling Plan Group.

•ServerPixelCreatePayload

Creates a new unconfigured server pixel. A single server pixel can exist for an app and shop combination. If you call this mutation when a server pixel already exists, then an error will return.

•ServerPixelDeletePayload

Deletes the Server Pixel associated with the current app & shop.

Anchor to shippingPackageDeleteshippingPackageDelete
•ShippingPackageDeletePayload

Deletes a shipping package.

Anchor to shippingPackageMakeDefaultshippingPackageMakeDefault
•ShippingPackageMakeDefaultPayload

Set a shipping package as the default. The default shipping package is the one used to calculate shipping costs on checkout.

Anchor to shippingPackageUpdateshippingPackageUpdate
•ShippingPackageUpdatePayload

Updates a shipping package.

Anchor to shopifyPaymentsPayoutAlternateCurrencyCreateshopifyPaymentsPayoutAlternateCurrencyCreate
•ShopifyPaymentsPayoutAlternateCurrencyCreatePayload

Creates an alternate currency payout for a Shopify Payments account.

•ShopLocaleDisablePayload

Deletes a locale for a shop. This also deletes all translations of this locale.

•ShopLocaleEnablePayload

Adds a locale for a shop. The newly added locale is in the unpublished state.

•ShopLocaleUpdatePayload

Updates a locale for a shop.

•ShopPolicyUpdatePayload

Updates a shop policy.

Anchor to shopResourceFeedbackCreateshopResourceFeedbackCreate
•ShopResourceFeedbackCreatePayload

The ResourceFeedback object lets your app report the status of shops and their resources. For example, if your app is a marketplace channel, then you can use resource feedback to alert merchants that they need to connect their marketplace account by signing in.

Resource feedback notifications are displayed to the merchant on the home screen of their Shopify admin, and in the product details view for any products that are published to your app.

This resource should be used only in cases where you're describing steps that a merchant is required to complete. If your app offers optional or promotional set-up steps, or if it makes recommendations, then don't use resource feedback to let merchants know about them.

Sending feedback on a shop

You can send resource feedback on a shop to let the merchant know what steps they need to take to make sure that your app is set up correctly. Feedback can have one of two states: requires_action or success. You need to send a requires_action feedback request for each step that the merchant is required to complete.

If there are multiple set-up steps that require merchant action, then send feedback with a state of requires_action as merchants complete prior steps. And to remove the feedback message from the Shopify admin, send a success feedback request.

Important

Sending feedback replaces previously sent feedback for the shop. Send a new shopResourceFeedbackCreate mutation to push the latest state of a shop or its resources to Shopify.

•StagedUploadsCreatePayload

Creates staged upload targets for file uploads such as images, videos, and 3D models.

Use the stagedUploadsCreate mutation instead of direct file creation mutations when:

  • Uploading large files: Files over a few MB benefit from staged uploads for better reliability
  • Uploading media files: Videos, 3D models, and high-resolution images
  • Bulk importing: CSV files, product catalogs, or other bulk data
  • Using external file sources: When files are stored remotely and need to be transferred to Shopify

For small files or simple use cases, you can use fileCreate directly by providing the file content inline.

The stagedUploadsCreate mutation is the first step in Shopify's secure two-step upload process:

Step 1: Create staged upload targets (this mutation)

  • Generate secure, temporary upload URLs for your files.
  • Receive authentication parameters for the upload.

Step 2: Upload files and create assets

  • Upload your files directly to the provided URLs using the authentication parameters.
  • Use the returned resourceUrl as the originalSource in subsequent mutations like fileCreate.

This approach provides better performance for large files, handles network interruptions gracefully, and ensures secure file transfers to Shopify's storage infrastructure.


Note

File size is required when uploading VIDEO or MODEL_3D resources.


After creating staged upload targets, complete the process by:

  1. Uploading files: Send your files to the returned url using the provided parameters for authentication
  2. Creating file assets: Use the resourceUrl as the originalSource in mutations such as:
  • fileCreate: Creates file assets from staged uploads
  • productUpdate: Updates products with new media from staged uploads

Learn more about uploading media to Shopify.

Anchor to standardMetafieldDefinitionEnablestandardMetafieldDefinitionEnable
•StandardMetafieldDefinitionEnablePayload

Activates the specified standard metafield definition from its template.

Refer to the list of standard metafield definition templates.

Anchor to standardMetaobjectDefinitionEnablestandardMetaobjectDefinitionEnable
•StandardMetaobjectDefinitionEnablePayload

Enables the specified standard metaobject definition from its template.

Anchor to storeCreditAccountCreditstoreCreditAccountCredit
•StoreCreditAccountCreditPayload

Creates a credit transaction that increases the store credit account balance by the given amount. This operation will create an account if one does not already exist. A store credit account owner can hold multiple accounts each with a different currency. Use the most appropriate currency for the given store credit account owner.

Anchor to storeCreditAccountDebitstoreCreditAccountDebit
•StoreCreditAccountDebitPayload

Creates a debit transaction that decreases the store credit account balance by the given amount.

Anchor to storefrontAccessTokenCreatestorefrontAccessTokenCreate
•StorefrontAccessTokenCreatePayload

Creates a storefront access token for use with the Storefront API.

An app can have a maximum of 100 active storefront access tokens for each shop.

Get started with the Storefront API.

Anchor to storefrontAccessTokenDeletestorefrontAccessTokenDelete
•StorefrontAccessTokenDeletePayload

Deletes a storefront access token.

Anchor to subscriptionBillingAttemptCreatesubscriptionBillingAttemptCreate
•SubscriptionBillingAttemptCreatePayload

Creates a new subscription billing attempt. For more information, refer to Create a subscription contract.

Anchor to subscriptionBillingCycleBulkChargesubscriptionBillingCycleBulkCharge
•SubscriptionBillingCycleBulkChargePayload

Asynchronously queries and charges all subscription billing cycles whose billingAttemptExpectedDate values fall within a specified date range and meet additional filtering criteria. The results of this action can be retrieved using the subscriptionBillingCycleBulkResults query.

Anchor to subscriptionBillingCycleBulkSearchsubscriptionBillingCycleBulkSearch
•SubscriptionBillingCycleBulkSearchPayload

Asynchronously queries all subscription billing cycles whose billingAttemptExpectedDate values fall within a specified date range and meet additional filtering criteria. The results of this action can be retrieved using the subscriptionBillingCycleBulkResults query.

Anchor to subscriptionBillingCycleChargesubscriptionBillingCycleCharge
•SubscriptionBillingCycleChargePayload

Creates a new subscription billing attempt for a specified billing cycle. This is the alternative mutation for subscriptionBillingAttemptCreate. For more information, refer to Create a subscription contract.

Anchor to subscriptionBillingCycleContractDraftCommitsubscriptionBillingCycleContractDraftCommit
•SubscriptionBillingCycleContractDraftCommitPayload

Commits the updates of a Subscription Billing Cycle Contract draft.

Anchor to subscriptionBillingCycleContractDraftConcatenatesubscriptionBillingCycleContractDraftConcatenate
•SubscriptionBillingCycleContractDraftConcatenatePayload

Concatenates a contract to a Subscription Draft.

Anchor to subscriptionBillingCycleContractEditsubscriptionBillingCycleContractEdit
•SubscriptionBillingCycleContractEditPayload

Edit the contents of a subscription contract for the specified billing cycle.

Anchor to subscriptionBillingCycleEditDeletesubscriptionBillingCycleEditDelete
•SubscriptionBillingCycleEditDeletePayload

Delete the schedule and contract edits of the selected subscription billing cycle.

Anchor to subscriptionBillingCycleEditsDeletesubscriptionBillingCycleEditsDelete
•SubscriptionBillingCycleEditsDeletePayload

Delete the current and future schedule and contract edits of a list of subscription billing cycles.

Anchor to subscriptionBillingCycleScheduleEditsubscriptionBillingCycleScheduleEdit
•SubscriptionBillingCycleScheduleEditPayload

Modify the schedule of a specific billing cycle.

Anchor to subscriptionBillingCycleSkipsubscriptionBillingCycleSkip
•SubscriptionBillingCycleSkipPayload

Skips a Subscription Billing Cycle.

Anchor to subscriptionBillingCycleUnskipsubscriptionBillingCycleUnskip
•SubscriptionBillingCycleUnskipPayload

Unskips a Subscription Billing Cycle.

Anchor to subscriptionContractActivatesubscriptionContractActivate
•SubscriptionContractActivatePayload

Activates a Subscription Contract. Contract status must be either active, paused, or failed.

Anchor to subscriptionContractAtomicCreatesubscriptionContractAtomicCreate
•SubscriptionContractAtomicCreatePayload

Creates a Subscription Contract.

Anchor to subscriptionContractCancelsubscriptionContractCancel
•SubscriptionContractCancelPayload

Cancels a Subscription Contract.

Anchor to subscriptionContractCreatesubscriptionContractCreate
•SubscriptionContractCreatePayload

Creates a Subscription Contract Draft. You can submit all the desired information for the draft using Subscription Draft Input object. You can also update the draft using the Subscription Contract Update mutation. The draft is not saved until you call the Subscription Draft Commit mutation.

Anchor to subscriptionContractExpiresubscriptionContractExpire
•SubscriptionContractExpirePayload

Expires a Subscription Contract.

Anchor to subscriptionContractFailsubscriptionContractFail
•SubscriptionContractFailPayload

Fails a Subscription Contract.

Anchor to subscriptionContractPausesubscriptionContractPause
•SubscriptionContractPausePayload

Pauses a Subscription Contract.

Anchor to subscriptionContractProductChangesubscriptionContractProductChange
•SubscriptionContractProductChangePayload

Allows for the easy change of a Product in a Contract or a Product price change.

Anchor to subscriptionContractSetNextBillingDatesubscriptionContractSetNextBillingDate
•SubscriptionContractSetNextBillingDatePayload

Sets the next billing date of a Subscription Contract. This field is managed by the apps. Alternatively you can utilize our Billing Cycles APIs, which provide auto-computed billing dates and additional functionalities.

Anchor to subscriptionContractUpdatesubscriptionContractUpdate
•SubscriptionContractUpdatePayload

The subscriptionContractUpdate mutation allows you to create a draft of an existing subscription contract. This draft can be reviewed and modified as needed. Once the draft is committed with subscriptionDraftCommit, the changes are applied to the original subscription contract.

Anchor to subscriptionDraftCommitsubscriptionDraftCommit
•SubscriptionDraftCommitPayload

Commits the updates of a Subscription Contract draft.

Anchor to subscriptionDraftDiscountAddsubscriptionDraftDiscountAdd
•SubscriptionDraftDiscountAddPayload

Adds a subscription discount to a subscription draft.

Anchor to subscriptionDraftDiscountCodeApplysubscriptionDraftDiscountCodeApply
•SubscriptionDraftDiscountCodeApplyPayload

Applies a code discount on the subscription draft.

Anchor to subscriptionDraftDiscountRemovesubscriptionDraftDiscountRemove
•SubscriptionDraftDiscountRemovePayload

Removes a subscription discount from a subscription draft.

Anchor to subscriptionDraftDiscountUpdatesubscriptionDraftDiscountUpdate
•SubscriptionDraftDiscountUpdatePayload

Updates a subscription discount on a subscription draft.

Anchor to subscriptionDraftFreeShippingDiscountAddsubscriptionDraftFreeShippingDiscountAdd
•SubscriptionDraftFreeShippingDiscountAddPayload

Adds a subscription free shipping discount to a subscription draft.

Anchor to subscriptionDraftFreeShippingDiscountUpdatesubscriptionDraftFreeShippingDiscountUpdate
•SubscriptionDraftFreeShippingDiscountUpdatePayload

Updates a subscription free shipping discount on a subscription draft.

Anchor to subscriptionDraftLineAddsubscriptionDraftLineAdd
•SubscriptionDraftLineAddPayload

Adds a subscription line to a subscription draft.

Anchor to subscriptionDraftLineRemovesubscriptionDraftLineRemove
•SubscriptionDraftLineRemovePayload

Removes a subscription line from a subscription draft.

Anchor to subscriptionDraftLineUpdatesubscriptionDraftLineUpdate
•SubscriptionDraftLineUpdatePayload

Updates a subscription line on a subscription draft.

Anchor to subscriptionDraftUpdatesubscriptionDraftUpdate
•SubscriptionDraftUpdatePayload

Updates a Subscription Draft.

•TagsAddPayload

Add tags to an order, a draft order, a customer, a product, or an online store article.

•TagsRemovePayload

Remove tags from an order, a draft order, a customer, a product, or an online store article.

•TaxAppConfigurePayload

Allows tax app configurations for tax partners.

•ThemeCreatePayload

Creates a theme using an external URL or for files that were previously uploaded using the stagedUploadsCreate mutation. These themes are added to the Themes page in Shopify admin.

•ThemeDeletePayload

Deletes a theme.

•ThemeFilesCopyPayload

Copy theme files. Copying to existing theme files will overwrite them.

•ThemeFilesDeletePayload

Deletes a theme's files.

•ThemeFilesUpsertPayload

Create or update theme files.

•ThemePublishPayload

Publishes a theme.

•ThemeUpdatePayload

Updates a theme.

•TransactionVoidPayload

Trigger the voiding of an uncaptured authorization transaction.

Anchor to translationsRegistertranslationsRegister
•TranslationsRegisterPayload

Creates or updates translations.

•TranslationsRemovePayload

Deletes translations.

Anchor to urlRedirectBulkDeleteAllurlRedirectBulkDeleteAll
•UrlRedirectBulkDeleteAllPayload

Asynchronously delete URL redirects in bulk.

Anchor to urlRedirectBulkDeleteByIdsurlRedirectBulkDeleteByIds
•UrlRedirectBulkDeleteByIdsPayload

Asynchronously delete URLRedirect objects in bulk by IDs. Learn more about URLRedirect objects.

Anchor to urlRedirectBulkDeleteBySavedSearchurlRedirectBulkDeleteBySavedSearch
•UrlRedirectBulkDeleteBySavedSearchPayload

Asynchronously delete redirects in bulk.

Anchor to urlRedirectBulkDeleteBySearchurlRedirectBulkDeleteBySearch
•UrlRedirectBulkDeleteBySearchPayload

Asynchronously delete redirects in bulk.

•UrlRedirectCreatePayload

Creates a UrlRedirect object.

•UrlRedirectDeletePayload

Deletes a UrlRedirect object.

Anchor to urlRedirectImportCreateurlRedirectImportCreate
•UrlRedirectImportCreatePayload

Creates a UrlRedirectImport object.

After creating the UrlRedirectImport object, the UrlRedirectImport request can be performed using the urlRedirectImportSubmit mutation.

Anchor to urlRedirectImportSubmiturlRedirectImportSubmit
•UrlRedirectImportSubmitPayload

Submits a UrlRedirectImport request to be processed.

The UrlRedirectImport request is first created with the urlRedirectImportCreate mutation.

•UrlRedirectUpdatePayload

Updates a URL redirect.

•ValidationCreatePayload

Creates a validation.

•ValidationDeletePayload

Deletes a validation.

•ValidationUpdatePayload

Update a validation.

Anchor to webhookSubscriptionCreatewebhookSubscriptionCreate
•WebhookSubscriptionCreatePayload

Creates a new webhook subscription.

Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your shopify.app.toml may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read About managing webhook subscriptions.

Anchor to webhookSubscriptionDeletewebhookSubscriptionDelete
•WebhookSubscriptionDeletePayload

Deletes a webhook subscription.

Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your shopify.app.toml may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read About managing webhook subscriptions.

Anchor to webhookSubscriptionUpdatewebhookSubscriptionUpdate
•WebhookSubscriptionUpdatePayload

Updates a webhook subscription.

Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your shopify.app.toml may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read About managing webhook subscriptions.

•WebPixelCreatePayload

Activate a web pixel extension by creating a web pixel record on the store where you installed your app.

When you run the webPixelCreate mutation, Shopify validates it against the settings definition in shopify.extension.toml. If the settings input field doesn't match the schema that you defined, then the mutation fails. Learn how to define web pixel settings.

•WebPixelDeletePayload

Deletes the web pixel shop settings.

•WebPixelUpdatePayload

Activate a web pixel extension by updating a web pixel record on the store where you installed your app.

When you run the webPixelUpdate mutation, Shopify validates it against the settings definition in shopify.extension.toml. If the settings input field doesn't match the schema that you defined, then the mutation fails. Learn how to define web pixel settings.

•WebPresenceCreatePayload

Creates a web presence.

•WebPresenceDeletePayload

Deletes a web presence.

•WebPresenceUpdatePayload

Updates a web presence.

Deprecated fields

Anchor to abandonmentEmailStateUpdateabandonmentEmailStateUpdate
•AbandonmentEmailStateUpdatePayload
Deprecated
•CollectionPublishPayload
Deprecated
•CollectionUnpublishPayload
Deprecated
Anchor to companyLocationAssignTaxExemptionscompanyLocationAssignTaxExemptions
•CompanyLocationAssignTaxExemptionsPayload
Deprecated
Anchor to companyLocationCreateTaxRegistrationcompanyLocationCreateTaxRegistration
•CompanyLocationCreateTaxRegistrationPayload
Deprecated
Anchor to companyLocationRevokeTaxExemptionscompanyLocationRevokeTaxExemptions
•CompanyLocationRevokeTaxExemptionsPayload
Deprecated
Anchor to companyLocationRevokeTaxRegistrationcompanyLocationRevokeTaxRegistration
•CompanyLocationRevokeTaxRegistrationPayload
Deprecated
Anchor to eventBridgeWebhookSubscriptionCreateeventBridgeWebhookSubscriptionCreate
•EventBridgeWebhookSubscriptionCreatePayload
Deprecated
Anchor to eventBridgeWebhookSubscriptionUpdateeventBridgeWebhookSubscriptionUpdate
•EventBridgeWebhookSubscriptionUpdatePayload
Deprecated
•FulfillmentCreateV2Payload
Deprecated
Anchor to fulfillmentTrackingInfoUpdateV2fulfillmentTrackingInfoUpdateV2
•FulfillmentTrackingInfoUpdateV2Payload
Deprecated
Anchor to inventorySetOnHandQuantitiesinventorySetOnHandQuantities
•InventorySetOnHandQuantitiesPayload
Deprecated
•MarketRegionDeletePayload
Deprecated
•MarketRegionsCreatePayload
Deprecated
•MarketRegionsDeletePayload
Deprecated
Anchor to marketWebPresenceCreatemarketWebPresenceCreate
•MarketWebPresenceCreatePayload
Deprecated
Anchor to marketWebPresenceDeletemarketWebPresenceDelete
•MarketWebPresenceDeletePayload
Deprecated
Anchor to marketWebPresenceUpdatemarketWebPresenceUpdate
•MarketWebPresenceUpdatePayload
Deprecated
Anchor to orderEditRemoveLineItemDiscountorderEditRemoveLineItemDiscount
•OrderEditRemoveLineItemDiscountPayload
Deprecated
•ProductChangeStatusPayload
Deprecated
•ProductCreateMediaPayload
Deprecated
•ProductDeleteMediaPayload
Deprecated
•ProductPublishPayload
Deprecated
•ProductUnpublishPayload
Deprecated
•ProductUpdateMediaPayload
Deprecated
Anchor to pubSubWebhookSubscriptionCreatepubSubWebhookSubscriptionCreate
•PubSubWebhookSubscriptionCreatePayload
Deprecated
Anchor to pubSubWebhookSubscriptionUpdatepubSubWebhookSubscriptionUpdate
•PubSubWebhookSubscriptionUpdatePayload
Deprecated
Anchor to returnLineItemRemoveFromReturnreturnLineItemRemoveFromReturn
•ReturnLineItemRemoveFromReturnPayload
Deprecated
•ReturnRefundPayload
Deprecated
Anchor to stagedUploadTargetGeneratestagedUploadTargetGenerate
•StagedUploadTargetGeneratePayload
Deprecated
Anchor to stagedUploadTargetsGeneratestagedUploadTargetsGenerate
•StagedUploadTargetsGeneratePayload
Deprecated

Was this section helpful?