Mutation
The schema's entry point for all mutation operations.
Anchor to FieldsFields
- Anchor to abandonmentUpdateActivitiesDeliveryStatusesabandonment•Abandonment
Update Activities Delivery Statuses Update Activities Delivery Statuses Payload Updates the marketing activities delivery statuses for an abandonment.
- Anchor to appPurchaseOneTimeCreateapp•App
Purchase One Time Create Purchase One Time Create Payload 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 appRevokeAccessScopesapp•App
Revoke Access Scopes Revoke Access Scopes Payload Revokes access scopes previously granted for an app installation.
- Anchor to appSubscriptionCancelapp•App
Subscription Cancel Subscription Cancel Payload Cancels an app subscription on a store.
- Anchor to appSubscriptionCreateapp•App
Subscription Create Subscription Create Payload Allows an app to charge a store for features or services on a recurring basis.
- Anchor to appSubscriptionLineItemUpdateapp•App
Subscription Line Item Update Subscription Line Item Update Payload Updates the capped amount on the usage pricing plan of an app subscription line item.
- Anchor to appSubscriptionTrialExtendapp•App
Subscription Trial Extend Subscription Trial Extend Payload Extends the trial of an app subscription.
- Anchor to appUninstallapp•App
Uninstall Uninstall Payload Uninstalls an app.
- Anchor to appUsageRecordCreateapp•App
Usage Record Create Usage Record Create Payload Enables an app to charge a store for features or services on a per-use basis. The usage charge value is counted towards the
limit that was specified in the
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.- Anchor to articleCreatearticle•Article
Create Create Payload Creates an article.
- Anchor to articleDeletearticle•Article
Delete Delete Payload Deletes an article.
- Anchor to articleUpdatearticle•Article
Update Update Payload Updates an article.
- Anchor to backupRegionUpdatebackup•Backup
Region Update Region Update Payload Update the backup region that is used when we have no better signal of what region a buyer is in.
- Anchor to blogCreateblog•Blog
Create Create Payload Creates a blog.
- Anchor to blogDeleteblog•Blog
Delete Delete Payload Deletes a blog.
- Anchor to blogUpdateblog•Blog
Update Update Payload Updates a blog.
- Anchor to bulkDiscountResourceFeedbackCreatebulk•Bulk
Discount Resource Feedback Create Discount Resource Feedback Create Payload Creates resource feedback for multiple discounts.
- Anchor to bulkOperationCancelbulk•Bulk
Operation Cancel Operation Cancel Payload 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 bulkOperationRunMutationbulk•Bulk
Operation Run Mutation Operation Run Mutation Payload 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 bulkOperationRunQuerybulk•Bulk
Operation Run Query Operation Run Query Payload Creates and runs a bulk operation query.
See the bulk operations guide for more details.
- Anchor to bulkProductResourceFeedbackCreatebulk•Bulk
Product Resource Feedback Create Product Resource Feedback Create Payload Creates product feedback for multiple products.
- Anchor to carrierServiceCreatecarrier•Carrier
Service Create Service Create Payload Creates a new carrier service.
- Anchor to carrierServiceDeletecarrier•Carrier
Service Delete Service Delete Payload Removes an existing carrier service.
- Anchor to carrierServiceUpdatecarrier•Carrier
Service Update Service Update Payload Updates a carrier service. Only the app that creates a carrier service can update it.
- Anchor to cartTransformCreatecart•Cart
Transform Create Transform Create Payload Create a CartTransform function to the Shop.
- Anchor to cartTransformDeletecart•Cart
Transform Delete Transform Delete Payload Destroy a cart transform function from the Shop.
- Anchor to catalogContextUpdatecatalog•Catalog
Context Update Context Update Payload Updates the context of a catalog.
- Anchor to catalogCreatecatalog•Catalog
Create Create Payload Creates a new catalog.
- Anchor to catalogDeletecatalog•Catalog
Delete Delete Payload Delete a catalog.
- Anchor to catalogUpdatecatalog•Catalog
Update Update Payload Updates an existing catalog.
- Anchor to checkoutAndAccountsAppConfigurationDeletecheckout•Checkout
And Accounts App Configuration Delete And Accounts App Configuration Delete Payload Delete a checkout and accounts app configuration.
- Anchor to checkoutAndAccountsAppConfigurationUpdatecheckout•Checkout
And Accounts App Configuration Update And Accounts App Configuration Update Payload Create or update a checkout and accounts app configuration.
- Anchor to checkoutBrandingUpsertcheckout•Checkout
Branding Upsert Branding Upsert Payload 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 collectionAddProductscollection•Collection
Add Products Add Products Payload Adds products to a collection.
- Anchor to collectionAddProductsV2collection•Collection
Add Products V2 Add Products V2Payload 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.
- Anchor to collectionCreatecollection•Collection
Create Create Payload 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:
- Custom (manual) collections: You specify the products to include in a collection.
- Smart (automated) collections: You define rules, and products matching those rules are automatically included in the collection.
Use the
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)
NoteLearn more about using metafields with smart collections.
- Anchor to collectionDeletecollection•Collection
Delete Delete Payload Deletes a collection.
- Anchor to collectionRemoveProductscollection•Collection
Remove Products Remove Products Payload 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 collectionReorderProductscollection•Collection
Reorder Products Reorder Products Payload Asynchronously reorders products within a specified collection. Instead of returning an updated collection, this mutation returns a job, which should be polled. The
must be
.
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.
- Each move is applied sequentially in the order provided.
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
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.
- Provide only the products that actually moved in the
- Anchor to collectionUpdatecollection•Collection
Update Update Payload 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
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
and
mutations.
Learn more about using metafields with smart collections.
- Anchor to combinedListingUpdatecombined•Combined
Listing Update Listing Update Payload Add, remove and update
s of a given Product.
s are comprised of multiple products to create a single listing. There are two kinds of products used in a
:
- Parent products
- Child products
The parent product is created with a
with a
of
. 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.
- Anchor to commentApprovecomment•Comment
Approve Approve Payload Approves a comment.
- Anchor to commentDeletecomment•Comment
Delete Delete Payload Deletes a comment.
- Anchor to commentNotSpamcomment•Comment
Not Spam Not Spam Payload Marks a comment as not spam.
- Anchor to commentSpamcomment•Comment
Spam Spam Payload Marks a comment as spam.
- Anchor to companiesDeletecompanies•Companies
Delete Delete Payload Deletes a list of companies.
- Anchor to companyAddressDeletecompany•Company
Address Delete Address Delete Payload Deletes a company address.
- Anchor to companyAssignCustomerAsContactcompany•Company
Assign Customer As Contact Assign Customer As Contact Payload Assigns the customer as a company contact.
- Anchor to companyAssignMainContactcompany•Company
Assign Main Contact Assign Main Contact Payload Assigns the main contact for the company.
- Anchor to companyContactAssignRolecompany•Company
Contact Assign Role Contact Assign Role Payload Assigns a role to a contact for a location.
- Anchor to companyContactAssignRolescompany•Company
Contact Assign Roles Contact Assign Roles Payload Assigns roles on a company contact.
- Anchor to companyContactCreatecompany•Company
Contact Create Contact Create Payload Creates a company contact and the associated customer.
- Anchor to companyContactDeletecompany•Company
Contact Delete Contact Delete Payload Deletes a company contact.
- Anchor to companyContactRemoveFromCompanycompany•Company
Contact Remove From Company Contact Remove From Company Payload Removes a company contact from a Company.
- Anchor to companyContactRevokeRolecompany•Company
Contact Revoke Role Contact Revoke Role Payload Revokes a role on a company contact.
- Anchor to companyContactRevokeRolescompany•Company
Contact Revoke Roles Contact Revoke Roles Payload Revokes roles on a company contact.
- Anchor to companyContactsDeletecompany•Company
Contacts Delete Contacts Delete Payload Deletes one or more company contacts.
- Anchor to companyContactUpdatecompany•Company
Contact Update Contact Update Payload Updates a company contact.
- Anchor to companyCreatecompany•Company
Create Create Payload Creates a company.
- Anchor to companyDeletecompany•Company
Delete Delete Payload Deletes a company.
- Anchor to companyLocationAssignAddresscompany•Company
Location Assign Address Location Assign Address Payload Updates an address on a company location.
- Anchor to companyLocationAssignRolescompany•Company
Location Assign Roles Location Assign Roles Payload Assigns roles on a company location.
- Anchor to companyLocationAssignStaffMemberscompany•Company
Location Assign Staff Members Location Assign Staff Members Payload Creates one or more mappings between a staff member at a shop and a company location.
- Anchor to companyLocationCreatecompany•Company
Location Create Location Create Payload Creates a company location.
- Anchor to companyLocationDeletecompany•Company
Location Delete Location Delete Payload Deletes a company location.
- Anchor to companyLocationRemoveStaffMemberscompany•Company
Location Remove Staff Members Location Remove Staff Members Payload Deletes one or more existing mappings between a staff member at a shop and a company location.
- Anchor to companyLocationRevokeRolescompany•Company
Location Revoke Roles Location Revoke Roles Payload Revokes roles on a company location.
- Anchor to companyLocationsDeletecompany•Company
Locations Delete Locations Delete Payload Deletes a list of company locations.
- Anchor to companyLocationTaxSettingsUpdatecompany•Company
Location Tax Settings Update Location Tax Settings Update Payload Sets the tax settings for a company location.
- Anchor to companyLocationUpdatecompany•Company
Location Update Location Update Payload Updates a company location.
- Anchor to companyRevokeMainContactcompany•Company
Revoke Main Contact Revoke Main Contact Payload Revokes the main contact from the company.
- Anchor to companyUpdatecompany•Company
Update Update Payload Updates a company.
- Anchor to consentPolicyUpdateconsent•Consent
Policy Update Policy Update Payload Update or create consent policies in bulk.
- Anchor to customerAddressCreatecustomer•Customer
Address Create Address Create Payload Create a new customer address.
- Anchor to customerAddressDeletecustomer•Customer
Address Delete Address Delete Payload Deletes a customer's address.
- Anchor to customerAddressUpdatecustomer•Customer
Address Update Address Update Payload Update a customer's address information.
- Anchor to customerAddTaxExemptionscustomer•Customer
Add Tax Exemptions Add Tax Exemptions Payload Add tax exemptions for the customer.
- Anchor to customerCancelDataErasurecustomer•Customer
Cancel Data Erasure Cancel Data Erasure Payload 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.
- Anchor to customerCreatecustomer•Customer
Create Create Payload Create a new customer. As of API version 2022-10, apps using protected customer data must meet the protected customer data requirements.
- Anchor to customerDeletecustomer•Customer
Delete Delete Payload Delete a customer. As of API version 2022-10, apps using protected customer data must meet the protected customer data requirements.
- Anchor to customerEmailMarketingConsentUpdatecustomer•Customer
Email Marketing Consent Update Email Marketing Consent Update Payload Update a customer's email marketing information information.
- Anchor to customerGenerateAccountActivationUrlcustomer•Customer
Generate Account Activation Url Generate Account Activation Url Payload Generate an account activation URL for a customer.
- Anchor to customerMergecustomer•Customer
Merge Merge Payload Merges two customers.
- Anchor to customerPaymentMethodCreditCardCreatecustomer•Customer
Payment Method Credit Card Create Payment Method Credit Card Create Payload 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 customerPaymentMethodCreditCardUpdatecustomer•Customer
Payment Method Credit Card Update Payment Method Credit Card Update Payload Updates the credit card payment method for a customer.
- Anchor to customerPaymentMethodGetUpdateUrlcustomer•Customer
Payment Method Get Update Url Payment Method Get Update Url Payload Returns a URL that allows the customer to update a specific payment method.
Currently,
only supports Shop Pay.
- Anchor to customerPaymentMethodPaypalBillingAgreementCreatecustomer•Customer
Payment Method Paypal Billing Agreement Create Payment Method Paypal Billing Agreement Create Payload Creates a PayPal billing agreement for a customer.
- Anchor to customerPaymentMethodPaypalBillingAgreementUpdatecustomer•Customer
Payment Method Paypal Billing Agreement Update Payment Method Paypal Billing Agreement Update Payload Updates a PayPal billing agreement for a customer.
- Anchor to customerPaymentMethodRemoteCreatecustomer•Customer
Payment Method Remote Create Payment Method Remote Create Payload 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 customerPaymentMethodRevokecustomer•Customer
Payment Method Revoke Payment Method Revoke Payload Revokes a customer's payment method.
- Anchor to customerPaymentMethodSendUpdateEmailcustomer•Customer
Payment Method Send Update Email Payment Method Send Update Email Payload Sends a link to the customer so they can update a specific payment method.
- Anchor to customerRemoveTaxExemptionscustomer•Customer
Remove Tax Exemptions Remove Tax Exemptions Payload Remove tax exemptions from a customer.
- Anchor to customerReplaceTaxExemptionscustomer•Customer
Replace Tax Exemptions Replace Tax Exemptions Payload Replace tax exemptions for a customer.
- Anchor to customerRequestDataErasurecustomer•Customer
Request Data Erasure Request Data Erasure Payload Enqueues a request to erase customer's data. Read more here.
To cancel the data erasure request use the customerCancelDataErasure mutation.
- Anchor to customerSegmentMembersQueryCreatecustomer•Customer
Segment Members Query Create Segment Members Query Create Payload Creates a customer segment members query.
- Anchor to customerSendAccountInviteEmailcustomer•Customer
Send Account Invite Email Send Account Invite Email Payload Sends the customer an account invite email.
- Anchor to customerSetcustomer•Customer
Set Set Payload 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 theidentifier
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 customerSmsMarketingConsentUpdatecustomer•Customer
Sms Marketing Consent Update Sms Marketing Consent Update Payload Update a customer's SMS marketing consent information.
- Anchor to customerUpdatecustomer•Customer
Update Update Payload 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 customerUpdateDefaultAddresscustomer•Customer
Update Default Address Update Default Address Payload Updates a customer's default address.
- Anchor to dataSaleOptOutdata•Data
Sale Opt Out Sale Opt Out Payload Opt out a customer from data sale.
- Anchor to delegateAccessTokenCreatedelegate•Delegate
Access Token Create Access Token Create Payload Creates a delegate access token.
To learn more about creating delegate access tokens, refer to Delegate OAuth access tokens to subsystems.
- Anchor to delegateAccessTokenDestroydelegate•Delegate
Access Token Destroy Access Token Destroy Payload Destroys a delegate access token.
- Anchor to deliveryCustomizationActivationdelivery•Delivery
Customization Activation Customization Activation Payload Activates and deactivates delivery customizations.
- Anchor to deliveryCustomizationCreatedelivery•Delivery
Customization Create Customization Create Payload Creates a delivery customization.
- Anchor to deliveryCustomizationDeletedelivery•Delivery
Customization Delete Customization Delete Payload Creates a delivery customization.
- Anchor to deliveryCustomizationUpdatedelivery•Delivery
Customization Update Customization Update Payload Updates a delivery customization.
- Anchor to deliveryProfileCreatedelivery•Delivery
Profile Create Profile Create Payload Create a delivery profile.
- Anchor to deliveryProfileRemovedelivery•Delivery
Profile Remove Profile Remove Payload Enqueue the removal of a delivery profile.
- Anchor to deliveryProfileUpdatedelivery•Delivery
Profile Update Profile Update Payload Update a delivery profile.
- Anchor to deliveryPromiseParticipantsUpdatedelivery•Delivery
Promise Participants Update Promise Participants Update Payload Updates the delivery promise participants by adding or removing owners based on a branded promise handle.
- Anchor to deliveryPromiseProviderUpsertdelivery•Delivery
Promise Provider Upsert Promise Provider Upsert Payload Creates or updates a delivery promise provider. Currently restricted to select approved delivery promise partners.
- Anchor to deliveryPromiseSkuSettingUpsertdelivery•Delivery
Promise Sku Setting Upsert Promise Sku Setting Upsert Payload Creates or updates a delivery promise SKU setting that will be used when looking up delivery promises for the SKU.
- Anchor to deliverySettingUpdatedelivery•Delivery
Setting Update Setting Update Payload Set the delivery settings for a shop.
- Anchor to deliveryShippingOriginAssigndelivery•Delivery
Shipping Origin Assign Shipping Origin Assign Payload Assigns a location as the shipping origin while using legacy compatibility mode for multi-location delivery profiles.
- Anchor to discountAutomaticActivatediscount•Discount
Automatic Activate Automatic Activate Payload Activates an automatic discount.
- Anchor to discountAutomaticAppCreatediscount•Discount
Automatic App Create Automatic App Create Payload 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.
- Anchor to discountAutomaticAppUpdatediscount•Discount
Automatic App Update Automatic App Update Payload 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.
- Anchor to discountAutomaticBasicCreatediscount•Discount
Automatic Basic Create Automatic Basic Create Payload - Anchor to discountAutomaticBasicUpdatediscount•Discount
Automatic Basic Update Automatic Basic Update Payload - Anchor to discountAutomaticBulkDeletediscount•Discount
Automatic Bulk Delete Automatic Bulk Delete Payload Asynchronously delete automatic discounts in bulk if a
search
orargument 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 discountAutomaticBxgyCreatediscount•Discount
Automatic Bxgy Create Automatic Bxgy Create Payload - Anchor to discountAutomaticBxgyUpdatediscount•Discount
Automatic Bxgy Update Automatic Bxgy Update Payload Updates an existing buy X get Y discount (BXGY) that's automatically applied on a cart and at checkout.
- Anchor to discountAutomaticDeactivatediscount•Discount
Automatic Deactivate Automatic Deactivate Payload Deactivates an automatic discount.
- Anchor to discountAutomaticDeletediscount•Discount
Automatic Delete Automatic Delete Payload Deletes an automatic discount.
- Anchor to discountAutomaticFreeShippingCreatediscount•Discount
Automatic Free Shipping Create Automatic Free Shipping Create Payload - Anchor to discountAutomaticFreeShippingUpdatediscount•Discount
Automatic Free Shipping Update Automatic Free Shipping Update Payload - Anchor to discountCodeActivatediscount•Discount
Code Activate Code Activate Payload Activates a code discount.
- Anchor to discountCodeAppCreatediscount•Discount
Code App Create Code App Create Payload 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.
- Anchor to discountCodeAppUpdatediscount•Discount
Code App Update Code App Update Payload 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.
- Anchor to discountCodeBasicCreatediscount•Discount
Code Basic Create Code Basic Create Payload 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.
- Anchor to discountCodeBasicUpdatediscount•Discount
Code Basic Update Code Basic Update Payload 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.
- Anchor to discountCodeBulkActivatediscount•Discount
Code Bulk Activate Code Bulk Activate Payload 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 discountCodeBulkDeactivatediscount•Discount
Code Bulk Deactivate Code Bulk Deactivate Payload 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 discountCodeBulkDeletediscount•Discount
Code Bulk Delete Code Bulk Delete Payload 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 discountCodeBxgyCreatediscount•Discount
Code Bxgy Create Code Bxgy Create Payload Creates a buy X get Y discount (BXGY) that's applied on a cart and at checkout when a customer enters a code.
- Anchor to discountCodeBxgyUpdatediscount•Discount
Code Bxgy Update Code Bxgy Update Payload Updates a buy X get Y discount (BXGY) that's applied on a cart and at checkout when a customer enters a code.
- Anchor to discountCodeDeactivatediscount•Discount
Code Deactivate Code Deactivate Payload Deactivates a code discount.
- Anchor to discountCodeDeletediscount•Discount
Code Delete Code Delete Payload Deletes a code discount.
- Anchor to discountCodeFreeShippingCreatediscount•Discount
Code Free Shipping Create Code Free Shipping Create Payload Creates an free shipping discount that's applied on a cart and at checkout when a customer enters a code.
- Anchor to discountCodeFreeShippingUpdatediscount•Discount
Code Free Shipping Update Code Free Shipping Update Payload Updates a free shipping discount that's applied on a cart and at checkout when a customer enters a code.
Note- Anchor to discountCodeRedeemCodeBulkDeletediscount•Discount
Code Redeem Code Bulk Delete Code Redeem Code Bulk Delete Payload Asynchronously delete discount codes in bulk that customers can use to redeem a discount.
- Anchor to discountRedeemCodeBulkAdddiscount•Discount
Redeem Code Bulk Add Redeem Code Bulk Add Payload Asynchronously add discount codes in bulk that customers can use to redeem a discount. You can use the
mutation to automate the distribution of discount codes through emails or other marketing channels.
- Anchor to discountsAllocatorFunctionRegisterdiscounts•Discounts
Allocator Function Register Allocator Function Register Payload Registers a discounts allocator function.
- Anchor to discountsAllocatorFunctionUnregisterdiscounts•Discounts
Allocator Function Unregister Allocator Function Unregister Payload Unregisters a discounts allocator function.
- Anchor to disputeEvidenceUpdatedispute•Dispute
Evidence Update Evidence Update Payload Updates a dispute evidence.
- Anchor to domainVerificationTagInjectdomain•Domain
Verification Tag Inject Verification Tag Inject Payload Injects a Meta tag into the online store for a given shop, for verifying the domains of merchants onboarding to the marketplace.
- Anchor to domainVerificationTagRemovedomain•Domain
Verification Tag Remove Verification Tag Remove Payload Removes a Meta tag from the online store for a given shop. The tag is used for verifying merchant domains during marketplace onboarding.
- Anchor to draftOrderBulkAddTagsdraft•Draft
Order Bulk Add Tags Order Bulk Add Tags Payload Adds tags to multiple draft orders.
- Anchor to draftOrderBulkDeletedraft•Draft
Order Bulk Delete Order Bulk Delete Payload Deletes multiple draft orders.
- Anchor to draftOrderBulkRemoveTagsdraft•Draft
Order Bulk Remove Tags Order Bulk Remove Tags Payload Removes tags from multiple draft orders.
- Anchor to draftOrderCalculatedraft•Draft
Order Calculate Order Calculate Payload Calculates the properties of a draft order. Useful for determining information such as total taxes or price without actually creating a draft order.
- Anchor to draftOrderCompletedraft•Draft
Order Complete Order Complete Payload 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
mutation when a merchant is ready to finalize a draft order and create a real order in their store. The
mutation also supports sales channel attribution for tracking order sources using the
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.
NoteWhen 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.
- Anchor to draftOrderCreatedraft•Draft
Order Create Order Create Payload 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:
- Send an invoice to the customer using the
mutation.
- Complete the draft order using the
mutation.
- Update the draft order using the
mutation.
- Duplicate a draft order using the
mutation.
- Delete the draft order using the
mutation.
NoteWhen 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
input.
- Anchor to draftOrderCreateFromOrderdraft•Draft
Order Create From Order Order Create From Order Payload Creates a draft order from order.
- Anchor to draftOrderDeletedraft•Draft
Order Delete Order Delete Payload Deletes a draft order.
- Anchor to draftOrderDuplicatedraft•Draft
Order Duplicate Order Duplicate Payload Duplicates a draft order.
- Anchor to draftOrderInvoicePreviewdraft•Draft
Order Invoice Preview Order Invoice Preview Payload Previews a draft order invoice email.
- Anchor to draftOrderInvoiceSenddraft•Draft
Order Invoice Send Order Invoice Send Payload Sends an email invoice for a draft order.
- Anchor to draftOrderPrepareForBuyerCheckoutdraft•Draft
Order Prepare For Buyer Checkout Order Prepare For Buyer Checkout Payload Updates a draft order before sending the invoice to the buyer by configuring settings relevant to the draft order.
- Anchor to draftOrderUpdatedraft•Draft
Order Update Order Update Payload 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 eventBridgeServerPixelUpdateevent•Event
Bridge Server Pixel Update Bridge Server Pixel Update Payload Updates the server pixel to connect to an EventBridge endpoint. Running this mutation deletes any previous subscriptions for the server pixel.
- Anchor to fileAcknowledgeUpdateFailedfile•File
Acknowledge Update Failed Acknowledge Update Failed Payload Acknowledges file update failure by resetting FAILED status to READY and clearing any media errors.
- Anchor to fileCreatefile•File
Create Create Payload Creates file assets for a store from external URLs or files that were previously uploaded using the
mutation.
Use the
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
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.
NoteAfter creating files, you can make subsequent updates using the following mutations:
: Update file properties such as alt text or replace file contents while preserving the same URL.
: 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.
- Anchor to fileDeletefile•File
Delete Delete Payload Deletes file assets that were previously uploaded to your store.
Use the
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
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.
CautionFile 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.
- Anchor to fileUpdatefile•File
Update Update Payload Updates properties, content, and metadata associated with an existing file asset that has already been uploaded to Shopify.
Use the
mutation to modify various aspects of files already stored in your store. Files can be updated individually or in batches.
The
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.
NoteFiles 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 bothand
.
After updating files, you can use related mutations for additional file management:
: Create new file assets from external URLs or staged uploads.
: Remove files from your store when they are no longer needed.
Learn how to manage product media and file assets in your app.
- Anchor to flowTriggerReceiveflow•Flow
Trigger Receive Trigger Receive Payload Triggers any workflows that begin with the trigger specified in the request body. To learn more, refer to Create Shopify Flow triggers.
- Anchor to fulfillmentCancelfulfillment•Fulfillment
Cancel Cancel Payload Cancels a fulfillment.
- Anchor to fulfillmentConstraintRuleCreatefulfillment•Fulfillment
Constraint Rule Create Constraint Rule Create Payload Creates a fulfillment constraint rule and its metafield.
- Anchor to fulfillmentConstraintRuleDeletefulfillment•Fulfillment
Constraint Rule Delete Constraint Rule Delete Payload Deletes a fulfillment constraint rule and its metafields.
- Anchor to fulfillmentConstraintRuleUpdatefulfillment•Fulfillment
Constraint Rule Update Constraint Rule Update Payload Update a fulfillment constraint rule.
- Anchor to fulfillmentCreatefulfillment•Fulfillment
Create Create Payload 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 fulfillmentEventCreatefulfillment•Fulfillment
Event Create Event Create Payload Creates a fulfillment event for a specified fulfillment.
- Anchor to fulfillmentOrderAcceptCancellationRequestfulfillment•Fulfillment
Order Accept Cancellation Request Order Accept Cancellation Request Payload Accept a cancellation request sent to a fulfillment service for a fulfillment order.
- Anchor to fulfillmentOrderAcceptFulfillmentRequestfulfillment•Fulfillment
Order Accept Fulfillment Request Order Accept Fulfillment Request Payload Accepts a fulfillment request sent to a fulfillment service for a fulfillment order.
- Anchor to fulfillmentOrderCancelfulfillment•Fulfillment
Order Cancel Order Cancel Payload Marks a fulfillment order as canceled.
- Anchor to fulfillmentOrderClosefulfillment•Fulfillment
Order Close Order Close Payload 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
.
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 fulfillmentOrderHoldfulfillment•Fulfillment
Order Hold Order Hold Payload 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 fulfillmentOrderLineItemsPreparedForPickupfulfillment•Fulfillment
Order Line Items Prepared For Pickup Order Line Items Prepared For Pickup Payload 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 fulfillmentOrderMergefulfillment•Fulfillment
Order Merge Order Merge Payload Merges a set or multiple sets of fulfillment orders together into one based on line item inputs and quantities.
- Anchor to fulfillmentOrderMovefulfillment•Fulfillment
Order Move Order Move Payload 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
,
,
, or
. 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
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 fulfillmentOrderOpenfulfillment•Fulfillment
Order Open Order Open Payload Marks a scheduled fulfillment order as open.
- Anchor to fulfillmentOrderRejectCancellationRequestfulfillment•Fulfillment
Order Reject Cancellation Request Order Reject Cancellation Request Payload Rejects a cancellation request sent to a fulfillment service for a fulfillment order.
- Anchor to fulfillmentOrderRejectFulfillmentRequestfulfillment•Fulfillment
Order Reject Fulfillment Request Order Reject Fulfillment Request Payload Rejects a fulfillment request sent to a fulfillment service for a fulfillment order.
- Anchor to fulfillmentOrderReleaseHoldfulfillment•Fulfillment
Order Release Hold Order Release Hold Payload Releases the fulfillment hold on a fulfillment order.
- Anchor to fulfillmentOrderReschedulefulfillment•Fulfillment
Order Reschedule Order Reschedule Payload Reschedules a scheduled fulfillment order.
Updates the value of the
field on a scheduled fulfillment order.
The fulfillment order will be marked as ready for fulfillment at this date and time.
- Anchor to fulfillmentOrderSplitfulfillment•Fulfillment
Order Split Order Split Payload Splits a fulfillment order or orders based on line item inputs and quantities.
- Anchor to fulfillmentOrdersReroutefulfillment•Fulfillment
Orders Reroute Orders Reroute Payload Route the fulfillment orders to an alternative location, according to the shop's order routing settings. This involves:
- Finding an alternate location that can fulfill the fulfillment orders.
- Assigning the fulfillment orders to the new location.
- Anchor to fulfillmentOrdersSetFulfillmentDeadlinefulfillment•Fulfillment
Orders Set Fulfillment Deadline Orders Set Fulfillment Deadline Payload Sets the latest date and time by which the fulfillment orders need to be fulfilled.
- Anchor to fulfillmentOrderSubmitCancellationRequestfulfillment•Fulfillment
Order Submit Cancellation Request Order Submit Cancellation Request Payload Sends a cancellation request to the fulfillment service of a fulfillment order.
- Anchor to fulfillmentOrderSubmitFulfillmentRequestfulfillment•Fulfillment
Order Submit Fulfillment Request Order Submit Fulfillment Request Payload Sends a fulfillment request to the fulfillment service of a fulfillment order.
- Anchor to fulfillmentServiceCreatefulfillment•Fulfillment
Service Create Service Create Payload 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 fulfillmentServiceDeletefulfillment•Fulfillment
Service Delete Service Delete Payload Deletes a fulfillment service.
- Anchor to fulfillmentServiceUpdatefulfillment•Fulfillment
Service Update Service Update Payload 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 fulfillmentTrackingInfoUpdatefulfillment•Fulfillment
Tracking Info Update Tracking Info Update Payload Updates tracking information for a fulfillment.
- Anchor to giftCardCreategift•Gift
Card Create Card Create Payload Create a gift card.
- Anchor to giftCardCreditgift•Gift
Card Credit Card Credit Payload Credit a gift card.
- Anchor to giftCardDeactivategift•Gift
Card Deactivate Card Deactivate Payload Deactivate a gift card. A deactivated gift card cannot be used by a customer. A deactivated gift card cannot be re-enabled.
- Anchor to giftCardDebitgift•Gift
Card Debit Card Debit Payload Debit a gift card.
- Anchor to giftCardSendNotificationToCustomergift•Gift
Card Send Notification To Customer Card Send Notification To Customer Payload Send notification to the customer of a gift card.
- Anchor to giftCardSendNotificationToRecipientgift•Gift
Card Send Notification To Recipient Card Send Notification To Recipient Payload Send notification to the recipient of a gift card.
- Anchor to giftCardUpdategift•Gift
Card Update Card Update Payload Update a gift card.
- Anchor to hydrogenStorefrontCreatehydrogen•Hydrogen
Storefront Create Storefront Create Payload Creates a Hydrogen storefront.
- Anchor to hydrogenStorefrontCustomerApplicationUrlsReplacehydrogen•Hydrogen
Storefront Customer Application Urls Replace Storefront Customer Application Urls Replace Payload Updates a customer application URLs.
- Anchor to hydrogenStorefrontEnvironmentVariableBulkReplacehydrogen•Hydrogen
Storefront Environment Variable Bulk Replace Storefront Environment Variable Bulk Replace Payload Replaces a given environment's variables.
- Anchor to inventoryActivateinventory•Inventory
Activate Activate Payload Activate an inventory item at a location.
- Anchor to inventoryAdjustQuantitiesinventory•Inventory
Adjust Quantities Adjust Quantities Payload Apply changes to inventory quantities.
- Anchor to inventoryBulkToggleActivationinventory•Inventory
Bulk Toggle Activation Bulk Toggle Activation Payload 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.
- Anchor to inventoryDeactivateinventory•Inventory
Deactivate Deactivate Payload Removes an inventory item's quantities from a location, and turns off inventory at the location.
- Anchor to inventoryItemUpdateinventory•Inventory
Item Update Item Update Payload Updates an inventory item.
- Anchor to inventoryMoveQuantitiesinventory•Inventory
Move Quantities Move Quantities Payload Moves inventory between inventory quantity names at a single location.
- Anchor to inventorySetQuantitiesinventory•Inventory
Set Quantities Set Quantities Payload Set quantities of specified name using absolute values. This mutation supports compare-and-set functionality to handle concurrent requests properly. If
is not set to true, the mutation will only update the quantity if the persisted quantity matches the
value. If the
value does not match the persisted value, the mutation will return an error. In order to opt out of the
check, the
argument can be set to true.
NoteOnly 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
check can lead to inaccurate inventory quantities if multiple requests are made concurrently. It is recommended to always include the
value to ensure the accuracy of the inventory quantities and to opt out of the check using
only when necessary.
- Anchor to inventorySetScheduledChangesinventory•Inventory
Set Scheduled Changes Set Scheduled Changes Payload Set up scheduled changes of inventory items.
- Anchor to inventoryShipmentAddItemsinventory•Inventory
Shipment Add Items Shipment Add Items Payload Adds items to an inventory shipment.
- Anchor to inventoryShipmentCreateinventory•Inventory
Shipment Create Shipment Create Payload Adds a draft shipment to an inventory transfer.
- Anchor to inventoryShipmentCreateInTransitinventory•Inventory
Shipment Create In Transit Shipment Create In Transit Payload Adds an in-transit shipment to an inventory transfer.
- Anchor to inventoryShipmentDeleteinventory•Inventory
Shipment Delete Shipment Delete Payload Deletes an inventory shipment. Only draft shipments can be deleted.
- Anchor to inventoryShipmentMarkInTransitinventory•Inventory
Shipment Mark In Transit Shipment Mark In Transit Payload Marks a draft inventory shipment as in transit.
- Anchor to inventoryShipmentReceiveinventory•Inventory
Shipment Receive Shipment Receive Payload Receive an inventory shipment.
- Anchor to inventoryShipmentRemoveItemsinventory•Inventory
Shipment Remove Items Shipment Remove Items Payload Remove items from an inventory shipment.
- Anchor to inventoryShipmentSetTrackinginventory•Inventory
Shipment Set Tracking Shipment Set Tracking Payload Edits the tracking info on an inventory shipment.
- Anchor to inventoryShipmentUpdateItemQuantitiesinventory•Inventory
Shipment Update Item Quantities Shipment Update Item Quantities Payload Updates items on an inventory shipment.
- Anchor to inventoryTransferCancelinventory•Inventory
Transfer Cancel Transfer Cancel Payload Cancels an inventory transfer.
- Anchor to inventoryTransferCreateinventory•Inventory
Transfer Create Transfer Create Payload Creates an inventory transfer.
- Anchor to inventoryTransferCreateAsReadyToShipinventory•Inventory
Transfer Create As Ready To Ship Transfer Create As Ready To Ship Payload Creates an inventory transfer in ready to ship.
- Anchor to inventoryTransferDeleteinventory•Inventory
Transfer Delete Transfer Delete Payload Deletes an inventory transfer.
- Anchor to inventoryTransferDuplicateinventory•Inventory
Transfer Duplicate Transfer Duplicate Payload 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 inventoryTransferEditinventory•Inventory
Transfer Edit Transfer Edit Payload Edits an inventory transfer.
- Anchor to inventoryTransferMarkAsReadyToShipinventory•Inventory
Transfer Mark As Ready To Ship Transfer Mark As Ready To Ship Payload Sets an inventory transfer to ready to ship.
- Anchor to inventoryTransferRemoveItemsinventory•Inventory
Transfer Remove Items Transfer Remove Items Payload 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 inventoryTransferSetItemsinventory•Inventory
Transfer Set Items Transfer Set Items Payload This mutation allows for the setting of line items on a Transfer. Will replace the items already set, if any.
- Anchor to locationActivatelocation•Location
Activate Activate Payload Activates a location so that you can stock inventory at the location. Refer to the
and
activatable
fields on theLocation
object.- Anchor to locationAddlocation•Location
Add Add Payload Adds a new location.
- Anchor to locationDeactivatelocation•Location
Deactivate Deactivate Payload Deactivates a location and moves inventory, pending orders, and moving transfers to a destination location.
- Anchor to locationDeletelocation•Location
Delete Delete Payload Deletes a location.
- Anchor to locationEditlocation•Location
Edit Edit Payload 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 locationLocalPickupDisablelocation•Location
Local Pickup Disable Local Pickup Disable Payload Disables local pickup for a location.
- Anchor to locationLocalPickupEnablelocation•Location
Local Pickup Enable Local Pickup Enable Payload Enables local pickup for a location.
- Anchor to marketCreatemarket•Market
Create Create Payload Creates a new market.
- Anchor to marketCurrencySettingsUpdatemarket•Market
Currency Settings Update Currency Settings Update Payload Updates currency settings of a market.
- Anchor to marketDeletemarket•Market
Delete Delete Payload Deletes a market definition.
- Anchor to marketingActivitiesDeleteAllExternalmarketing•Marketing
Activities Delete All External Activities Delete All External Payload 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 marketingActivityCreatemarketing•Marketing
Activity Create Activity Create Payload Create new marketing activity. Marketing activity app extensions are deprecated and will be removed in the near future.
- Anchor to marketingActivityCreateExternalmarketing•Marketing
Activity Create External Activity Create External Payload Creates a new external marketing activity.
- Anchor to marketingActivityDeleteExternalmarketing•Marketing
Activity Delete External Activity Delete External Payload Deletes an external marketing activity.
- Anchor to marketingActivityUpdatemarketing•Marketing
Activity Update Activity Update Payload Updates a marketing activity with the latest information. Marketing activity app extensions are deprecated and will be removed in the near future.
- Anchor to marketingActivityUpdateExternalmarketing•Marketing
Activity Update External Activity Update External Payload Update an external marketing activity.
- Anchor to marketingActivityUpsertExternalmarketing•Marketing
Activity Upsert External Activity Upsert External Payload 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 marketingEngagementCreatemarketing•Marketing
Engagement Create Engagement Create Payload Creates a new marketing engagement for a marketing activity or a marketing channel.
- Anchor to marketingEngagementsDeletemarketing•Marketing
Engagements Delete Engagements Delete Payload 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 marketLocalizationsRegistermarket•Market
Localizations Register Localizations Register Payload Creates or updates market localizations.
- Anchor to marketLocalizationsRemovemarket•Market
Localizations Remove Localizations Remove Payload Deletes market localizations.
- Anchor to marketUpdatemarket•Market
Update Update Payload Updates the properties of a market.
- •Menu
Create Payload Creates a menu.
- •Menu
Delete Payload Deletes a menu.
- •Menu
Update Payload Updates a menu.
- Anchor to metafieldDefinitionCreatemetafield•Metafield
Definition Create Definition Create Payload 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 metafieldDefinitionDeletemetafield•Metafield
Definition Delete Definition Delete Payload Delete a metafield definition. Optionally deletes all associated metafields asynchronously when specified.
- Anchor to metafieldDefinitionPinmetafield•Metafield
Definition Pin Definition Pin Payload 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 metafieldDefinitionUnpinmetafield•Metafield
Definition Unpin Definition Unpin Payload 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 metafieldDefinitionUpdatemetafield•Metafield
Definition Update Definition Update Payload Updates a metafield definition.
- Anchor to metafieldsDeletemetafields•Metafields
Delete Delete Payload Deletes multiple metafields in bulk.
- Anchor to metafieldsSetmetafields•Metafields
Set Set Payload 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. Ifis set for any metafield, the mutation will only set that metafield if the persisted metafield value matches the digest used on
. If the metafield doesn't exist yet, but you want to guarantee that the operation will run in a safe manner, set
to
null
. Thevalue can be acquired by querying the metafield object and selecting
as a field. If the
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
in the request.
- Anchor to metaobjectBulkDeletemetaobject•Metaobject
Bulk Delete Bulk Delete Payload Asynchronously delete metaobjects and their associated metafields in bulk.
- Anchor to metaobjectCreatemetaobject•Metaobject
Create Create Payload Creates a new metaobject.
- Anchor to metaobjectDefinitionCreatemetaobject•Metaobject
Definition Create Definition Create Payload Creates a new metaobject definition.
- Anchor to metaobjectDefinitionDeletemetaobject•Metaobject
Definition Delete Definition Delete Payload Deletes the specified metaobject definition. Also deletes all related metafield definitions, metaobjects, and metafields asynchronously.
- Anchor to metaobjectDefinitionUpdatemetaobject•Metaobject
Definition Update Definition Update Payload Updates a metaobject definition with new settings and metafield definitions.
- Anchor to metaobjectDeletemetaobject•Metaobject
Delete Delete Payload Deletes the specified metaobject and its associated metafields.
- Anchor to metaobjectsCreatemetaobjects•Metaobjects
Create Create Payload Creates up to 25 metaobjects of the same type.
- Anchor to metaobjectUpdatemetaobject•Metaobject
Update Update Payload Updates an existing metaobject.
- Anchor to metaobjectUpsertmetaobject•Metaobject
Upsert Upsert Payload 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 mobilePlatformApplicationCreatemobile•Mobile
Platform Application Create Platform Application Create Payload Create a mobile platform application.
- Anchor to mobilePlatformApplicationDeletemobile•Mobile
Platform Application Delete Platform Application Delete Payload Delete a mobile platform application.
- Anchor to mobilePlatformApplicationUpdatemobile•Mobile
Platform Application Update Platform Application Update Payload Update a mobile platform application.
- Anchor to orderCancelorder•Order
Cancel Cancel Payload Cancels an order, with options for refunding, restocking inventory, and customer notification.
CautionOrder cancellation is irreversible. An order that has been cancelled can't be restored to its original state.
Use the
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
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
.
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
mutation instead of full order cancellation.
Learn how to build apps that integrate with order management and fulfillment processes.
- Anchor to orderCaptureorder•Order
Capture Capture Payload 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
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
NoteMulti-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.
- Anchor to orderCloseorder•Order
Close Close Payload Closes an open order.
- Anchor to orderCreateorder•Order
Create Create Payload Creates an order with attributes such as customer information, line items, and shipping and billing addresses.
Use the
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
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.
NoteIf you're using the
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:
: Used for simple updates to an order, such as changing the order's note, tags, or customer information.
: Used when you need to make significant updates to an order, such as adding or removing line items, changing quantities, or modifying discounts. The
mutation initiates an order editing session, allowing you to make multiple changes before finalizing them. Learn more about using the
mutation to edit existing orders.
Learn how to build apps that integrate with order management and fulfillment processes.
- Anchor to orderCreateMandatePaymentorder•Order
Create Mandate Payment Create Mandate Payment Payload Creates a payment for an order by mandate.
- Anchor to orderCreateManualPaymentorder•Order
Create Manual Payment Create Manual Payment Payload Create a manual payment for an order. You can only create a manual payment for an order if it isn't already fully paid.
- Anchor to orderCustomerRemoveorder•Order
Customer Remove Customer Remove Payload Removes customer from an order.
- Anchor to orderCustomerSetorder•Order
Customer Set Customer Set Payload Sets a customer on an order.
- Anchor to orderDeleteorder•Order
Delete Delete Payload Deletes an order. For more information on which orders can be deleted, refer to Delete an order.
- Anchor to orderEditAddCustomItemorder•Order
Edit Add Custom Item Edit Add Custom Item Payload 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 orderEditAddLineItemDiscountorder•Order
Edit Add Line Item Discount Edit Add Line Item Discount Payload 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 orderEditAddShippingLineorder•Order
Edit Add Shipping Line Edit Add Shipping Line Payload 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.
- Anchor to orderEditAddVariantorder•Order
Edit Add Variant Edit Add Variant Payload 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.
- Anchor to orderEditBeginorder•Order
Edit Begin Edit Begin Payload Starts editing an order. Mutations are operating on
. All order edits start with
, have any number of
* mutations made, and end with
.
- Anchor to orderEditCommitorder•Order
Edit Commit Edit Commit Payload Applies and saves staged changes to an order. Mutations are operating on
. All order edits start with
, have any number of
* mutations made, and end with
.
- Anchor to orderEditRemoveDiscountorder•Order
Edit Remove Discount Edit Remove Discount Payload 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 orderEditRemoveShippingLineorder•Order
Edit Remove Shipping Line Edit Remove Shipping Line Payload 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 orderEditSetQuantityorder•Order
Edit Set Quantity Edit Set Quantity Payload 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 orderEditUpdateDiscountorder•Order
Edit Update Discount Edit Update Discount Payload 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 orderEditUpdateShippingLineorder•Order
Edit Update Shipping Line Edit Update Shipping Line Payload 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.
- Anchor to orderInvoiceSendorder•Order
Invoice Send Invoice Send Payload Sends an email invoice for an order.
- Anchor to orderMarkAsPaidorder•Order
Mark As Paid Mark As Paid Payload Marks an order as paid by recording a payment transaction for the outstanding amount.
Use the
mutation to record payments received outside the standard checkout process. The
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
. 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.
- Anchor to orderOpenorder•Order
Open Open Payload Opens a closed order.
- Anchor to orderRiskAssessmentCreateorder•Order
Risk Assessment Create Risk Assessment Create Payload Create a risk assessment for an order.
- Anchor to orderUpdateorder•Order
Update Update Payload 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
mutation instead. The
mutation initiates an order editing session, allowing you to make multiple changes before finalizing them. Learn more about using the
mutation to edit existing orders.
If you need to remove a customer from an order, then use the
mutation instead.
Learn how to build apps that integrate with order management and fulfillment processes.
- Anchor to pageCreatepage•Page
Create Create Payload Creates a page.
- Anchor to pageDeletepage•Page
Delete Delete Payload Deletes a page.
- Anchor to pageUpdatepage•Page
Update Update Payload Updates a page.
- Anchor to paymentCustomizationActivationpayment•Payment
Customization Activation Customization Activation Payload Activates and deactivates payment customizations.
- Anchor to paymentCustomizationCreatepayment•Payment
Customization Create Customization Create Payload Creates a payment customization.
- Anchor to paymentCustomizationDeletepayment•Payment
Customization Delete Customization Delete Payload Deletes a payment customization.
- Anchor to paymentCustomizationUpdatepayment•Payment
Customization Update Customization Update Payload Updates a payment customization.
- Anchor to paymentReminderSendpayment•Payment
Reminder Send Reminder Send Payload Sends an email payment reminder for a payment schedule.
- Anchor to paymentTermsCreatepayment•Payment
Terms Create Terms Create Payload 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
.
- Anchor to paymentTermsDeletepayment•Payment
Terms Delete Terms Delete Payload 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
.
- Anchor to paymentTermsUpdatepayment•Payment
Terms Update Terms Update Payload 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
.
- Anchor to priceListCreateprice•Price
List Create List Create Payload Creates a price list. You can use the
mutation to create a new price list and associate it with a catalog. This enables you to sell your products with contextual pricing.
- Anchor to priceListDeleteprice•Price
List Delete List Delete Payload 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 priceListFixedPricesAddprice•Price
List Fixed Prices Add List Fixed Prices Add Payload Creates or updates fixed prices on a price list. You can use the
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 priceListFixedPricesByProductBulkUpdateprice•Price
List Fixed Prices By Product Bulk Update List Fixed Prices By Product Bulk Update Payload Updates the fixed prices for all variants for a product on a price list. You can use the
mutation to set or remove a fixed price for all variants of a product associated with the price list.
- Anchor to priceListFixedPricesByProductUpdateprice•Price
List Fixed Prices By Product Update List Fixed Prices By Product Update Payload Updates the fixed prices for all variants for a product on a price list. You can use the
mutation to set or remove a fixed price for all variants of a product associated with the price list.
- Anchor to priceListFixedPricesDeleteprice•Price
List Fixed Prices Delete List Fixed Prices Delete Payload Deletes specific fixed prices from a price list using a product variant ID. You can use the
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 priceListFixedPricesUpdateprice•Price
List Fixed Prices Update List Fixed Prices Update Payload Updates fixed prices on a price list. You can use the
mutation to set a fixed price for specific product variants or to delete prices for variants associated with the price list.
- Anchor to priceListUpdateprice•Price
List Update List Update Payload Updates a price list. If you modify the currency, then any fixed prices set on the price list will be deleted.
- Anchor to privacyFeaturesDisableprivacy•Privacy
Features Disable Features Disable Payload Disable a shop's privacy features.
- Anchor to productBundleCreateproduct•Product
Bundle Create Bundle Create Payload Creates a new componentized product.
- Anchor to productBundleUpdateproduct•Product
Bundle Update Bundle Update Payload Updates a componentized product.
- Anchor to productCreateproduct•Product
Create Create Payload Creates a product with attributes such as title, description, vendor, and media.
The
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
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
mutation.
NoteThe
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:
: Used to publish the product and make it available to customers. The
mutation creates products in an unpublished state by default, so you must perform a separate operation to publish the product.
: Used to update a single product, such as changing the product's title, description, vendor, or associated media.
: 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.
- Anchor to productDeleteproduct•Product
Delete Delete Payload Permanently deletes a product and all its associated data, including variants, media, publications, and inventory items.
Use the
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
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
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.
CautionProduct 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 tofalse
to run the deletion asynchronously, which returns athat you can monitor for completion status.
If you need more granular control over product cleanup, consider using these alternative mutations:
: Update the product status to archived or unpublished instead of deleting.
: Delete specific variants while keeping the product.
: Delete the choices available for a product, such as size, color, or material.
Learn more about the product model.
- Anchor to productDuplicateproduct•Product
Duplicate Duplicate Payload 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
.
Metafield values are not duplicated if the unique values capability is enabled.
- Anchor to productFeedCreateproduct•Product
Feed Create Feed Create Payload Creates a product feed for a specific publication.
- Anchor to productFeedDeleteproduct•Product
Feed Delete Feed Delete Payload Deletes a product feed for a specific publication.
- Anchor to productFullSyncproduct•Product
Full Sync Full Sync Payload Runs the full product sync for a given shop.
- Anchor to productJoinSellingPlanGroupsproduct•Product
Join Selling Plan Groups Join Selling Plan Groups Payload Adds multiple selling plan groups to a product.
- Anchor to productLeaveSellingPlanGroupsproduct•Product
Leave Selling Plan Groups Leave Selling Plan Groups Payload Removes multiple groups from a product.
- Anchor to productOptionsCreateproduct•Product
Options Create Options Create Payload 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
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.
NoteThe
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
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 productOptionsDeleteproduct•Product
Options Delete Options Delete Payload Deletes one or more options from a product. Product options define the choices available for a product, such as size, color, or material.
CautionUse the
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.
NoteThe
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 productOptionsReorderproduct•Product
Options Reorder Options Reorder Payload Reorders the options and option values on a product, updating the order in which product variants are presented to customers.
The
mutation accepts a list of product options, each identified by
id
orname
, and an optional list of values (also byid
orname
) specifying the new order. The order of options in the mutation's input determines their new positions (for example, the first option becomesoption1
). 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:
"Red / Small"
"Green / Medium"
"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:
"Small / Green"
"Small / Red"
"Small / Blue"
"Medium / Green"
Use the
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.
NoteThe
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.
- Anchor to productOptionUpdateproduct•Product
Option Update Option Update Payload 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
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.
NoteThe
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.
- Anchor to productReorderMediaproduct•Product
Reorder Media Reorder Media Payload Asynchronously reorders the media attached to a product.
- Anchor to productSetproduct•Product
Set Set Payload Performs multiple operations to create or update products in a single request.
Use the
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
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
, andvariants
.For all other field types: Updates only the included fields. Any omitted fields will remain unchanged.
NoteBy 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
in one of the following modes:
- Synchronously: Returns the updated product in the response.
- Asynchronously: Returns a
object. Use the
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.
- Anchor to productUpdateproduct•Product
Update Update Payload Updates a product with attributes such as title, description, vendor, and media.
The
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
mutation doesn't support updating product variants. To update multiple product variants for a single product and manage prices, use the
mutation.
NoteThe
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:
: Used to perform multiple operations on products, such as creating or modifying product options and variants.
: 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 productVariantAppendMediaproduct•Product
Variant Append Media Variant Append Media Payload Appends media from a product to variants of the product.
- Anchor to productVariantDetachMediaproduct•Product
Variant Detach Media Variant Detach Media Payload Detaches media from product variants.
- Anchor to productVariantJoinSellingPlanGroupsproduct•Product
Variant Join Selling Plan Groups Variant Join Selling Plan Groups Payload Adds multiple selling plan groups to a product variant.
- Anchor to productVariantLeaveSellingPlanGroupsproduct•Product
Variant Leave Selling Plan Groups Variant Leave Selling Plan Groups Payload Remove multiple groups from a product variant.
- Anchor to productVariantRelationshipBulkUpdateproduct•Product
Variant Relationship Bulk Update Variant Relationship Bulk Update Payload Creates new bundles, updates existing bundles, and removes bundle components for one or multiple bundles.
- Anchor to productVariantsBulkCreateproduct•Product
Variants Bulk Create Variants Bulk Create Payload 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
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
NoteBy 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:
: Updates multiple product variants for a single product in one operation.
: 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 productVariantsBulkDeleteproduct•Product
Variants Bulk Delete Variants Bulk Delete Payload Deletes multiple variants in a single product. This mutation can be called directly or via the bulkOperation.
- Anchor to productVariantsBulkReorderproduct•Product
Variants Bulk Reorder Variants Bulk Reorder Payload Reorders multiple variants in a single product. This mutation can be called directly or via the bulkOperation.
- Anchor to productVariantsBulkUpdateproduct•Product
Variants Bulk Update Variants Bulk Update Payload 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
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
NoteBy 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
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.
- Anchor to publicationCreatepublication•Publication
Create Create Payload Creates a publication.
- Anchor to publicationDeletepublication•Publication
Delete Delete Payload Deletes a publication.
- Anchor to publicationUpdatepublication•Publication
Update Update Payload Updates a publication.
- Anchor to publishablePublishpublishable•Publishable
Publish Publish Payload 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 () can be published only on online stores.
- Anchor to publishablePublishToCurrentChannelpublishable•Publishable
Publish To Current Channel Publish To Current Channel Payload 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 () can be published only on online stores.
- Anchor to publishableUnpublishpublishable•Publishable
Unpublish Unpublish Payload 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 publishableUnpublishToCurrentChannelpublishable•Publishable
Unpublish To Current Channel Unpublish To Current Channel Payload 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 pubSubServerPixelUpdatepub•Pub
Sub Server Pixel Update Sub Server Pixel Update Payload Updates the server pixel to connect to a Google PubSub endpoint. Running this mutation deletes any previous subscriptions for the server pixel.
- Anchor to quantityPricingByVariantUpdatequantity•Quantity
Pricing By Variant Update Pricing By Variant Update Payload Updates quantity pricing on a price list. You can use the
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.
- Anchor to quantityRulesAddquantity•Quantity
Rules Add Rules Add Payload Creates or updates existing quantity rules on a price list. You can use the
mutation to set order level minimums, maximumums and increments for specific product variants.
- Anchor to quantityRulesDeletequantity•Quantity
Rules Delete Rules Delete Payload Deletes specific quantity rules from a price list using a product variant ID. You can use the
mutation to delete a set of quantity rules from a price list.
- Anchor to refundCreaterefund•Refund
Create Create Payload Creates a refund for an order, allowing you to process returns and issue payments back to customers.
Use the
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
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- Anchor to removeFromReturnremove•Remove
From Return From Return Payload Removes return and/or exchange lines from a return.
- Anchor to returnApproveRequestreturn•Return
Approve Request Approve Request Payload Approves a customer's return request. If this mutation is successful, then the
Return.status
field of the approved return is set to.
- Anchor to returnCancelreturn•Return
Cancel Cancel Payload 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).
- Anchor to returnClosereturn•Return
Close Close Payload 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.
- Anchor to returnCreatereturn•Return
Create Create Payload 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
mutation when your workflow involves approving or declining requested returns outside of the Shopify platform.
The
mutation performs the following actions:
- Creates a return in the
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
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.- Creates a return in the
- Anchor to returnDeclineRequestreturn•Return
Decline Request Decline Request Payload Declines a return on an order. When a return is declined, each
can be associated to a new return. Use the
or
mutation to initiate a new return.
- Anchor to returnProcessreturn•Return
Process Process Payload Process a return.
- Anchor to returnReopenreturn•Return
Reopen Reopen Payload Reopens a closed return.
- Anchor to returnRequestreturn•Return
Request Request Payload A customer's return request that hasn't been approved or declined. This mutation sets the value of the
Return.status
field to. To create a return that has the
Return.status
field set to, use the
mutation.
- Anchor to reverseDeliveryCreateWithShippingreverse•Reverse
Delivery Create With Shipping Delivery Create With Shipping Payload Creates a new reverse delivery with associated external shipping information.
- Anchor to reverseDeliveryShippingUpdatereverse•Reverse
Delivery Shipping Update Delivery Shipping Update Payload Updates a reverse delivery with associated external shipping information.
- Anchor to reverseFulfillmentOrderDisposereverse•Reverse
Fulfillment Order Dispose Fulfillment Order Dispose Payload Disposes reverse fulfillment order line items.
- Anchor to savedSearchCreatesaved•Saved
Search Create Search Create Payload Creates a saved search.
- Anchor to savedSearchDeletesaved•Saved
Search Delete Search Delete Payload Delete a saved search.
- Anchor to savedSearchUpdatesaved•Saved
Search Update Search Update Payload Updates a saved search.
- Anchor to scriptTagCreatescript•Script
Tag Create Tag Create Payload - 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 deprecationScript 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.
- Anchor to scriptTagDeletescript•Script
Tag Delete Tag Delete Payload - 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 deprecationScript 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.
- Anchor to scriptTagUpdatescript•Script
Tag Update Tag Update Payload - 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 deprecationScript 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.
- Anchor to segmentCreatesegment•Segment
Create Create Payload Creates a segment.
- Anchor to segmentDeletesegment•Segment
Delete Delete Payload Deletes a segment.
- Anchor to segmentUpdatesegment•Segment
Update Update Payload Updates a segment.
- Anchor to sellingPlanGroupAddProductsselling•Selling
Plan Group Add Products Plan Group Add Products Payload Adds multiple products to a selling plan group.
- Anchor to sellingPlanGroupAddProductVariantsselling•Selling
Plan Group Add Product Variants Plan Group Add Product Variants Payload Adds multiple product variants to a selling plan group.
- Anchor to sellingPlanGroupCreateselling•Selling
Plan Group Create Plan Group Create Payload Creates a Selling Plan Group.
- Anchor to sellingPlanGroupDeleteselling•Selling
Plan Group Delete Plan Group Delete Payload Delete a Selling Plan Group. This does not affect subscription contracts.
- Anchor to sellingPlanGroupRemoveProductsselling•Selling
Plan Group Remove Products Plan Group Remove Products Payload Removes multiple products from a selling plan group.
- Anchor to sellingPlanGroupRemoveProductVariantsselling•Selling
Plan Group Remove Product Variants Plan Group Remove Product Variants Payload Removes multiple product variants from a selling plan group.
- Anchor to sellingPlanGroupUpdateselling•Selling
Plan Group Update Plan Group Update Payload Update a Selling Plan Group.
- Anchor to serverPixelCreateserver•Server
Pixel Create Pixel Create Payload 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.
- Anchor to serverPixelDeleteserver•Server
Pixel Delete Pixel Delete Payload Deletes the Server Pixel associated with the current app & shop.
- Anchor to shippingPackageDeleteshipping•Shipping
Package Delete Package Delete Payload Deletes a shipping package.
- Anchor to shippingPackageMakeDefaultshipping•Shipping
Package Make Default Package Make Default Payload Set a shipping package as the default. The default shipping package is the one used to calculate shipping costs on checkout.
- Anchor to shippingPackageUpdateshipping•Shipping
Package Update Package Update Payload Updates a shipping package.
- Anchor to shopifyPaymentsPayoutAlternateCurrencyCreateshopify•Shopify
Payments Payout Alternate Currency Create Payments Payout Alternate Currency Create Payload Creates an alternate currency payout for a Shopify Payments account.
- Anchor to shopLocaleDisableshop•Shop
Locale Disable Locale Disable Payload Deletes a locale for a shop. This also deletes all translations of this locale.
- Anchor to shopLocaleEnableshop•Shop
Locale Enable Locale Enable Payload Adds a locale for a shop. The newly added locale is in the unpublished state.
- Anchor to shopLocaleUpdateshop•Shop
Locale Update Locale Update Payload Updates a locale for a shop.
- Anchor to shopPolicyUpdateshop•Shop
Policy Update Policy Update Payload Updates a shop policy.
- Anchor to shopResourceFeedbackCreateshop•Shop
Resource Feedback Create Resource Feedback Create Payload The
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:
or
success
. You need to send afeedback 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
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
mutation to push the latest state of a shop or its resources to Shopify.
- Anchor to stagedUploadsCreatestaged•Staged
Uploads Create Uploads Create Payload Creates staged upload targets for file uploads such as images, videos, and 3D models.
Use the
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
directly by providing the file content inline.
The
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
as the
in subsequent mutations like
.
This approach provides better performance for large files, handles network interruptions gracefully, and ensures secure file transfers to Shopify's storage infrastructure.
After creating staged upload targets, complete the process by:
- Uploading files: Send your files to the returned
url
using the providedparameters
for authentication - Creating file assets: Use the
as the
in mutations such as:
Learn more about uploading media to Shopify.
- Anchor to standardMetafieldDefinitionEnablestandard•Standard
Metafield Definition Enable Metafield Definition Enable Payload Activates the specified standard metafield definition from its template.
Refer to the list of standard metafield definition templates.
- Anchor to standardMetafieldDefinitionsEnablestandard•Standard
Metafield Definitions Enable Metafield Definitions Enable Payload Enables multiple specified standard metafield definitions from their templates as a single transaction. This API is idempotent so any previously-enabled standard definitions will not cause a failure. However, invalid inputs or other user errors will prevent all of the requested definitions from being enabled.
Refer to the list of standard metafield definition templates.
- Anchor to standardMetaobjectDefinitionEnablestandard•Standard
Metaobject Definition Enable Metaobject Definition Enable Payload Enables the specified standard metaobject definition from its template.
- Anchor to storeCreditAccountCreditstore•Store
Credit Account Credit Credit Account Credit Payload 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 storeCreditAccountDebitstore•Store
Credit Account Debit Credit Account Debit Payload Creates a debit transaction that decreases the store credit account balance by the given amount.
- Anchor to storefrontAccessTokenCreatestorefront•Storefront
Access Token Create Access Token Create Payload 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.
- Anchor to storefrontAccessTokenDeletestorefront•Storefront
Access Token Delete Access Token Delete Payload Deletes a storefront access token.
- Anchor to subscriptionBillingAttemptCreatesubscription•Subscription
Billing Attempt Create Billing Attempt Create Payload Creates a new subscription billing attempt. For more information, refer to Create a subscription contract.
- Anchor to subscriptionBillingCycleBulkChargesubscription•Subscription
Billing Cycle Bulk Charge Billing Cycle Bulk Charge Payload 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 subscriptionBillingCycleBulkSearchsubscription•Subscription
Billing Cycle Bulk Search Billing Cycle Bulk Search Payload 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 subscriptionBillingCycleChargesubscription•Subscription
Billing Cycle Charge Billing Cycle Charge Payload 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 subscriptionBillingCycleContractDraftCommitsubscription•Subscription
Billing Cycle Contract Draft Commit Billing Cycle Contract Draft Commit Payload Commits the updates of a Subscription Billing Cycle Contract draft.
- Anchor to subscriptionBillingCycleContractDraftConcatenatesubscription•Subscription
Billing Cycle Contract Draft Concatenate Billing Cycle Contract Draft Concatenate Payload Concatenates a contract to a Subscription Draft.
- Anchor to subscriptionBillingCycleContractEditsubscription•Subscription
Billing Cycle Contract Edit Billing Cycle Contract Edit Payload Edit the contents of a subscription contract for the specified billing cycle.
- Anchor to subscriptionBillingCycleEditDeletesubscription•Subscription
Billing Cycle Edit Delete Billing Cycle Edit Delete Payload Delete the schedule and contract edits of the selected subscription billing cycle.
- Anchor to subscriptionBillingCycleEditsDeletesubscription•Subscription
Billing Cycle Edits Delete Billing Cycle Edits Delete Payload Delete the current and future schedule and contract edits of a list of subscription billing cycles.
- Anchor to subscriptionBillingCycleScheduleEditsubscription•Subscription
Billing Cycle Schedule Edit Billing Cycle Schedule Edit Payload Modify the schedule of a specific billing cycle.
- Anchor to subscriptionBillingCycleSkipsubscription•Subscription
Billing Cycle Skip Billing Cycle Skip Payload Skips a Subscription Billing Cycle.
- Anchor to subscriptionBillingCycleUnskipsubscription•Subscription
Billing Cycle Unskip Billing Cycle Unskip Payload Unskips a Subscription Billing Cycle.
- Anchor to subscriptionContractActivatesubscription•Subscription
Contract Activate Contract Activate Payload Activates a Subscription Contract. Contract status must be either active, paused, or failed.
- Anchor to subscriptionContractAtomicCreatesubscription•Subscription
Contract Atomic Create Contract Atomic Create Payload Creates a Subscription Contract.
- Anchor to subscriptionContractCancelsubscription•Subscription
Contract Cancel Contract Cancel Payload Cancels a Subscription Contract.
- Anchor to subscriptionContractCreatesubscription•Subscription
Contract Create Contract Create Payload 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 subscriptionContractExpiresubscription•Subscription
Contract Expire Contract Expire Payload Expires a Subscription Contract.
- Anchor to subscriptionContractFailsubscription•Subscription
Contract Fail Contract Fail Payload Fails a Subscription Contract.
- Anchor to subscriptionContractPausesubscription•Subscription
Contract Pause Contract Pause Payload Pauses a Subscription Contract.
- Anchor to subscriptionContractProductChangesubscription•Subscription
Contract Product Change Contract Product Change Payload Allows for the easy change of a Product in a Contract or a Product price change.
- Anchor to subscriptionContractSetNextBillingDatesubscription•Subscription
Contract Set Next Billing Date Contract Set Next Billing Date Payload 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 subscriptionContractUpdatesubscription•Subscription
Contract Update Contract Update Payload 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 subscriptionDraftCommitsubscription•Subscription
Draft Commit Draft Commit Payload Commits the updates of a Subscription Contract draft.
- Anchor to subscriptionDraftDiscountAddsubscription•Subscription
Draft Discount Add Draft Discount Add Payload Adds a subscription discount to a subscription draft.
- Anchor to subscriptionDraftDiscountCodeApplysubscription•Subscription
Draft Discount Code Apply Draft Discount Code Apply Payload Applies a code discount on the subscription draft.
- Anchor to subscriptionDraftDiscountRemovesubscription•Subscription
Draft Discount Remove Draft Discount Remove Payload Removes a subscription discount from a subscription draft.
- Anchor to subscriptionDraftDiscountUpdatesubscription•Subscription
Draft Discount Update Draft Discount Update Payload Updates a subscription discount on a subscription draft.
- Anchor to subscriptionDraftFreeShippingDiscountAddsubscription•Subscription
Draft Free Shipping Discount Add Draft Free Shipping Discount Add Payload Adds a subscription free shipping discount to a subscription draft.
- Anchor to subscriptionDraftFreeShippingDiscountUpdatesubscription•Subscription
Draft Free Shipping Discount Update Draft Free Shipping Discount Update Payload Updates a subscription free shipping discount on a subscription draft.
- Anchor to subscriptionDraftLineAddsubscription•Subscription
Draft Line Add Draft Line Add Payload Adds a subscription line to a subscription draft.
- Anchor to subscriptionDraftLineRemovesubscription•Subscription
Draft Line Remove Draft Line Remove Payload Removes a subscription line from a subscription draft.
- Anchor to subscriptionDraftLineUpdatesubscription•Subscription
Draft Line Update Draft Line Update Payload Updates a subscription line on a subscription draft.
- Anchor to subscriptionDraftUpdatesubscription•Subscription
Draft Update Draft Update Payload Updates a Subscription Draft.
- •Tags
Add Payload Add tags to an order, a draft order, a customer, a product, or an online store article.
- •Tags
Remove Payload Remove tags from an order, a draft order, a customer, a product, or an online store article.
- Anchor to taxAppConfiguretax•Tax
App Configure App Configure Payload Allows tax app configurations for tax partners.
- Anchor to taxSummaryCreatetax•Tax
Summary Create Summary Create Payload Creates a tax summary for a given order. If both an order ID and a start and end time are provided, the order ID will be used.
- Anchor to themeCreatetheme•Theme
Create Create Payload 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.
- Anchor to themeDeletetheme•Theme
Delete Delete Payload Deletes a theme.
- Anchor to themeDuplicatetheme•Theme
Duplicate Duplicate Payload Duplicates a theme.
- Anchor to themeFilesCopytheme•Theme
Files Copy Files Copy Payload Copy theme files. Copying to existing theme files will overwrite them.
- Anchor to themeFilesDeletetheme•Theme
Files Delete Files Delete Payload Deletes a theme's files.
- Anchor to themeFilesUpserttheme•Theme
Files Upsert Files Upsert Payload Create or update theme files.
- Anchor to themePublishtheme•Theme
Publish Publish Payload Publishes a theme.
- Anchor to themeUpdatetheme•Theme
Update Update Payload Updates a theme.
- Anchor to transactionVoidtransaction•Transaction
Void Void Payload Trigger the voiding of an uncaptured authorization transaction.
- Anchor to translationsRegistertranslations•Translations
Register Register Payload Creates or updates translations.
- Anchor to translationsRemovetranslations•Translations
Remove Remove Payload Deletes translations.
- Anchor to urlRedirectBulkDeleteAllurl•Url
Redirect Bulk Delete All Redirect Bulk Delete All Payload Asynchronously delete URL redirects in bulk.
- Anchor to urlRedirectBulkDeleteByIdsurl•Url
Redirect Bulk Delete By Ids Redirect Bulk Delete By Ids Payload Asynchronously delete URLRedirect objects in bulk by IDs. Learn more about URLRedirect objects.
- Anchor to urlRedirectBulkDeleteBySavedSearchurl•Url
Redirect Bulk Delete By Saved Search Redirect Bulk Delete By Saved Search Payload Asynchronously delete redirects in bulk.
- Anchor to urlRedirectBulkDeleteBySearchurl•Url
Redirect Bulk Delete By Search Redirect Bulk Delete By Search Payload Asynchronously delete redirects in bulk.
- Anchor to urlRedirectCreateurl•Url
Redirect Create Redirect Create Payload - Anchor to urlRedirectDeleteurl•Url
Redirect Delete Redirect Delete Payload - Anchor to urlRedirectImportCreateurl•Url
Redirect Import Create Redirect Import Create Payload - Anchor to urlRedirectImportSubmiturl•Url
Redirect Import Submit Redirect Import Submit Payload - Anchor to urlRedirectUpdateurl•Url
Redirect Update Redirect Update Payload Updates a URL redirect.
- Anchor to validationCreatevalidation•Validation
Create Create Payload Creates a validation.
- Anchor to validationDeletevalidation•Validation
Delete Delete Payload Deletes a validation.
- Anchor to validationUpdatevalidation•Validation
Update Update Payload Update a validation.
- Anchor to webhookSubscriptionCreatewebhook•Webhook
Subscription Create Subscription Create Payload 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 webhookSubscriptionDeletewebhook•Webhook
Subscription Delete Subscription Delete Payload 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 webhookSubscriptionUpdatewebhook•Webhook
Subscription Update Subscription Update Payload 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.- Anchor to webPixelCreateweb•Web
Pixel Create Pixel Create Payload Activate a web pixel extension by creating a web pixel record on the store where you installed your app.
When you run the
mutation, Shopify validates it against the settings definition in
shopify.extension.toml
. If thesettings
input field doesn't match the schema that you defined, then the mutation fails. Learn how to define web pixel settings.- Anchor to webPixelDeleteweb•Web
Pixel Delete Pixel Delete Payload Deletes the web pixel shop settings.
- Anchor to webPixelUpdateweb•Web
Pixel Update Pixel Update Payload Activate a web pixel extension by updating a web pixel record on the store where you installed your app.
When you run the
mutation, Shopify validates it against the settings definition in
shopify.extension.toml
. If thesettings
input field doesn't match the schema that you defined, then the mutation fails. Learn how to define web pixel settings.- Anchor to webPresenceCreateweb•Web
Presence Create Presence Create Payload Creates a web presence.
- Anchor to webPresenceDeleteweb•Web
Presence Delete Presence Delete Payload Deletes a web presence.
- Anchor to webPresenceUpdateweb•Web
Presence Update Presence Update Payload Updates a web presence.
Deprecated fields
- Anchor to abandonmentEmailStateUpdateabandonment•Abandonment
Email State Update Email State Update Payload Deprecated - Anchor to collectionPublishcollection•Collection
Publish Publish Payload Deprecated - Anchor to collectionUnpublishcollection•Collection
Unpublish Unpublish Payload Deprecated - Anchor to companyLocationAssignTaxExemptionscompany•Company
Location Assign Tax Exemptions Location Assign Tax Exemptions Payload Deprecated - Anchor to companyLocationCreateTaxRegistrationcompany•Company
Location Create Tax Registration Location Create Tax Registration Payload Deprecated - Anchor to companyLocationRevokeTaxExemptionscompany•Company
Location Revoke Tax Exemptions Location Revoke Tax Exemptions Payload Deprecated - Anchor to companyLocationRevokeTaxRegistrationcompany•Company
Location Revoke Tax Registration Location Revoke Tax Registration Payload Deprecated - Anchor to draftOrderCreateMerchantCheckoutdraft•Draft
Order Create Merchant Checkout Order Create Merchant Checkout Payload Deprecated - Anchor to eventBridgeWebhookSubscriptionCreateevent•Event
Bridge Webhook Subscription Create Bridge Webhook Subscription Create Payload Deprecated - Anchor to eventBridgeWebhookSubscriptionUpdateevent•Event
Bridge Webhook Subscription Update Bridge Webhook Subscription Update Payload Deprecated - Anchor to fulfillmentCreateV2fulfillment•Fulfillment
Create V2 Create V2Payload Deprecated - Anchor to fulfillmentTrackingInfoUpdateV2fulfillment•Fulfillment
Tracking Info Update V2 Tracking Info Update V2Payload Deprecated - Anchor to inventoryAdjustQuantityinventory•Inventory
Adjust Quantity Adjust Quantity Payload Deprecated - Anchor to inventoryBulkAdjustQuantityAtLocationinventory•Inventory
Bulk Adjust Quantity At Location Bulk Adjust Quantity At Location Payload Deprecated - Anchor to inventorySetOnHandQuantitiesinventory•Inventory
Set On Hand Quantities Set On Hand Quantities Payload Deprecated - Anchor to marketRegionDeletemarket•Market
Region Delete Region Delete Payload Deprecated - Anchor to marketRegionsCreatemarket•Market
Regions Create Regions Create Payload Deprecated - Anchor to marketRegionsDeletemarket•Market
Regions Delete Regions Delete Payload Deprecated - Anchor to marketWebPresenceCreatemarket•Market
Web Presence Create Web Presence Create Payload Deprecated - Anchor to marketWebPresenceDeletemarket•Market
Web Presence Delete Web Presence Delete Payload Deprecated - Anchor to marketWebPresenceUpdatemarket•Market
Web Presence Update Web Presence Update Payload Deprecated - Anchor to orderEditRemoveLineItemDiscountorder•Order
Edit Remove Line Item Discount Edit Remove Line Item Discount Payload Deprecated - Anchor to productChangeStatusproduct•Product
Change Status Change Status Payload Deprecated - Anchor to productCreateMediaproduct•Product
Create Media Create Media Payload Deprecated - Anchor to productDeleteMediaproduct•Product
Delete Media Delete Media Payload Deprecated - Anchor to productPublishproduct•Product
Publish Publish Payload Deprecated - Anchor to productUnpublishproduct•Product
Unpublish Unpublish Payload Deprecated - Anchor to productUpdateMediaproduct•Product
Update Media Update Media Payload Deprecated - Anchor to pubSubWebhookSubscriptionCreatepub•Pub
Sub Webhook Subscription Create Sub Webhook Subscription Create Payload Deprecated - Anchor to pubSubWebhookSubscriptionUpdatepub•Pub
Sub Webhook Subscription Update Sub Webhook Subscription Update Payload Deprecated - Anchor to returnLineItemRemoveFromReturnreturn•Return
Line Item Remove From Return Line Item Remove From Return Payload Deprecated - Anchor to returnRefundreturn•Return
Refund Refund Payload Deprecated - Anchor to stagedUploadTargetGeneratestaged•Staged
Upload Target Generate Upload Target Generate Payload Deprecated - Anchor to stagedUploadTargetsGeneratestaged•Staged
Upload Targets Generate Upload Targets Generate Payload Deprecated