--- title: Mutation - GraphQL Admin description: The schema's entry point for all mutation operations. api_version: 2025-10 api_name: admin type: object api_type: graphql source_url: html: https://shopify.dev/docs/api/admin-graphql/latest/objects/mutation md: https://shopify.dev/docs/api/admin-graphql/latest/objects/mutation.md --- # Mutation object The schema's entry point for all mutation operations. ## Fields * abandonment​Update​Activities​Delivery​Statuses [Abandonment​Update​Activities​Delivery​Statuses​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/AbandonmentUpdateActivitiesDeliveryStatusesPayload) Updates the marketing activities delivery statuses for an abandonment. * app​Purchase​One​Time​Create [App​Purchase​One​Time​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/AppPurchaseOneTimeCreatePayload) Creates a one-time charge for app features or services that don't require recurring billing. This mutation is ideal for apps that sell individual features, premium content, or services on a per-use basis rather than subscription models. For example, a design app might charge merchants once for premium templates, or a marketing app could bill for individual campaign setups without ongoing monthly fees. Use the `AppPurchaseOneTimeCreate` mutation to: * Charge for premium features or content purchases * Bill for professional services or setup fees * Generate revenue from one-time digital product sales The mutation returns a confirmation URL that merchants must visit to approve the charge. Test and development stores are not charged, allowing safe testing of billing flows. Explore one-time billing options on the [app purchases page](https://shopify.dev/docs/apps/launch/billing/support-one-time-purchases). * app​Revoke​Access​Scopes [App​Revoke​Access​Scopes​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/AppRevokeAccessScopesPayload) Revokes previously granted access scopes from an app installation, allowing merchants to reduce an app's permissions without completely uninstalling it. This provides granular control over what data and functionality apps can access. For example, if a merchant no longer wants an app to access customer information but still wants to use its inventory features, they can revoke the customer-related scopes while keeping inventory permissions active. Use the `appRevokeAccessScopes` mutation to: * Remove specific permissions from installed apps * Maintain app functionality while minimizing data exposure The mutation returns details about which scopes were successfully revoked and any errors that prevented certain permissions from being removed. Learn more about [managing app permissions](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/manage-access-scopes#revoke-granted-scopes-dynamically). * app​Subscription​Cancel [App​Subscription​Cancel​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/AppSubscriptionCancelPayload) Cancels an active app subscription, stopping future billing cycles. The cancellation behavior depends on the `replacementBehavior` setting - it can either disable auto-renewal (allowing the subscription to continue until the end of the current billing period) or immediately cancel with prorated refunds. When a merchant decides to discontinue using subscription features, this mutation provides a clean cancellation workflow that respects billing periods and merchant expectations. Use the `AppSubscriptionCancel` mutation to: * Process merchant-initiated subscription cancellations * Terminate subscriptions due to policy violations or account issues * Handle subscription cancellations during app uninstallation workflows The cancellation timing and merchant access depends on the `replacementBehavior` setting and the app's specific implementation of subscription management. For subscription lifecycle management and cancellation best practices, consult the [subscription management guide](https://shopify.dev/docs/apps/launch/billing/subscription-billing). * app​Subscription​Create [App​Subscription​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/AppSubscriptionCreatePayload) Allows an app to charge a store for features or services on a recurring basis. * app​Subscription​Line​Item​Update [App​Subscription​Line​Item​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/AppSubscriptionLineItemUpdatePayload) Updates the capped amount on the usage pricing plan of an app subscription line item. * app​Subscription​Trial​Extend [App​Subscription​Trial​Extend​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/AppSubscriptionTrialExtendPayload) Extends the trial period for an existing app subscription, giving merchants additional time to evaluate premium features before committing to paid billing. This mutation provides flexibility in trial management and can improve conversion rates by accommodating merchant needs. Trial extensions are particularly valuable when merchants need more time to fully evaluate complex features, experience technical setup delays, or require additional approval processes within their organization before committing to paid subscriptions. Use the `AppSubscriptionTrialExtend` mutation to: * Accommodate merchant requests for additional evaluation time * Compensate for service interruptions during trial periods * Support complex enterprise evaluation and approval workflows * Implement customer success strategies that improve trial-to-paid conversion * Handle technical onboarding delays that impact trial effectiveness The extension modifies the existing trial end date, allowing continued access to subscription features without immediate billing. This approach maintains subscription continuity while providing merchants the flexibility they need for thorough feature evaluation. Trial extension strategies and conversion techniques are covered in the [offer free trials guide](https://shopify.dev/docs/apps/launch/billing/offer-free-trials). * app​Uninstall [App​Uninstall​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/AppUninstallPayload) Uninstalls an app from a shop. This mutation can only be used by apps to uninstall themselves. Apps with the `apps` access scope can uninstall other apps by providing the app ID in the input parameter. Use the `appUninstall` mutation to programmatically remove apps from shops. The mutation returns the uninstalled app and any errors that occurred during the uninstallation process. Learn more about [app lifecycle management](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/uninstall-app-api-request). * app​Usage​Record​Create [App​Usage​Record​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/AppUsageRecordCreatePayload) Enables an app to charge a store for features or services on a per-use basis. The usage charge value is counted towards the `cappedAmount` limit that was specified in the `appUsagePricingDetails` field when the app subscription was created. If you create an app usage charge that causes the total usage charges in a billing interval to exceed the capped amount, then a `Total price exceeds balance remaining` error is returned. * article​Create [Article​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ArticleCreatePayload) Creates an article. * article​Delete [Article​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ArticleDeletePayload) Deletes an article. * article​Update [Article​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ArticleUpdatePayload) Updates an article. * backup​Region​Update [Backup​Region​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/BackupRegionUpdatePayload) Update the backup region that is used when we have no better signal of what region a buyer is in. * blog​Create [Blog​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/BlogCreatePayload) Creates a blog. * blog​Delete [Blog​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/BlogDeletePayload) Deletes a blog. * blog​Update [Blog​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/BlogUpdatePayload) Updates a blog. * bulk​Operation​Cancel [Bulk​Operation​Cancel​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/BulkOperationCancelPayload) Starts the cancelation process of a running bulk operation. There may be a short delay from when a cancelation starts until the operation is actually canceled. * bulk​Operation​Run​Mutation [Bulk​Operation​Run​Mutation​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/BulkOperationRunMutationPayload) Creates and runs a bulk operation mutation. To learn how to bulk import large volumes of data asynchronously, refer to the [bulk import data guide](https://shopify.dev/api/usage/bulk-operations/imports). * bulk​Operation​Run​Query [Bulk​Operation​Run​Query​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/BulkOperationRunQueryPayload) Creates and runs a bulk operation query. See the [bulk operations guide](https://shopify.dev/api/usage/bulk-operations/queries) for more details. * bulk​Product​Resource​Feedback​Create [Bulk​Product​Resource​Feedback​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/BulkProductResourceFeedbackCreatePayload) Creates product feedback for multiple products. * carrier​Service​Create [Carrier​Service​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CarrierServiceCreatePayload) Creates a new carrier service. * carrier​Service​Delete [Carrier​Service​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CarrierServiceDeletePayload) Removes an existing carrier service. * carrier​Service​Update [Carrier​Service​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CarrierServiceUpdatePayload) Updates a carrier service. Only the app that creates a carrier service can update it. * cart​Transform​Create [Cart​Transform​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CartTransformCreatePayload) Creates a cart transform function that lets merchants customize how products are bundled and presented during checkout. This gives merchants powerful control over their merchandising strategy by allowing apps to modify cart line items programmatically, supporting advanced approaches like dynamic bundles or personalized product recommendations. For example, a bundle app might create a cart transform that automatically groups related products (like a camera, lens, and case) into a single bundle line item when customers add them to their cart, complete with bundle pricing and unified presentation. Use `CartTransformCreate` to: * Deploy custom bundling logic to merchant stores * Enable dynamic product grouping during checkout * Implement personalized product recommendations * Create conditional offers based on cart contents * Support complex pricing strategies for product combinations The mutation processes synchronously and returns the created cart transform along with any validation errors. Once created, the cart transform function becomes active for the shop and will process cart modifications according to your defined logic. Cart transforms integrate with [Shopify Functions](https://shopify.dev/docs/api/functions) to provide powerful customization capabilities while maintaining checkout performance. Cart Transform functions can be configured to block checkout on failure or allow graceful degradation, giving you control over how errors are handled in the customer experience. Learn more about [customized bundles](https://shopify.dev/docs/apps/selling-strategies/bundles/add-a-customized-bundle). * cart​Transform​Delete [Cart​Transform​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CartTransformDeletePayload) Removes an existing cart transform function from the merchant's store, disabling any customized bundle or cart modification logic it provided. This mutation persistently deletes the transform configuration and stops all associated cart processing. For example, when discontinuing a bundle app or removing specific merchandising features, you would delete the corresponding cart transform to ensure customers no longer see the bundled products or modified cart behavior. Use `CartTransformDelete` to: * Deactivate customized bundle logic when removing app features * Clean up unused transform functions * Disable cart modifications during app uninstallation * Remove outdated merchandising strategies * Restore default cart behavior for merchants The deletion processes immediately and returns the ID of the removed cart transform for confirmation. Once deleted, the transform function stops processing new cart operations, though existing cart sessions may retain their current state until refresh. This ensures a clean transition without disrupting active customer sessions. Consider the timing of deletions carefully, as removing transforms during peak shopping periods could affect customer experience if they have active carts with transformed items. Learn more about [managing cart transforms](https://shopify.dev/docs/apps/selling-strategies/bundles). * catalog​Context​Update [Catalog​Context​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CatalogContextUpdatePayload) Updates the context of a catalog. * catalog​Create [Catalog​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CatalogCreatePayload) Creates a new catalog. For a complete explanation of a [`Catalog`](https://shopify.dev/api/admin-graphql/latest/interfaces/catalog)'s behaviour, and how you can use it with [`Publication`s](https://shopify.dev/api/admin-graphql/latest/objects/Publication) and [`PriceList`s](https://shopify.dev/api/admin-graphql/latest/objects/PriceList), see [here](https://shopify.dev/docs/apps/build/markets/catalogs-different-markets). * catalog​Delete [Catalog​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CatalogDeletePayload) Delete a catalog. * catalog​Update [Catalog​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CatalogUpdatePayload) Updates an existing catalog. * checkout​Branding​Upsert [Checkout​Branding​Upsert​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CheckoutBrandingUpsertPayload) Updates the checkout branding settings for a [checkout profile](https://shopify.dev/api/admin-graphql/unstable/queries/checkoutProfile). 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](https://shopify.dev/docs/apps/checkout/styling). * collection​Add​Products [Collection​Add​Products​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CollectionAddProductsPayload) Adds multiple products to an existing collection in a single operation. This mutation provides an efficient way to bulk-manage collection membership without individual product updates. For example, when merchants create seasonal collections, they can add dozens of related products at once rather than updating each product individually. A clothing store might add all winter jackets to a "Winter Collection" in one operation. Use `CollectionAddProducts` to: * Bulk-add products to collections for efficient catalog management * Implement collection building tools in admin interfaces * Organize collection membership during bulk product operations * Reduce API calls when managing large product sets The mutation processes multiple product additions and returns success status along with any errors encountered during the operation. Products are added to the collection while preserving existing collection settings. This operation only works with manual collections where merchants explicitly choose which products to include. It will return an error if used with smart collections that automatically include products based on conditions. Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). * collection​Add​Products​V2 [Collection​Add​Products​V2Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CollectionAddProductsV2Payload) Asynchronously adds a set of products to a given collection. It can take a long time to run. Instead of returning a collection, it returns a job which should be polled. * collection​Create [Collection​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CollectionCreatePayload) Creates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) to group [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) together in the [online store](https://shopify.dev/docs/apps/build/online-store) and other [sales channels](https://shopify.dev/docs/apps/build/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](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: You specify the products to include in a collection. * **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: You define rules, and products matching those rules are automatically included in the collection. Use the `collectionCreate` mutation when you need to: * Create a new collection for a product launch or campaign * Organize products by category, season, or promotion * Automate product grouping using rules (for example, by tag, type, or price) *** Note The created collection is unpublished by default. To make it available to customers, use the [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) mutation after creation. *** Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). * collection​Delete [Collection​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CollectionDeletePayload) Deletes a collection and removes it permanently from the store. This operation cannot be undone and will remove the collection from all sales channels where it was published. For example, when merchants discontinue seasonal promotions or reorganize their catalog structure, they can delete outdated collections like "Back to School 2023" to keep their store organized. Use `CollectionDelete` to: * Remove outdated or unused collections from stores * Clean up collection structures during catalog reorganization * Implement collection management tools with deletion capabilities Products within the deleted collection remain in the store but are no longer grouped under that collection. Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). * collection​Remove​Products [Collection​Remove​Products​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CollectionRemoveProductsPayload) Removes multiple products from a collection in a single operation. This mutation can process large product sets (up to 250 products) and may take significant time to complete for collections with many products. For example, when ending a seasonal promotion, merchants can remove all sale items from a "Summer Clearance" collection at once rather than editing each product individually. Use `CollectionRemoveProducts` to: * Bulk-remove products from collections efficiently * Clean up collection membership during catalog updates * Implement automated collection management workflows The operation processes asynchronously to avoid timeouts and performance issues, especially for large product sets. Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). * collection​Reorder​Products [Collection​Reorder​Products​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CollectionReorderProductsPayload) Asynchronously reorders products within a specified collection. Instead of returning an updated collection, this mutation returns a job, which should be [polled](https://shopify.dev/api/admin-graphql/latest/queries/job). The [`Collection.sortOrder`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-collection-sortorder) must be `MANUAL`. How to use this mutation: * Provide only the products that actually moved in the `moves` list; do not send the entire product list. For example: to move the product at index 1 to index N, send a single move for that product with `newPosition: N`. * Each move is applied sequentially in the order provided. * `newPosition` is a zero-based index within the collection at the moment the move is applied (after any prior moves in the list). * Products not included in `moves` keep their relative order, aside from any displacement caused by the moves. * If `newPosition` is greater than or equal to the number of products, the product is placed at the end. Example: * Initial order: \[A, B, C, D, E] (indices 0..4) * Moves (applied in order): * E -> newPosition: 1 * C -> newPosition: 4 * Result: \[A, E, B, D, C] Displaced products will have their position altered in a consistent manner with no gaps. * collection​Update [Collection​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CollectionUpdatePayload) Updates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), modifying its properties, products, or publication settings. Collections help organize [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) together in the [online store](https://shopify.dev/docs/apps/build/online-store) and other [sales channels](https://shopify.dev/docs/apps/build/sales-channels). Use the `collectionUpdate` mutation to programmatically modify collections in scenarios such as: * Updating collection details, like title, description, or image * Modifying SEO metadata for better search visibility * Changing which products are included (using rule updates for smart collections) * Publishing or unpublishing collections across different sales channels * Updating custom data using [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields) There are two types of collections with different update capabilities: * **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: You can update collection properties, but rule sets can't be modified since products are manually selected. * **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: You can update both collection properties and the rules that automatically determine which products are included. When updating [rule sets](https://shopify.dev/docs/api/admin-graphql/latest/objects/CollectionRuleConditions) for smart collections, the operation might be processed asynchronously. In these cases, the mutation returns a [`job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) object that you can use to track the progress of the update. To publish or unpublish collections to specific sales channels, use the dedicated [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) and [`publishableUnpublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishableUnpublish) mutations. Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). * combined​Listing​Update [Combined​Listing​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CombinedListingUpdatePayload) Add, remove and update `CombinedListing`s of a given Product. `CombinedListing`s are comprised of multiple products to create a single listing. There are two kinds of products used in a `CombinedListing`: 1. Parent products 2. Child products The parent product is created with a `productCreate` with a `CombinedListingRole` of `PARENT`. Once created, you can associate child products with the parent product using this mutation. Parent products represent the idea of a product (e.g. Shoe). Child products represent a particular option value (or combination of option values) of a parent product. For instance, with your Shoe parent product, you may have several child products representing specific colors of the shoe (e.g. Shoe - Blue). You could also have child products representing more than a single option (e.g. Shoe - Blue/Canvas, Shoe - Blue/Leather, etc...). The combined listing is the association of parent product to one or more child products. Learn more about [Combined Listings](https://shopify.dev/apps/selling-strategies/combined-listings). * comment​Approve [Comment​Approve​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CommentApprovePayload) Approves a comment. * comment​Delete [Comment​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CommentDeletePayload) Deletes a comment. * comment​Not​Spam [Comment​Not​Spam​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CommentNotSpamPayload) Marks a comment as not spam. * comment​Spam [Comment​Spam​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CommentSpamPayload) Marks a comment as spam. * companies​Delete [Companies​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompaniesDeletePayload) Deletes a list of companies. * company​Address​Delete [Company​Address​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyAddressDeletePayload) Deletes a company address. * company​Assign​Customer​As​Contact [Company​Assign​Customer​As​Contact​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyAssignCustomerAsContactPayload) Assigns the customer as a company contact. * company​Assign​Main​Contact [Company​Assign​Main​Contact​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyAssignMainContactPayload) Assigns the main contact for the company. * company​Contact​Assign​Role [Company​Contact​Assign​Role​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyContactAssignRolePayload) Assigns a role to a contact for a location. * company​Contact​Assign​Roles [Company​Contact​Assign​Roles​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyContactAssignRolesPayload) Assigns roles on a company contact. * company​Contact​Create [Company​Contact​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyContactCreatePayload) Creates a company contact and the associated customer. * company​Contact​Delete [Company​Contact​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyContactDeletePayload) Deletes a company contact. * company​Contact​Remove​From​Company [Company​Contact​Remove​From​Company​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyContactRemoveFromCompanyPayload) Removes a company contact from a Company. * company​Contact​Revoke​Role [Company​Contact​Revoke​Role​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyContactRevokeRolePayload) Revokes a role on a company contact. * company​Contact​Revoke​Roles [Company​Contact​Revoke​Roles​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyContactRevokeRolesPayload) Revokes roles on a company contact. * company​Contacts​Delete [Company​Contacts​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyContactsDeletePayload) Deletes one or more company contacts. * company​Contact​Update [Company​Contact​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyContactUpdatePayload) Updates a company contact. * company​Create [Company​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyCreatePayload) Creates a company. * company​Delete [Company​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyDeletePayload) Deletes a company. * company​Location​Assign​Address [Company​Location​Assign​Address​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationAssignAddressPayload) Updates an address on a company location. * company​Location​Assign​Roles [Company​Location​Assign​Roles​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationAssignRolesPayload) Assigns roles on a company location. * company​Location​Assign​Staff​Members [Company​Location​Assign​Staff​Members​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationAssignStaffMembersPayload) Creates one or more mappings between a staff member at a shop and a company location. * company​Location​Create [Company​Location​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationCreatePayload) Creates a company location. * company​Location​Delete [Company​Location​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationDeletePayload) Deletes a company location. * company​Location​Remove​Staff​Members [Company​Location​Remove​Staff​Members​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationRemoveStaffMembersPayload) Deletes one or more existing mappings between a staff member at a shop and a company location. * company​Location​Revoke​Roles [Company​Location​Revoke​Roles​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationRevokeRolesPayload) Revokes roles on a company location. * company​Locations​Delete [Company​Locations​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationsDeletePayload) Deletes a list of company locations. * company​Location​Tax​Settings​Update [Company​Location​Tax​Settings​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationTaxSettingsUpdatePayload) Sets the tax settings for a company location. * company​Location​Update [Company​Location​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationUpdatePayload) Updates a company location. * company​Revoke​Main​Contact [Company​Revoke​Main​Contact​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyRevokeMainContactPayload) Revokes the main contact from the company. * company​Update [Company​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyUpdatePayload) Updates a company. * consent​Policy​Update [Consent​Policy​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ConsentPolicyUpdatePayload) Update or create consent policies in bulk. * customer​Address​Create [Customer​Address​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerAddressCreatePayload) Create a new customer address. * customer​Address​Delete [Customer​Address​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerAddressDeletePayload) Deletes a customer's address. * customer​Address​Update [Customer​Address​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerAddressUpdatePayload) Update a customer's address information. * customer​Add​Tax​Exemptions [Customer​Add​Tax​Exemptions​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerAddTaxExemptionsPayload) Add tax exemptions for the customer. * customer​Cancel​Data​Erasure [Customer​Cancel​Data​Erasure​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerCancelDataErasurePayload) Cancels a pending erasure of a customer's data. Read more [here](https://help.shopify.com/manual/privacy-and-security/privacy/processing-customer-data-requests#cancel-customer-data-erasure). To request an erasure of a customer's data use the [customerRequestDataErasure mutation](https://shopify.dev/api/admin-graphql/unstable/mutations/customerRequestDataErasure). * customer​Create [Customer​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerCreatePayload) Create a new customer. As of API version 2022-10, apps using protected customer data must meet the protected customer data [requirements](https://shopify.dev/apps/store/data-protection/protected-customer-data). * customer​Delete [Customer​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerDeletePayload) Delete a customer. As of API version 2022-10, apps using protected customer data must meet the protected customer data [requirements](https://shopify.dev/apps/store/data-protection/protected-customer-data). * customer​Email​Marketing​Consent​Update [Customer​Email​Marketing​Consent​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerEmailMarketingConsentUpdatePayload) Update a customer's email marketing information information. * customer​Generate​Account​Activation​Url [Customer​Generate​Account​Activation​Url​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerGenerateAccountActivationUrlPayload) Generate an account activation URL for a customer. * customer​Merge [Customer​Merge​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerMergePayload) Merges two customers. * customer​Payment​Method​Credit​Card​Create [Customer​Payment​Method​Credit​Card​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerPaymentMethodCreditCardCreatePayload) Creates a credit card payment method for a customer using a session id. These values are only obtained through card imports happening from a PCI compliant environment. Please use customerPaymentMethodRemoteCreate if you are not managing credit cards directly. * customer​Payment​Method​Credit​Card​Update [Customer​Payment​Method​Credit​Card​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerPaymentMethodCreditCardUpdatePayload) Updates the credit card payment method for a customer. * customer​Payment​Method​Get​Update​Url [Customer​Payment​Method​Get​Update​Url​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerPaymentMethodGetUpdateUrlPayload) Returns a URL that allows the customer to update a specific payment method. Currently, `customerPaymentMethodGetUpdateUrl` only supports Shop Pay. * customer​Payment​Method​Paypal​Billing​Agreement​Create [Customer​Payment​Method​Paypal​Billing​Agreement​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerPaymentMethodPaypalBillingAgreementCreatePayload) Creates a PayPal billing agreement for a customer. * customer​Payment​Method​Paypal​Billing​Agreement​Update [Customer​Payment​Method​Paypal​Billing​Agreement​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerPaymentMethodPaypalBillingAgreementUpdatePayload) Updates a PayPal billing agreement for a customer. * customer​Payment​Method​Remote​Create [Customer​Payment​Method​Remote​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerPaymentMethodRemoteCreatePayload) Create a payment method from remote gateway identifiers. NOTE: This operation processes payment methods asynchronously. The returned payment method will initially have incomplete details. Developers must poll this payment method using customerPaymentMethod query until all payment method details are available, or the payment method is revoked (usually within seconds). * customer​Payment​Method​Revoke [Customer​Payment​Method​Revoke​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerPaymentMethodRevokePayload) Revokes a customer's payment method. * customer​Payment​Method​Send​Update​Email [Customer​Payment​Method​Send​Update​Email​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerPaymentMethodSendUpdateEmailPayload) Sends a link to the customer so they can update a specific payment method. * customer​Remove​Tax​Exemptions [Customer​Remove​Tax​Exemptions​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerRemoveTaxExemptionsPayload) Remove tax exemptions from a customer. * customer​Replace​Tax​Exemptions [Customer​Replace​Tax​Exemptions​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerReplaceTaxExemptionsPayload) Replace tax exemptions for a customer. * customer​Request​Data​Erasure [Customer​Request​Data​Erasure​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerRequestDataErasurePayload) Enqueues a request to erase customer's data. Read more [here](https://help.shopify.com/manual/privacy-and-security/privacy/processing-customer-data-requests#erase-customer-personal-data). To cancel the data erasure request use the [customerCancelDataErasure mutation](https://shopify.dev/api/admin-graphql/unstable/mutations/customerCancelDataErasure). * customer​Segment​Members​Query​Create [Customer​Segment​Members​Query​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerSegmentMembersQueryCreatePayload) Creates a customer segment members query. * customer​Send​Account​Invite​Email [Customer​Send​Account​Invite​Email​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerSendAccountInviteEmailPayload) Sends the customer an account invite email. * customer​Set [Customer​Set​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerSetPayload) Creates or updates a customer in a single mutation. Use this mutation when syncing information from an external data source into Shopify. This mutation can be used to create a new customer, update an existing customer by id, or upsert a customer by a unique key (email or phone). To create a new customer omit the `identifier` argument. To update an existing customer, include the `identifier` with the id of the customer to update. To perform an 'upsert' by unique key (email or phone) use the `identifier` argument to upsert a customer by a unique key (email or phone). If a customer with the specified unique key exists, it will be updated. If not, a new customer will be created with that unique key. As of API version 2022-10, apps using protected customer data must meet the protected customer data [requirements](https://shopify.dev/apps/store/data-protection/protected-customer-data) Any list field (e.g. [addresses](https://shopify.dev/api/admin-graphql/unstable/input-objects/MailingAddressInput), 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. * customer​Sms​Marketing​Consent​Update [Customer​Sms​Marketing​Consent​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerSmsMarketingConsentUpdatePayload) Update a customer's SMS marketing consent information. * customer​Update [Customer​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerUpdatePayload) Update a customer's attributes. As of API version 2022-10, apps using protected customer data must meet the protected customer data [requirements](https://shopify.dev/apps/store/data-protection/protected-customer-data). * customer​Update​Default​Address [Customer​Update​Default​Address​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CustomerUpdateDefaultAddressPayload) Updates a customer's default address. * data​Sale​Opt​Out [Data​Sale​Opt​Out​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DataSaleOptOutPayload) Opt out a customer from data sale. * delegate​Access​Token​Create [Delegate​Access​Token​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DelegateAccessTokenCreatePayload) Creates a delegate access token. To learn more about creating delegate access tokens, refer to [Delegate OAuth access tokens to subsystems](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/use-delegate-tokens). * delegate​Access​Token​Destroy [Delegate​Access​Token​Destroy​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DelegateAccessTokenDestroyPayload) Destroys a delegate access token. * delivery​Customization​Activation [Delivery​Customization​Activation​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliveryCustomizationActivationPayload) Activates and deactivates delivery customizations. * delivery​Customization​Create [Delivery​Customization​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliveryCustomizationCreatePayload) Creates a delivery customization. * delivery​Customization​Delete [Delivery​Customization​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliveryCustomizationDeletePayload) Creates a delivery customization. * delivery​Customization​Update [Delivery​Customization​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliveryCustomizationUpdatePayload) Updates a delivery customization. * delivery​Profile​Create [Delivery​Profile​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliveryProfileCreatePayload) Create a delivery profile. * delivery​Profile​Remove [Delivery​Profile​Remove​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliveryProfileRemovePayload) Enqueue the removal of a delivery profile. * delivery​Profile​Update [Delivery​Profile​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliveryProfileUpdatePayload) Update a delivery profile. * delivery​Promise​Participants​Update [Delivery​Promise​Participants​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliveryPromiseParticipantsUpdatePayload) Updates the delivery promise participants by adding or removing owners based on a branded promise handle. * delivery​Promise​Provider​Upsert [Delivery​Promise​Provider​Upsert​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliveryPromiseProviderUpsertPayload) Creates or updates a delivery promise provider. Currently restricted to select approved delivery promise partners. * delivery​Setting​Update [Delivery​Setting​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliverySettingUpdatePayload) Set the delivery settings for a shop. * delivery​Shipping​Origin​Assign [Delivery​Shipping​Origin​Assign​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DeliveryShippingOriginAssignPayload) Assigns a location as the shipping origin while using legacy compatibility mode for multi-location delivery profiles. * discount​Automatic​Activate [Discount​Automatic​Activate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticActivatePayload) Activates an automatic discount. * discount​Automatic​App​Create [Discount​Automatic​App​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticAppCreatePayload) Creates an automatic discount that's managed by an app. Use this mutation with [Shopify Functions](https://shopify.dev/docs/apps/build/functions) when you need advanced, custom, or dynamic discount capabilities that aren't supported by [Shopify's native discount types](https://help.shopify.com/manual/discounts/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](https://shopify.dev/docs/apps/build/discounts/build-discount-function). *** Note To create code discounts with custom logic, use the [`discountCodeAppCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeAppCreate) mutation. *** * discount​Automatic​App​Update [Discount​Automatic​App​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticAppUpdatePayload) Updates an existing automatic discount that's managed by an app using [Shopify Functions](https://shopify.dev/docs/apps/build/functions). Use this mutation when you need advanced, custom, or dynamic discount capabilities that aren't supported by [Shopify's native discount types](https://help.shopify.com/manual/discounts/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](https://shopify.dev/docs/apps/build/discounts/build-discount-function). *** Note To update code discounts with custom logic, use the [`discountCodeAppUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeAppUpdate) mutation instead. *** * discount​Automatic​Basic​Create [Discount​Automatic​Basic​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticBasicCreatePayload) Creates an [amount off discount](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) that's automatically applied on a cart and at checkout. *** Note To create code discounts, use the [`discountCodeBasicCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBasicCreate) mutation. *** * discount​Automatic​Basic​Update [Discount​Automatic​Basic​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticBasicUpdatePayload) Updates an existing [amount off discount](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) that's automatically applied on a cart and at checkout. *** Note To update code discounts, use the [`discountCodeBasicUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBasicUpdate) mutation instead. *** * discount​Automatic​Bulk​Delete [Discount​Automatic​Bulk​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticBulkDeletePayload) Deletes multiple automatic discounts in a single operation, providing efficient bulk management for stores with extensive discount catalogs. This mutation processes deletions asynchronously to handle large volumes without blocking other operations. For example, when cleaning up expired seasonal promotions or removing outdated automatic discounts across product categories, merchants can delete dozens of discounts simultaneously rather than processing each individually. Use `DiscountAutomaticBulkDelete` to: * Remove multiple automatic discounts efficiently * Clean up expired or obsolete promotions * Streamline discount management workflows * Process large-scale discount removals asynchronously The operation returns a job object for tracking deletion progress and any validation errors encountered during processing. Learn more about [discount management](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomatic). * discount​Automatic​Bxgy​Create [Discount​Automatic​Bxgy​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticBxgyCreatePayload) Creates a [buy X get Y discount (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) that's automatically applied on a cart and at checkout. *** Note To create code discounts, use the [`discountCodeBxgyCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBxgyCreate) mutation. *** * discount​Automatic​Bxgy​Update [Discount​Automatic​Bxgy​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticBxgyUpdatePayload) Updates an existing [buy X get Y discount (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) that's automatically applied on a cart and at checkout. *** Note To update code discounts, use the [`discountCodeBxgyUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBxgyUpdate) mutation instead. *** * discount​Automatic​Deactivate [Discount​Automatic​Deactivate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticDeactivatePayload) Deactivates an automatic discount. * discount​Automatic​Delete [Discount​Automatic​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticDeletePayload) Deletes an existing automatic discount from the store, permanently removing it from all future order calculations. This mutation provides a clean way to remove promotional campaigns that are no longer needed. For example, when a seasonal promotion ends or a flash sale concludes, merchants can use this mutation to ensure the discount no longer applies to new orders while preserving historical order data. Use `DiscountAutomaticDelete` to: * Remove expired promotional campaigns * Clean up test discounts during development * Delete automatic discounts that conflict with new promotions * Maintain a clean discount configuration The mutation returns the ID of the deleted discount for confirmation and any validation errors if the deletion cannot be completed. Once deleted, the automatic discount will no longer appear in discount lists or apply to new customer orders. * discount​Automatic​Free​Shipping​Create [Discount​Automatic​Free​Shipping​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticFreeShippingCreatePayload) Creates automatic free shipping discounts that apply to qualifying orders without requiring discount codes. These promotions automatically activate when customers meet specified criteria, streamlining the checkout experience. For example, a store might create an automatic free shipping discount for orders over variable pricing to encourage larger purchases, or offer free shipping to specific customer segments during promotional periods. Use `DiscountAutomaticFreeShippingCreate` to: * Set up code-free shipping promotions * Create order value-based shipping incentives * Target specific customer groups with shipping benefits * Establish location-based shipping discounts The mutation validates discount configuration and returns the created automatic discount node along with any configuration errors that need resolution. Learn more about [automatic discounts](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticNode). * discount​Automatic​Free​Shipping​Update [Discount​Automatic​Free​Shipping​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountAutomaticFreeShippingUpdatePayload) Updates existing automatic free shipping discounts, allowing merchants to modify promotion criteria, shipping destinations, and eligibility requirements without recreating the entire discount structure. For example, extending a holiday free shipping promotion to include additional countries, adjusting the minimum order value threshold, or expanding customer eligibility to include new segments. Use `DiscountAutomaticFreeShippingUpdate` to: * Modify shipping discount thresholds and criteria * Expand or restrict geographic availability * Update customer targeting and eligibility rules * Adjust promotion timing and activation periods Changes take effect immediately for new orders, while the mutation validates all modifications and reports any configuration conflicts through user errors. Learn more about [managing automatic discounts](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticFreeShipping). * discount​Code​Activate [Discount​Code​Activate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeActivatePayload) Activates a previously created code discount, making it available for customers to use during checkout. This mutation transitions inactive discount codes into an active state where they can be applied to orders. For example, after creating a "SUMMER20" discount code but leaving it inactive during setup, merchants can activate it when ready to launch their summer promotion campaign. Use `DiscountCodeActivate` to: * Launch scheduled promotional campaigns * Reactivate previously paused discount codes * Enable discount codes after configuration changes * Control the timing of discount availability The mutation returns the updated discount code node with its new active status and handles any validation errors that might prevent activation, such as conflicting discount rules or invalid date ranges. * discount​Code​App​Create [Discount​Code​App​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeAppCreatePayload) Creates a code discount. The discount type must be provided by an app extension that uses [Shopify Functions](https://shopify.dev/docs/apps/build/functions). Functions can implement [order](https://shopify.dev/docs/api/functions/reference/order-discounts), [product](https://shopify.dev/docs/api/functions/reference/product-discounts), or [shipping](https://shopify.dev/docs/api/functions/reference/shipping-discounts) discount functions. Use this mutation with Shopify Functions when you need custom logic beyond [Shopify's native discount types](https://help.shopify.com/manual/discounts/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](https://shopify.dev/docs/apps/build/discounts/build-discount-function). *** Note To create automatic discounts with custom logic, use [`discountAutomaticAppCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountAutomaticAppCreate). *** * discount​Code​App​Update [Discount​Code​App​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeAppUpdatePayload) Updates a code discount, where the discount type is provided by an app extension that uses [Shopify Functions](https://shopify.dev/docs/apps/build/functions). Use this mutation when you need advanced, custom, or dynamic discount capabilities that aren't supported by [Shopify's native discount types](https://help.shopify.com/manual/discounts/discount-types). *** Note To update automatic discounts, use [`discountAutomaticAppUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountAutomaticAppUpdate). *** * discount​Code​Basic​Create [Discount​Code​Basic​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeBasicCreatePayload) Creates an [amount off discount](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) that's applied on a cart and at checkout when a customer enters a code. Amount off discounts can be a percentage off or a fixed amount off. *** Note To create discounts that are automatically applied on a cart and at checkout, use the [`discountAutomaticBasicCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountAutomaticBasicCreate) mutation. *** * discount​Code​Basic​Update [Discount​Code​Basic​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeBasicUpdatePayload) Updates an [amount off discount](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) that's applied on a cart and at checkout when a customer enters a code. Amount off discounts can be a percentage off or a fixed amount off. *** Note To update discounts that are automatically applied on a cart and at checkout, use the [`discountAutomaticBasicUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountAutomaticBasicUpdate) mutation. *** * discount​Code​Bulk​Activate [Discount​Code​Bulk​Activate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeBulkActivatePayload) Activates multiple [code discounts](https://help.shopify.com/manual/discounts/discount-types#discount-codes) 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. * discount​Code​Bulk​Deactivate [Discount​Code​Bulk​Deactivate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeBulkDeactivatePayload) Deactivates multiple [code-based discounts](https://help.shopify.com/manual/discounts/discount-types#discount-codes) 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. * discount​Code​Bulk​Delete [Discount​Code​Bulk​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeBulkDeletePayload) Deletes multiple [code-based discounts](https://help.shopify.com/manual/discounts/discount-types#discount-codes) 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. * discount​Code​Bxgy​Create [Discount​Code​Bxgy​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeBxgyCreatePayload) Creates a [buy X get Y discount (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) that's applied on a cart and at checkout when a customer enters a code. *** Note To create discounts that are automatically applied on a cart and at checkout, use the [`discountAutomaticBxgyCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountAutomaticBxgyCreate) mutation. *** * discount​Code​Bxgy​Update [Discount​Code​Bxgy​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeBxgyUpdatePayload) Updates a [buy X get Y discount (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) that's applied on a cart and at checkout when a customer enters a code. *** Note To update discounts that are automatically applied on a cart and at checkout, use the [`discountAutomaticBxgyUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountAutomaticBxgyUpdate) mutation. *** * discount​Code​Deactivate [Discount​Code​Deactivate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeDeactivatePayload) Temporarily suspends a code discount without permanently removing it from the store. Deactivation allows merchants to pause promotional campaigns while preserving the discount configuration for potential future use. For example, when a flash sale needs to end immediately or a discount code requires temporary suspension due to inventory issues, merchants can deactivate it to stop new redemptions while keeping the discount structure intact. Use `DiscountCodeDeactivate` to: * Pause active promotional campaigns timely * Temporarily suspend problematic discount codes * Control discount availability during inventory shortages * Maintain discount history while stopping usage Deactivated discounts remain in the system and can be reactivated later, unlike deletion which persistently removes the code. Customers attempting to use deactivated codes will receive appropriate error messages. * discount​Code​Delete [Discount​Code​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeDeletePayload) Removes a code discount from the store, making it permanently unavailable for customer use. This mutation provides a clean way to eliminate discount codes that are no longer needed or have been replaced. For example, when a seasonal promotion ends or a discount code has been compromised, merchants can delete it entirely rather than just deactivating it, ensuring customers cannot attempt to use expired promotional codes. Use `DiscountCodeDelete` to: * persistently remove outdated promotional codes * Clean up discount code lists after campaigns end * Eliminate compromised or leaked discount codes * Maintain organized discount management Once deleted, the discount code cannot be recovered and any customer attempts to use it will fail. This differs from deactivation, which preserves the code for potential future reactivation. * discount​Code​Free​Shipping​Create [Discount​Code​Free​Shipping​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeFreeShippingCreatePayload) Creates an [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping) that's applied on a cart and at checkout when a customer enters a code. *** Note To create discounts that are automatically applied on a cart and at checkout, use the [`discountAutomaticFreeShippingCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountAutomaticFreeShippingCreate) mutation. *** * discount​Code​Free​Shipping​Update [Discount​Code​Free​Shipping​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeFreeShippingUpdatePayload) Updates a [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping) that's applied on a cart and at checkout when a customer enters a code. *** Note To update a free shipping discount that's automatically applied on a cart and at checkout, use the [`discountAutomaticFreeShippingUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountAutomaticFreeShippingUpdate) mutation. *** * discount​Code​Redeem​Code​Bulk​Delete [Discount​Code​Redeem​Code​Bulk​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountCodeRedeemCodeBulkDeletePayload) Asynchronously delete [discount codes](https://help.shopify.com/manual/discounts/discount-types#discount-codes) in bulk that customers can use to redeem a discount. * discount​Redeem​Code​Bulk​Add [Discount​Redeem​Code​Bulk​Add​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DiscountRedeemCodeBulkAddPayload) Asynchronously add [discount codes](https://help.shopify.com/manual/discounts/discount-types#discount-codes) in bulk that customers can use to redeem a discount. You can use the `discountRedeemCodeBulkAdd` mutation to automate the distribution of discount codes through emails or other marketing channels. * dispute​Evidence​Update [Dispute​Evidence​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DisputeEvidenceUpdatePayload) Updates a dispute evidence. * draft​Order​Bulk​Add​Tags [Draft​Order​Bulk​Add​Tags​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderBulkAddTagsPayload) Adds tags to multiple draft orders. * draft​Order​Bulk​Delete [Draft​Order​Bulk​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderBulkDeletePayload) Deletes multiple draft orders. * draft​Order​Bulk​Remove​Tags [Draft​Order​Bulk​Remove​Tags​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderBulkRemoveTagsPayload) Removes tags from multiple draft orders. * draft​Order​Calculate [Draft​Order​Calculate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderCalculatePayload) Calculates the properties of a draft order. Useful for determining information such as total taxes or price without actually creating a draft order. * draft​Order​Complete [Draft​Order​Complete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderCompletePayload) Completes a [draft order](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) and converts it into a [regular order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). The order appears in the merchant's orders list, and the customer can be notified about their order. Use the `draftOrderComplete` mutation when a merchant is ready to finalize a draft order and create a real order in their store. The `draftOrderComplete` mutation also supports sales channel attribution for tracking order sources using the [`sourceName`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderComplete#arguments-sourceName) argument, [cart validation](https://shopify.dev/docs/apps/build/checkout/cart-checkout-validation) controls for app integrations, and detailed error reporting for failed completions. You can complete a draft order with different [payment scenarios](https://help.shopify.com/manual/fulfillment/managing-orders/payments): * Mark the order as paid immediately. * Set the order as payment pending using [payment terms](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTerms). * Specify a custom payment amount. * Select a specific payment gateway. *** Note When completing a draft order, inventory is [reserved](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps#inventory-states) 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. *** * draft​Order​Create [Draft​Order​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderCreatePayload) Creates a [draft order](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) 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 [`draftOrderInvoiceSend`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderInvoiceSend) mutation. * Complete the draft order using the [`draftOrderComplete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderComplete) mutation. * Update the draft order using the [`draftOrderUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderUpdate) mutation. * Duplicate a draft order using the [`draftOrderDuplicate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderDuplicate) mutation. * Delete the draft order using the [`draftOrderDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderDelete) mutation. *** Note When you create a draft order, you can't [reserve or hold inventory](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps#inventory-states) for the items in the order by default. However, you can reserve inventory using the [`reserveInventoryUntil`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderCreate#arguments-input.fields.reserveInventoryUntil) input. *** * draft​Order​Create​From​Order [Draft​Order​Create​From​Order​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderCreateFromOrderPayload) Creates a draft order from order. * draft​Order​Delete [Draft​Order​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderDeletePayload) Deletes a draft order. * draft​Order​Duplicate [Draft​Order​Duplicate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderDuplicatePayload) Duplicates a draft order. * draft​Order​Invoice​Preview [Draft​Order​Invoice​Preview​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderInvoicePreviewPayload) Previews a draft order invoice email. * draft​Order​Invoice​Send [Draft​Order​Invoice​Send​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderInvoiceSendPayload) Sends an email invoice for a draft order. * draft​Order​Update [Draft​Order​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/DraftOrderUpdatePayload) Updates a draft order. If a checkout has been started for a draft order, any update to the draft will unlink the checkout. Checkouts are created but not immediately completed when opening the merchant credit card modal in the admin, and when a buyer opens the invoice URL. This is usually fine, but there is an edge case where a checkout is in progress and the draft is updated before the checkout completes. This will not interfere with the checkout and order creation, but if the link from draft to checkout is broken the draft will remain open even after the order is created. * event​Bridge​Server​Pixel​Update [Event​Bridge​Server​Pixel​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/EventBridgeServerPixelUpdatePayload) Updates the server pixel to connect to an EventBridge endpoint. Running this mutation deletes any previous subscriptions for the server pixel. * file​Acknowledge​Update​Failed [File​Acknowledge​Update​Failed​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FileAcknowledgeUpdateFailedPayload) Acknowledges file update failure by resetting FAILED status to READY and clearing any media errors. * file​Create [File​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FileCreatePayload) Creates file assets for a store from external URLs or files that were previously uploaded using the [`stagedUploadsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/stageduploadscreate) mutation. Use the `fileCreate` mutation to add various types of media and documents to your store. These files are added to the [**Files** page](https://shopify.com/admin/settings/files) in the Shopify admin and can be referenced by other resources in your store. The `fileCreate` mutation supports multiple file types: * **Images**: Product photos, variant images, and general store imagery * **Videos**: Shopify-hosted videos for product demonstrations and marketing * **External videos**: YouTube and Vimeo videos for enhanced product experiences * **3D models**: Interactive 3D representations of products * **Generic files**: PDFs, documents, and other file types for store resources The mutation handles duplicate filenames using configurable resolution modes that automatically append UUIDs, replace existing files, or raise errors when conflicts occur. *** Note Files are processed asynchronously. Check the [`fileStatus`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/File#fields-fileStatus) field to monitor processing completion. The maximum number of files that can be created in a single batch is 250. *** After creating files, you can make subsequent updates using the following mutations: * [`fileUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileUpdate): Update file properties such as alt text or replace file contents while preserving the same URL. * [`fileDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileDelete): Remove files from your store when they are no longer needed. To list all files in your store, use the [`files`](https://shopify.dev/docs/api/admin-graphql/latest/queries/files) query. Learn how to manage [product media and file assets](https://shopify.dev/docs/apps/build/online-store/product-media) in your app. * file​Delete [File​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FileDeletePayload) Deletes file assets that were previously uploaded to your store. Use the `fileDelete` mutation to permanently remove media and file assets from your store when they are no longer needed. This mutation handles the complete removal of files from both your store's file library and any associated references to products or other resources. The `fileDelete` mutation supports removal of multiple file types: * **Images**: Product photos, variant images, and general store imagery * **Videos**: Shopify-hosted videos for product demonstrations and marketing content * **External Videos**: YouTube and Vimeo videos linked to your products * **3D models**: Interactive 3D representations of products * **Generic files**: PDFs, documents, and other file types stored in your [**Files** page](https://shopify.com/admin/settings/files) When you delete files that are referenced by products, the mutation automatically removes those references and reorders any remaining media to maintain proper positioning. Product file references are database relationships managed through a media reference system, not just links in product descriptions. The Shopify admin provides a UI to manage these relationships, and when files are deleted, the system automatically cleans up all references. Files that are currently being processed by other operations are rejected to prevent conflicts. *** Caution File deletion is permanent and can't be undone. When you delete a file that's being used in your store, it will immediately stop appearing wherever it was displayed. For example, if you delete a product image, that product will show a broken image or placeholder on your storefront and in the admin. The same applies to any other files linked from themes, blog posts, or pages. Before deleting files, you can use the [`files` query](https://shopify.dev/api/admin-graphql/latest/queries/files) to list and review your store's file assets. *** Learn how to manage [product media and file assets](https://shopify.dev/docs/apps/build/online-store/product-media) in your app. * file​Update [File​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FileUpdatePayload) Updates properties, content, and metadata associated with an existing file asset that has already been uploaded to Shopify. Use the `fileUpdate` mutation to modify various aspects of files already stored in your store. Files can be updated individually or in batches. The `fileUpdate` mutation supports updating multiple file properties: * **Alt text**: Update accessibility descriptions for images and other media. * **File content**: Replace image or generic file content while maintaining the same URL. * **Filename**: Modify file names (extension must match the original). * **Product references**: Add or remove associations between files and products. Removing file-product associations deletes the file from the product's media gallery and clears the image from any product variants that were using it. The mutation handles different file types with specific capabilities: * **Images**: Update preview images, original source, filename, and alt text. * **Generic files**: Update original source, filename, and alt text. * **Videos and 3D models**: Update alt text and product references. *** Note Files must be in `ready` state before they can be updated. The mutation includes file locking to prevent conflicts during updates. You can't simultaneously update both `originalSource` and `previewImageSource`. *** After updating files, you can use related mutations for additional file management: * [`fileCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileCreate): Create new file assets from external URLs or staged uploads. * [`fileDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileDelete): Remove files from your store when they are no longer needed. Learn how to manage [product media and file assets](https://shopify.dev/docs/apps/build/online-store/product-media) in your app. * flow​Trigger​Receive [Flow​Trigger​Receive​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FlowTriggerReceivePayload) Triggers any workflows that begin with the trigger specified in the request body. To learn more, refer to [*Create Shopify Flow triggers*](https://shopify.dev/apps/flow/triggers). * fulfillment​Cancel [Fulfillment​Cancel​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentCancelPayload) Cancels a fulfillment. * fulfillment​Constraint​Rule​Create [Fulfillment​Constraint​Rule​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentConstraintRuleCreatePayload) Creates a fulfillment constraint rule and its metafield. * fulfillment​Constraint​Rule​Delete [Fulfillment​Constraint​Rule​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentConstraintRuleDeletePayload) Deletes a fulfillment constraint rule and its metafields. * fulfillment​Constraint​Rule​Update [Fulfillment​Constraint​Rule​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentConstraintRuleUpdatePayload) Update a fulfillment constraint rule. * fulfillment​Create [Fulfillment​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentCreatePayload) Creates a fulfillment for one or many fulfillment orders. The fulfillment orders are associated with the same order and are assigned to the same location. * fulfillment​Event​Create [Fulfillment​Event​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentEventCreatePayload) Creates a fulfillment event for a specified fulfillment. * fulfillment​Order​Accept​Cancellation​Request [Fulfillment​Order​Accept​Cancellation​Request​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderAcceptCancellationRequestPayload) Accept a cancellation request sent to a fulfillment service for a fulfillment order. * fulfillment​Order​Accept​Fulfillment​Request [Fulfillment​Order​Accept​Fulfillment​Request​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderAcceptFulfillmentRequestPayload) Accepts a fulfillment request sent to a fulfillment service for a fulfillment order. * fulfillment​Order​Cancel [Fulfillment​Order​Cancel​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderCancelPayload) Marks a fulfillment order as canceled. * fulfillment​Order​Close [Fulfillment​Order​Close​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderClosePayload) Marks an in-progress fulfillment order as incomplete, indicating the fulfillment service is unable to ship any remaining items, and closes the fulfillment request. This mutation can only be called for fulfillment orders that meet the following criteria: * Assigned to a fulfillment service location, * The fulfillment request has been accepted, * The fulfillment order status is `IN_PROGRESS`. This mutation can only be called by the fulfillment service app that accepted the fulfillment request. Calling this mutation returns the control of the fulfillment order to the merchant, allowing them to move the fulfillment order line items to another location and fulfill from there, remove and refund the line items, or to request fulfillment from the same fulfillment service again. Closing a fulfillment order is explained in [the fulfillment service guide](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-7-optional-close-a-fulfillment-order). * fulfillment​Order​Hold [Fulfillment​Order​Hold​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderHoldPayload) Applies a fulfillment hold on a fulfillment order. As of the [2025-01 API version](https://shopify.dev/changelog/apply-multiple-holds-to-a-single-fulfillment-order), 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](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentHold#field-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](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderHoldUserErrorCode#value-fulfillmentorderholdlimitreached). The app would need to release one of its existing holds before being able to apply a new one. * fulfillment​Order​Line​Items​Prepared​For​Pickup [Fulfillment​Order​Line​Items​Prepared​For​Pickup​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderLineItemsPreparedForPickupPayload) Mark line items associated with a fulfillment order as being ready for pickup by a customer. Sends a Ready For Pickup notification to the customer to let them know that their order is ready to be picked up. * fulfillment​Order​Merge [Fulfillment​Order​Merge​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderMergePayload) Merges a set or multiple sets of fulfillment orders together into one based on line item inputs and quantities. * fulfillment​Order​Move [Fulfillment​Order​Move​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderMovePayload) Changes the location which is assigned to fulfill a number of unfulfilled fulfillment order line items. Moving a fulfillment order will fail in the following circumstances: * The fulfillment order is closed. * The destination location doesn't stock the requested inventory item. * The API client doesn't have the correct permissions. Line items which have already been fulfilled can't be re-assigned and will always remain assigned to the original location. You can't change the assigned location while a fulfillment order has a [request status](https://shopify.dev/docs/api/admin-graphql/latest/enums/FulfillmentOrderRequestStatus) of `SUBMITTED`, `ACCEPTED`, `CANCELLATION_REQUESTED`, or `CANCELLATION_REJECTED`. These request statuses mean that a fulfillment order is awaiting action by a fulfillment service and can't be re-assigned without first having the fulfillment service accept a cancellation request. This behavior is intended to prevent items from being fulfilled by multiple locations or fulfillment services. ### How re-assigning line items affects fulfillment orders **First scenario:** Re-assign all line items belonging to a fulfillment order to a new location. In this case, the [assignedLocation](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorder#field-fulfillmentorder-assignedlocation) of the original fulfillment order will be updated to the new location. **Second scenario:** Re-assign a subset of the line items belonging to a fulfillment order to a new location. You can specify a subset of line items using the `fulfillmentOrderLineItems` parameter (available as of the `2023-04` API version), or specify that the original fulfillment order contains line items which have already been fulfilled. If the new location is already assigned to another active fulfillment order, on the same order, then a new fulfillment order is created. The existing fulfillment order is closed and line items are recreated in a new fulfillment order. * fulfillment​Order​Open [Fulfillment​Order​Open​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderOpenPayload) Marks a scheduled fulfillment order as open. From API version 2026-01, this will also mark a fulfillment order as open when it is assigned to a merchant managed location and has had progress reported. * fulfillment​Order​Reject​Cancellation​Request [Fulfillment​Order​Reject​Cancellation​Request​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderRejectCancellationRequestPayload) Rejects a cancellation request sent to a fulfillment service for a fulfillment order. * fulfillment​Order​Reject​Fulfillment​Request [Fulfillment​Order​Reject​Fulfillment​Request​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderRejectFulfillmentRequestPayload) Rejects a fulfillment request sent to a fulfillment service for a fulfillment order. * fulfillment​Order​Release​Hold [Fulfillment​Order​Release​Hold​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderReleaseHoldPayload) Releases the fulfillment hold on a fulfillment order. * fulfillment​Order​Reschedule [Fulfillment​Order​Reschedule​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderReschedulePayload) Reschedules a scheduled fulfillment order. Updates the value of the `fulfillAt` field on a scheduled fulfillment order. The fulfillment order will be marked as ready for fulfillment at this date and time. * fulfillment​Order​Split [Fulfillment​Order​Split​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderSplitPayload) Splits a fulfillment order or orders based on line item inputs and quantities. * fulfillment​Orders​Reroute [Fulfillment​Orders​Reroute​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrdersReroutePayload) 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. * fulfillment​Orders​Set​Fulfillment​Deadline [Fulfillment​Orders​Set​Fulfillment​Deadline​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrdersSetFulfillmentDeadlinePayload) Sets the latest date and time by which the fulfillment orders need to be fulfilled. * fulfillment​Order​Submit​Cancellation​Request [Fulfillment​Order​Submit​Cancellation​Request​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderSubmitCancellationRequestPayload) Sends a cancellation request to the fulfillment service of a fulfillment order. * fulfillment​Order​Submit​Fulfillment​Request [Fulfillment​Order​Submit​Fulfillment​Request​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentOrderSubmitFulfillmentRequestPayload) Sends a fulfillment request to the fulfillment service of a fulfillment order. * fulfillment​Service​Create [Fulfillment​Service​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentServiceCreatePayload) Creates a fulfillment service. ## Fulfillment service location When creating a fulfillment service, a new location will be automatically created on the shop and will be associated with this fulfillment service. This location will be named after the fulfillment service and inherit the shop's address. If you are using API version `2023-10` or later, and you need to specify custom attributes for the fulfillment service location (for example, to change its address to a country different from the shop's country), use the [LocationEdit](https://shopify.dev/api/admin-graphql/latest/mutations/locationEdit) mutation after creating the fulfillment service. * fulfillment​Service​Delete [Fulfillment​Service​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentServiceDeletePayload) Deletes a fulfillment service. * fulfillment​Service​Update [Fulfillment​Service​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentServiceUpdatePayload) Updates a fulfillment service. If you need to update the location managed by the fulfillment service (for example, to change the address of a fulfillment service), use the [LocationEdit](https://shopify.dev/api/admin-graphql/latest/mutations/locationEdit) mutation. * fulfillment​Tracking​Info​Update [Fulfillment​Tracking​Info​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentTrackingInfoUpdatePayload) Updates tracking information for a fulfillment. * gift​Card​Create [Gift​Card​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/GiftCardCreatePayload) Create a gift card. * gift​Card​Credit [Gift​Card​Credit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/GiftCardCreditPayload) Credit a gift card. * gift​Card​Deactivate [Gift​Card​Deactivate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/GiftCardDeactivatePayload) Deactivate a gift card. A deactivated gift card cannot be used by a customer. A deactivated gift card cannot be re-enabled. * gift​Card​Debit [Gift​Card​Debit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/GiftCardDebitPayload) Debit a gift card. * gift​Card​Send​Notification​To​Customer [Gift​Card​Send​Notification​To​Customer​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/GiftCardSendNotificationToCustomerPayload) Send notification to the customer of a gift card. * gift​Card​Send​Notification​To​Recipient [Gift​Card​Send​Notification​To​Recipient​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/GiftCardSendNotificationToRecipientPayload) Send notification to the recipient of a gift card. * gift​Card​Update [Gift​Card​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/GiftCardUpdatePayload) Update a gift card. * inventory​Activate [Inventory​Activate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryActivatePayload) Activate an inventory item at a location. * inventory​Adjust​Quantities [Inventory​Adjust​Quantities​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryAdjustQuantitiesPayload) Apply changes to inventory quantities. * inventory​Bulk​Toggle​Activation [Inventory​Bulk​Toggle​Activation​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryBulkToggleActivationPayload) Modify the activation status of an inventory item at locations. Activating an inventory item at a particular location allows that location to stock that inventory item. Deactivating an inventory item at a location removes the inventory item's quantities and turns off the inventory item from that location. * inventory​Deactivate [Inventory​Deactivate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryDeactivatePayload) Removes an inventory item's quantities from a location, and turns off inventory at the location. * inventory​Item​Update [Inventory​Item​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryItemUpdatePayload) Updates an inventory item. * inventory​Move​Quantities [Inventory​Move​Quantities​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryMoveQuantitiesPayload) Moves inventory between inventory quantity names at a single location. * inventory​Set​Quantities [Inventory​Set​Quantities​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventorySetQuantitiesPayload) Set quantities of specified name using absolute values. This mutation supports compare-and-set functionality to handle concurrent requests properly. If `ignoreCompareQuantity` is not set to true, the mutation will only update the quantity if the persisted quantity matches the `compareQuantity` value. If the `compareQuantity` value does not match the persisted value, the mutation will return an error. In order to opt out of the `compareQuantity` check, the `ignoreCompareQuantity` argument can be set to true. *** Note Only use this mutation if calling on behalf of a system that acts as the source of truth for inventory quantities, otherwise please consider using the [inventoryAdjustQuantities](https://shopify.dev/api/admin-graphql/latest/mutations/inventoryAdjustQuantities) mutation. Opting out of the `compareQuantity` check can lead to inaccurate inventory quantities if multiple requests are made concurrently. It is recommended to always include the `compareQuantity` value to ensure the accuracy of the inventory quantities and to opt out of the check using `ignoreCompareQuantity` only when necessary. *** * inventory​Set​Scheduled​Changes [Inventory​Set​Scheduled​Changes​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventorySetScheduledChangesPayload) Set up scheduled changes of inventory items. * inventory​Shipment​Add​Items [Inventory​Shipment​Add​Items​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryShipmentAddItemsPayload) Adds items to an inventory shipment. * inventory​Shipment​Create [Inventory​Shipment​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryShipmentCreatePayload) Adds a draft shipment to an inventory transfer. * inventory​Shipment​Create​In​Transit [Inventory​Shipment​Create​In​Transit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryShipmentCreateInTransitPayload) Adds an in-transit shipment to an inventory transfer. * inventory​Shipment​Delete [Inventory​Shipment​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryShipmentDeletePayload) Deletes an inventory shipment. Only draft shipments can be deleted. * inventory​Shipment​Mark​In​Transit [Inventory​Shipment​Mark​In​Transit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryShipmentMarkInTransitPayload) Marks a draft inventory shipment as in transit. * inventory​Shipment​Receive [Inventory​Shipment​Receive​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryShipmentReceivePayload) Receive an inventory shipment. * inventory​Shipment​Remove​Items [Inventory​Shipment​Remove​Items​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryShipmentRemoveItemsPayload) Remove items from an inventory shipment. * inventory​Shipment​Set​Tracking [Inventory​Shipment​Set​Tracking​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryShipmentSetTrackingPayload) Edits the tracking info on an inventory shipment. * inventory​Shipment​Update​Item​Quantities [Inventory​Shipment​Update​Item​Quantities​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryShipmentUpdateItemQuantitiesPayload) Updates items on an inventory shipment. * inventory​Transfer​Cancel [Inventory​Transfer​Cancel​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryTransferCancelPayload) Cancels an inventory transfer. * inventory​Transfer​Create [Inventory​Transfer​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryTransferCreatePayload) Creates an inventory transfer. * inventory​Transfer​Create​As​Ready​To​Ship [Inventory​Transfer​Create​As​Ready​To​Ship​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryTransferCreateAsReadyToShipPayload) Creates an inventory transfer in ready to ship. * inventory​Transfer​Delete [Inventory​Transfer​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryTransferDeletePayload) Deletes an inventory transfer. * inventory​Transfer​Duplicate [Inventory​Transfer​Duplicate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryTransferDuplicatePayload) This mutation allows duplicating an existing inventory transfer. The duplicated transfer will have the same line items and quantities as the original transfer, but will be in a draft state with no shipments. * inventory​Transfer​Edit [Inventory​Transfer​Edit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryTransferEditPayload) Edits an inventory transfer. * inventory​Transfer​Mark​As​Ready​To​Ship [Inventory​Transfer​Mark​As​Ready​To​Ship​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryTransferMarkAsReadyToShipPayload) Sets an inventory transfer to ready to ship. * inventory​Transfer​Remove​Items [Inventory​Transfer​Remove​Items​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryTransferRemoveItemsPayload) This mutation allows removing the shippable quantities of line items on a Transfer. It removes all quantities of the item from the transfer that are not associated with shipments. * inventory​Transfer​Set​Items [Inventory​Transfer​Set​Items​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventoryTransferSetItemsPayload) This mutation allows for the setting of line items on a Transfer. Will replace the items already set, if any. * location​Activate [Location​Activate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/LocationActivatePayload) Activates a location so that you can stock inventory at the location. Refer to the [`isActive`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-isactive) and [`activatable`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-activatable) fields on the `Location` object. * location​Add [Location​Add​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/LocationAddPayload) Adds a new location. * location​Deactivate [Location​Deactivate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/LocationDeactivatePayload) Deactivates a location and moves inventory, pending orders, and moving transfers to a destination location. * location​Delete [Location​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/LocationDeletePayload) Deletes a location. * location​Edit [Location​Edit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/LocationEditPayload) Edits an existing location. [As of the 2023-10 API version](https://shopify.dev/changelog/apps-can-now-change-the-name-and-address-of-their-fulfillment-service-locations), apps can change the name and address of their fulfillment service locations. * location​Local​Pickup​Disable [Location​Local​Pickup​Disable​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/LocationLocalPickupDisablePayload) Disables local pickup for a location. * location​Local​Pickup​Enable [Location​Local​Pickup​Enable​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/LocationLocalPickupEnablePayload) Enables local pickup for a location. * market​Create [Market​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketCreatePayload) Creates a new market. * market​Delete [Market​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketDeletePayload) Deletes a market definition. * marketing​Activities​Delete​All​External [Marketing​Activities​Delete​All​External​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketingActivitiesDeleteAllExternalPayload) Deletes all external marketing activities. Deletion is performed by a background job, as it may take a bit of time to complete if a large number of activities are to be deleted. Attempting to create or modify external activities before the job has completed will result in the create/update/upsert mutation returning an error. * marketing​Activity​Create [Marketing​Activity​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketingActivityCreatePayload) Create new marketing activity. Marketing activity app extensions are deprecated and will be removed in the near future. * marketing​Activity​Create​External [Marketing​Activity​Create​External​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketingActivityCreateExternalPayload) Creates a new external marketing activity. * marketing​Activity​Delete​External [Marketing​Activity​Delete​External​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketingActivityDeleteExternalPayload) Deletes an external marketing activity. * marketing​Activity​Update [Marketing​Activity​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketingActivityUpdatePayload) Updates a marketing activity with the latest information. Marketing activity app extensions are deprecated and will be removed in the near future. * marketing​Activity​Update​External [Marketing​Activity​Update​External​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketingActivityUpdateExternalPayload) Update an external marketing activity. * marketing​Activity​Upsert​External [Marketing​Activity​Upsert​External​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketingActivityUpsertExternalPayload) Creates a new external marketing activity or updates an existing one. When optional fields are absent or null, associated information will be removed from an existing marketing activity. * marketing​Engagement​Create [Marketing​Engagement​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketingEngagementCreatePayload) Creates a new marketing engagement for a marketing activity or a marketing channel. * marketing​Engagements​Delete [Marketing​Engagements​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketingEngagementsDeletePayload) Marks channel-level engagement data such that it no longer appears in reports. Activity-level data cannot be deleted directly, instead the MarketingActivity itself should be deleted to hide it from reports. * market​Localizations​Register [Market​Localizations​Register​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketLocalizationsRegisterPayload) Creates or updates market localizations. * market​Localizations​Remove [Market​Localizations​Remove​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketLocalizationsRemovePayload) Deletes market localizations. * market​Update [Market​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketUpdatePayload) Updates the properties of a market. * menu​Create [Menu​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MenuCreatePayload) Creates a menu. * menu​Delete [Menu​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MenuDeletePayload) Deletes a menu. * menu​Update [Menu​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MenuUpdatePayload) Updates a menu. * metafield​Definition​Create [Metafield​Definition​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetafieldDefinitionCreatePayload) Creates a metafield definition. Any metafields existing under the same owner type, namespace, and key will be checked against this definition and will have their type updated accordingly. For metafields that are not valid, they will remain unchanged but any attempts to update them must align with this definition. * metafield​Definition​Delete [Metafield​Definition​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetafieldDefinitionDeletePayload) Delete a metafield definition. Optionally deletes all associated metafields asynchronously when specified. * metafield​Definition​Pin [Metafield​Definition​Pin​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetafieldDefinitionPinPayload) You can organize your metafields in your Shopify admin by pinning/unpinning metafield definitions. The order of your pinned metafield definitions determines the order in which your metafields are displayed on the corresponding pages in your Shopify admin. By default, only pinned metafields are automatically displayed. * metafield​Definition​Unpin [Metafield​Definition​Unpin​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetafieldDefinitionUnpinPayload) You can organize your metafields in your Shopify admin by pinning/unpinning metafield definitions. The order of your pinned metafield definitions determines the order in which your metafields are displayed on the corresponding pages in your Shopify admin. By default, only pinned metafields are automatically displayed. * metafield​Definition​Update [Metafield​Definition​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetafieldDefinitionUpdatePayload) Updates a metafield definition. * metafields​Delete [Metafields​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetafieldsDeletePayload) Deletes multiple metafields in bulk. * metafields​Set [Metafields​Set​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetafieldsSetPayload) Sets metafield values. Metafield values will be set regardless if they were previously created or not. Allows a maximum of 25 metafields to be set at a time, with a maximum total request payload size of 10MB. This operation is atomic, meaning no changes are persisted if an error is encountered. As of `2024-07`, this operation supports compare-and-set functionality to better handle concurrent requests. If `compareDigest` is set for any metafield, the mutation will only set that metafield if the persisted metafield value matches the digest used on `compareDigest`. If the metafield doesn't exist yet, but you want to guarantee that the operation will run in a safe manner, set `compareDigest` to `null`. The `compareDigest` value can be acquired by querying the metafield object and selecting `compareDigest` as a field. If the `compareDigest` value does not match the digest for the persisted value, the mutation will return an error. You can opt out of write guarantees by not sending `compareDigest` in the request. * metaobject​Bulk​Delete [Metaobject​Bulk​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetaobjectBulkDeletePayload) Asynchronously delete metaobjects and their associated metafields in bulk. * metaobject​Create [Metaobject​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetaobjectCreatePayload) Creates a new metaobject. * metaobject​Definition​Create [Metaobject​Definition​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetaobjectDefinitionCreatePayload) Creates a new metaobject definition. * metaobject​Definition​Delete [Metaobject​Definition​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetaobjectDefinitionDeletePayload) Deletes the specified metaobject definition. Also deletes all related metafield definitions, metaobjects, and metafields asynchronously. * metaobject​Definition​Update [Metaobject​Definition​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetaobjectDefinitionUpdatePayload) Updates a metaobject definition with new settings and metafield definitions. * metaobject​Delete [Metaobject​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetaobjectDeletePayload) Deletes the specified metaobject and its associated metafields. * metaobject​Update [Metaobject​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetaobjectUpdatePayload) Updates an existing metaobject. * metaobject​Upsert [Metaobject​Upsert​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MetaobjectUpsertPayload) Retrieves a metaobject by handle, then updates it with the provided input values. If no matching metaobject is found, a new metaobject is created with the provided input values. * mobile​Platform​Application​Create [Mobile​Platform​Application​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MobilePlatformApplicationCreatePayload) Create a mobile platform application. * mobile​Platform​Application​Delete [Mobile​Platform​Application​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MobilePlatformApplicationDeletePayload) Delete a mobile platform application. * mobile​Platform​Application​Update [Mobile​Platform​Application​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MobilePlatformApplicationUpdatePayload) Update a mobile platform application. * order​Cancel [Order​Cancel​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderCancelPayload) Cancels an order, with options for refunding, restocking inventory, and customer notification. *** Caution Order cancellation is irreversible. An order that has been cancelled can't be restored to its original state. *** Use the `orderCancel` mutation to programmatically cancel orders in scenarios such as: * Customer-requested cancellations due to size, color, or other preference changes * Payment processing failures or declined transactions * Fraud detection and prevention * Insufficient inventory availability * Staff errors in order processing * Wholesale or B2B order management workflows The `orderCancel` mutation provides flexible refund options including refunding to original payment methods or issuing store credit. If a payment was only authorized (temporarily held) but not yet charged, that hold will be automatically released when the order is cancelled, even if you choose not to refund other payments. The mutation supports different cancellation reasons: customer requests, payment declines, fraud, inventory issues, staff errors, or other unspecified reasons. Each cancellation can include optional staff notes for internal documentation (notes aren't visible to customers). An order can only be cancelled if it meets the following criteria: * The order hasn't already been cancelled. * The order has no pending payment authorizations. * The order has no active returns in progress. * The order has no outstanding fulfillments that can't be cancelled. Orders might be assigned to locations that become [deactivated](https://help.shopify.com/manual/fulfillment/setup/locations-management#deactivate-and-reactivate-locations) after the order was created. When cancelling such orders, inventory behavior depends on payment status: * **Paid orders**: Cancellation will fail with an error if restocking is enabled, since inventory can't be returned to deactivated locations. * **Unpaid orders**: Cancellation succeeds but inventory is not restocked anywhere, even when the restock option is enabled. The committed inventory effectively becomes unavailable rather than being returned to stock at the deactivated location. After you cancel an order, you can still make limited updates to certain fields (like notes and tags) using the [`orderUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderUpdate). For partial refunds or more complex refund scenarios on active orders, such as refunding only specific line items while keeping the rest of the order fulfilled, consider using the [`refundCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/refundCreate) mutation instead of full order cancellation. Learn how to build apps that integrate with [order management and fulfillment processes](https://shopify.dev/docs/apps/build/orders-fulfillment). * order​Capture [Order​Capture​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderCapturePayload) Captures payment for an authorized transaction on an order. Use this mutation to claim the money that was previously reserved by an authorization transaction. The `orderCapture` mutation can be used in the following scenarios: * To capture the full amount of an authorized transaction * To capture a partial payment by specifying an amount less than the total order amount * To perform multiple captures on the same order, as long as the order transaction is [multi-capturable](https://shopify.dev/docs/api/admin-graphql/latest/objects/ordertransaction#field-OrderTransaction.fields.multiCapturable) *** Note Multi-capture functionality is only available to stores on a [Shopify Plus plan](https://help.shopify.com/manual/intro-to-shopify/pricing-plans/plans-features/shopify-plus-plan). For multi-currency orders, the [`currency`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCapture#arguments-input.fields.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](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction). * order​Close [Order​Close​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderClosePayload) Closes an open order. * order​Create [Order​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderCreatePayload) Creates an order with attributes such as customer information, line items, and shipping and billing addresses. Use the `orderCreate` mutation to programmatically generate orders in scenarios where orders aren't created through the standard checkout process, such as when importing orders from an external system or creating orders for wholesale customers. The `orderCreate` mutation doesn't support applying multiple discounts, such as discounts on line items. Automatic discounts won't be applied unless you replicate the logic of those discounts in your custom implementation. You can [apply a discount code](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/OrderCreateDiscountCodeInput), but only one discount code can be set for each order. *** Note If you're using the `orderCreate` mutation with a [trial](https://help.shopify.com/manual/intro-to-shopify/pricing-plans/free-trial) or [development store](https://shopify.dev/docs/api/development-stores), then you can create a maximum of five new orders per minute. *** After you create an order, you can make subsequent edits to the order using one of the following mutations: * [`orderUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderUpdate): Used for simple updates to an order, such as changing the order's note, tags, or customer information. * [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin): Used when you need to make significant updates to an order, such as adding or removing line items, changing quantities, or modifying discounts. The `orderEditBegin` mutation initiates an order editing session, allowing you to make multiple changes before finalizing them. Learn more about using the `orderEditBegin` mutation to [edit existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). Learn how to build apps that integrate with [order management and fulfillment processes](https://shopify.dev/docs/apps/build/orders-fulfillment). * order​Create​Mandate​Payment [Order​Create​Mandate​Payment​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderCreateMandatePaymentPayload) Creates a payment for an order by mandate. * order​Create​Manual​Payment [Order​Create​Manual​Payment​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderCreateManualPaymentPayload) Create a manual payment for an order. You can only create a manual payment for an order if it isn't already fully paid. * order​Customer​Remove [Order​Customer​Remove​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderCustomerRemovePayload) Removes customer from an order. * order​Customer​Set [Order​Customer​Set​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderCustomerSetPayload) Sets a customer on an order. * order​Delete [Order​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderDeletePayload) Deletes an order. For more information on which orders can be deleted, refer to [Delete an order](https://help.shopify.com/manual/orders/cancel-delete-order#delete-an-order). * order​Edit​Add​Custom​Item [Order​Edit​Add​Custom​Item​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditAddCustomItemPayload) Adds a custom line item to an existing order. For example, you could add a gift wrapping service as a [custom line item](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing#add-a-custom-line-item). To learn how to edit existing orders, refer to [Edit an existing order with Admin API](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). * order​Edit​Add​Line​Item​Discount [Order​Edit​Add​Line​Item​Discount​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditAddLineItemDiscountPayload) Adds a discount to a line item on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). * order​Edit​Add​Shipping​Line [Order​Edit​Add​Shipping​Line​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditAddShippingLinePayload) Adds a shipping line to an existing order. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). * order​Edit​Add​Variant [Order​Edit​Add​Variant​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditAddVariantPayload) Adds a line item from an existing product variant. As of API version 2025-04, the [orderEditAddVariant](https://shopify.dev/api/admin-graphql/latest/mutations/ordereditaddvariant) API will respect the contextual pricing of the variant. * order​Edit​Begin [Order​Edit​Begin​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditBeginPayload) Starts editing an order. Mutations are operating on `OrderEdit`. All order edits start with `orderEditBegin`, have any number of `orderEdit`\* mutations made, and end with `orderEditCommit`. * order​Edit​Commit [Order​Edit​Commit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditCommitPayload) Applies and saves staged changes to an order. Mutations are operating on `OrderEdit`. All order edits start with `orderEditBegin`, have any number of `orderEdit`\* mutations made, and end with `orderEditCommit`. * order​Edit​Remove​Discount [Order​Edit​Remove​Discount​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditRemoveDiscountPayload) Removes a discount on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). * order​Edit​Remove​Shipping​Line [Order​Edit​Remove​Shipping​Line​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditRemoveShippingLinePayload) Removes a shipping line from an existing order. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). * order​Edit​Set​Quantity [Order​Edit​Set​Quantity​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditSetQuantityPayload) Sets the quantity of a line item on an order that is being edited. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). * order​Edit​Update​Discount [Order​Edit​Update​Discount​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditUpdateDiscountPayload) Updates a manual line level discount on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). * order​Edit​Update​Shipping​Line [Order​Edit​Update​Shipping​Line​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditUpdateShippingLinePayload) Updates a shipping line on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). * order​Invoice​Send [Order​Invoice​Send​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderInvoiceSendPayload) Sends an email invoice for an order. * order​Mark​As​Paid [Order​Mark​As​Paid​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderMarkAsPaidPayload) Marks an order as paid by recording a payment transaction for the outstanding amount. Use the `orderMarkAsPaid` mutation to record payments received outside the standard checkout process. The `orderMarkAsPaid` mutation is particularly useful in scenarios where: * Orders were created with manual payment methods (cash on delivery, bank deposit, money order) * Payments were received offline and need to be recorded in the system * Previously authorized payments need to be captured manually * Orders require manual payment reconciliation due to external payment processing The mutation validates that the order can be marked as paid before processing. An order can be marked as paid only if it has a positive outstanding balance and its [financial status](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFinancialStatus) isn't already `PAID`. The mutation will either create a new sale transaction for the full outstanding amount or capture an existing authorized transaction, depending on the order's current payment state. After successfully marking an order as paid, the order's financial status is updated to reflect the payment, and payment events are logged for tracking and analytics purposes. Learn more about [managing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps) in apps. * order​Open [Order​Open​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderOpenPayload) Opens a closed order. * order​Risk​Assessment​Create [Order​Risk​Assessment​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderRiskAssessmentCreatePayload) Create a risk assessment for an order. * order​Update [Order​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderUpdatePayload) Updates the attributes of an order, such as the customer's email, the shipping address for the order, tags, and [metafields](https://shopify.dev/docs/apps/build/custom-data) associated with the order. If you need to make significant updates to an order, such as adding or removing line items, changing quantities, or modifying discounts, then use the [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin) mutation instead. The `orderEditBegin` mutation initiates an order editing session, allowing you to make multiple changes before finalizing them. Learn more about using the `orderEditBegin` mutation to [edit existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). If you need to remove a customer from an order, then use the [`orderCustomerRemove`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCustomerRemove) mutation instead. Learn how to build apps that integrate with [order management and fulfillment processes](https://shopify.dev/docs/apps/build/orders-fulfillment). * page​Create [Page​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PageCreatePayload) Creates a page. * page​Delete [Page​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PageDeletePayload) Deletes a page. * page​Update [Page​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PageUpdatePayload) Updates a page. * payment​Customization​Activation [Payment​Customization​Activation​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PaymentCustomizationActivationPayload) Activates and deactivates payment customizations. * payment​Customization​Create [Payment​Customization​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PaymentCustomizationCreatePayload) Creates a payment customization. * payment​Customization​Delete [Payment​Customization​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PaymentCustomizationDeletePayload) Deletes a payment customization. * payment​Customization​Update [Payment​Customization​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PaymentCustomizationUpdatePayload) Updates a payment customization. * payment​Reminder​Send [Payment​Reminder​Send​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PaymentReminderSendPayload) Sends an email payment reminder for a payment schedule. * payment​Terms​Create [Payment​Terms​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PaymentTermsCreatePayload) Create payment terms on an order. To create payment terms on a draft order, use a draft order mutation and include the request with the `DraftOrderInput`. * payment​Terms​Delete [Payment​Terms​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PaymentTermsDeletePayload) Delete payment terms for an order. To delete payment terms on a draft order, use a draft order mutation and include the request with the `DraftOrderInput`. * payment​Terms​Update [Payment​Terms​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PaymentTermsUpdatePayload) Update payment terms on an order. To update payment terms on a draft order, use a draft order mutation and include the request with the `DraftOrderInput`. * price​List​Create [Price​List​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PriceListCreatePayload) Creates a price list. You can use the `priceListCreate` mutation to create a new price list and associate it with a catalog. This enables you to sell your products with contextual pricing. * price​List​Delete [Price​List​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PriceListDeletePayload) Deletes a price list. For example, you can delete a price list so that it no longer applies for products in the associated market. * price​List​Fixed​Prices​Add [Price​List​Fixed​Prices​Add​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PriceListFixedPricesAddPayload) Creates or updates fixed prices on a price list. You can use the `priceListFixedPricesAdd` mutation to set a fixed price for specific product variants. This lets you change product variant pricing on a per country basis. Any existing fixed price list prices for these variants will be overwritten. * price​List​Fixed​Prices​By​Product​Update [Price​List​Fixed​Prices​By​Product​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PriceListFixedPricesByProductUpdatePayload) Updates the fixed prices for all variants for a product on a price list. You can use the `priceListFixedPricesByProductUpdate` mutation to set or remove a fixed price for all variants of a product associated with the price list. * price​List​Fixed​Prices​Delete [Price​List​Fixed​Prices​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PriceListFixedPricesDeletePayload) Deletes specific fixed prices from a price list using a product variant ID. You can use the `priceListFixedPricesDelete` mutation to delete a set of fixed prices from a price list. After deleting the set of fixed prices from the price list, the price of each product variant reverts to the original price that was determined by the price list adjustment. * price​List​Fixed​Prices​Update [Price​List​Fixed​Prices​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PriceListFixedPricesUpdatePayload) Updates fixed prices on a price list. You can use the `priceListFixedPricesUpdate` mutation to set a fixed price for specific product variants or to delete prices for variants associated with the price list. * price​List​Update [Price​List​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PriceListUpdatePayload) Updates a price list. If you modify the currency, then any fixed prices set on the price list will be deleted. * privacy​Features​Disable [Privacy​Features​Disable​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PrivacyFeaturesDisablePayload) Disable a shop's privacy features. * product​Bundle​Create [Product​Bundle​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductBundleCreatePayload) Creates a new product bundle or componentized product. * product​Bundle​Update [Product​Bundle​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductBundleUpdatePayload) Updates a product bundle or componentized product. * product​Create [Product​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductCreatePayload) Creates a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) with attributes such as title, description, vendor, and media. The `productCreate` mutation helps you create many products at once, avoiding the tedious or time-consuming process of adding them one by one in the Shopify admin. Common examples include creating products for a new collection, launching a new product line, or adding seasonal products. You can define product [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) and [values](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue), allowing you to create products with different variations like sizes or colors. You can also associate media files to your products, including images and videos. The `productCreate` mutation only supports creating a product with its initial [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). To create multiple product variants for a single product and manage prices, use the [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) mutation. *** Note The `productCreate` mutation has a [throttle](https://shopify.dev/docs/api/usage/rate-limits#resource-based-rate-limits) that takes effect when a store has 50,000 product variants. After this threshold is reached, no more than 1,000 new product variants can be created per day. *** After you create a product, you can make subsequent edits to the product using one of the following mutations: * [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish): Used to publish the product and make it available to customers. The `productCreate` mutation creates products in an unpublished state by default, so you must perform a separate operation to publish the product. * [`productUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate): Used to update a single product, such as changing the product's title, description, vendor, or associated media. * [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet): Used to perform multiple operations on products, such as creating or modifying product options and variants. Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). * product​Delete [Product​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductDeletePayload) Permanently deletes a product and all its associated data, including variants, media, publications, and inventory items. Use the `productDelete` mutation to programmatically remove products from your store when they need to be permanently deleted from your catalog, such as when removing discontinued items, cleaning up test data, or synchronizing with external inventory management systems. The `productDelete` mutation removes the product from all associated collections, and removes all associated data for the product, including: * All product variants and their inventory items * Product media (images, videos) that are not referenced by other products * [Product options](https://shopify.dev/api/admin-graphql/latest/objects/ProductOption) and [option values](https://shopify.dev/api/admin-graphql/latest/objects/ProductOptionValue) * Product publications across all sales channels * Product tags and metadata associations The `productDelete` mutation also has the following effects on existing orders and transactions: * **Draft orders**: Existing draft orders that reference this product will retain the product information as stored data, but the product reference will be removed. Draft orders can still be completed with the stored product details. * **Completed orders and refunds**: Previously completed orders that included this product aren't affected. The product information in completed orders is preserved for record-keeping, and existing refunds for this product remain valid and processable. *** Caution Product deletion is irreversible. After a product is deleted, it can't be recovered. Consider archiving or unpublishing products instead if you might need to restore them later. *** If you need to delete a large product, such as one that has many [variants](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant) that are active at several [locations](https://shopify.dev/api/admin-graphql/latest/objects/Location), you might encounter timeout errors. To avoid these timeout errors, you can set the [`synchronous`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productDelete#arguments-synchronous) parameter to `false` to run the deletion asynchronously, which returns a [`ProductDeleteOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductDeleteOperation) that you can monitor for completion status. If you need more granular control over product cleanup, consider using these alternative mutations: * [`productUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate): Update the product status to archived or unpublished instead of deleting. * [`productVariantsBulkDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete): Delete specific variants while keeping the product. * [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete): Delete the choices available for a product, such as size, color, or material. Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model). * product​Duplicate [Product​Duplicate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductDuplicatePayload) Duplicates a product. If you need to duplicate a large product, such as one that has many [variants](https://shopify.dev/api/admin-graphql/latest/input-objects/ProductVariantInput) that are active at several [locations](https://shopify.dev/api/admin-graphql/latest/input-objects/InventoryLevelInput), you might encounter timeout errors. To avoid these timeout errors, you can instead duplicate the product asynchronously. In API version 2024-10 and higher, include `synchronous: false` argument in this mutation to perform the duplication asynchronously. In API version 2024-07 and lower, use the asynchronous [`ProductDuplicateAsyncV2`](https://shopify.dev/api/admin-graphql/2024-07/mutations/productDuplicateAsyncV2). Metafield values are not duplicated if the unique values capability is enabled. * product​Feed​Create [Product​Feed​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductFeedCreatePayload) Creates a product feed for a specific publication. * product​Feed​Delete [Product​Feed​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductFeedDeletePayload) Deletes a product feed for a specific publication. * product​Full​Sync [Product​Full​Sync​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductFullSyncPayload) Runs the full product sync for a given shop. * product​Join​Selling​Plan​Groups [Product​Join​Selling​Plan​Groups​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductJoinSellingPlanGroupsPayload) Adds multiple selling plan groups to a product. * product​Leave​Selling​Plan​Groups [Product​Leave​Selling​Plan​Groups​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductLeaveSellingPlanGroupsPayload) Removes multiple groups from a product. * product​Options​Create [Product​Options​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductOptionsCreatePayload) Creates one or more [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) on a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/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](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). Use the `productOptionsCreate` mutation for the following use cases: * **Add product choices**: Add a new option, like "Size" (Small, Medium, Large) or "Color" (Red, Blue, Green), to an existing product so customers can select their preferred variant. * **Enable personalization features**: Add options such as "Engraving text" to let customers customize their purchase. * **Offer seasonal or limited edition products**: Add a new value (for example, "Holiday red") to an existing option to support limited-time or seasonal variants. * **Integrate with apps that manage product configuration**: Allow third-party apps to add options, like "Bundle size", when customers select or customize [product bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles). * **Link options to metafields**: Associate a product option with a custom [metafield](https://shopify.dev/docs/apps/build/custom-data), like "Fabric code", for richer integrations with other systems or apps. *** Note The `productOptionsCreate` mutation enforces strict data integrity for product options and variants. All option positions must be sequential, and every option should be used by at least one variant. If you use the [`CREATE` variant strategy](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate#arguments-variantStrategy.enums.CREATE), consider the maximum allowed number of variants for each product is 2048. *** After you create product options, you can further manage a product's configuration using related mutations: * [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) * [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) * [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) * [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) * [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) * [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). * product​Options​Delete [Product​Options​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductOptionsDeletePayload) Deletes one or more [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) from a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). Product options define the choices available for a product, such as size, color, or material. *** Caution Removing an option can affect a product's [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) and their configuration. Deleting an option might also delete associated option values and, depending on the chosen [strategy](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productoptionsdelete#arguments-strategy), might affect variants. *** Use the `productOptionsDelete` mutation for the following use cases: * **Simplify product configuration**: Remove obsolete or unnecessary options (for example, discontinue "Material" if all variants are now the same material). * **Clean up after seasonal or limited-time offerings**: Delete options that are no longer relevant (for example, "Holiday edition"). * **Automate catalog management**: Enable apps or integrations to programmatically remove options as product data changes. *** Note The `productOptionsDelete` mutation enforces strict data integrity for product options and variants. All option positions must remain sequential, and every remaining option must be used by at least one variant. *** After you delete a product option, you can further manage a product's configuration using related mutations: * [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) * [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) * [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) * [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) * [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) * [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). * product​Options​Reorder [Product​Options​Reorder​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductOptionsReorderPayload) Reorders the [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) and [option values](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue) on a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), updating the order in which [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) are presented to customers. The `productOptionsReorder` mutation accepts a list of product options, each identified by `id` or `name`, and an optional list of values (also by `id` or `name`) specifying the new order. The order of options in the mutation's input determines their new positions (for example, the first option becomes `option1`). The order of values within each option determines their new positions. The mutation recalculates the order of variants based on the new option and value order. Suppose a product has the following variants: 1. `"Red / Small"` 2. `"Green / Medium"` 3. `"Blue / Small"` You reorder options and values: ``` options: [ { name: "Size", values: [{ name: "Small" }, { name: "Medium" }] }, { name: "Color", values: [{ name: "Green" }, { name: "Red" }, { name: "Blue" }] } ] ``` The resulting variant order will be: 1. `"Small / Green"` 2. `"Small / Red"` 3. `"Small / Blue"` 4. `"Medium / Green"` Use the `productOptionsReorder` mutation for the following use cases: * **Change the order of product options**: For example, display "Color" before "Size" in a store. * **Reorder option values within an option**: For example, show "Red" before "Blue" in a color picker. * **Control the order of product variants**: The order of options and their values determines the sequence in which variants are listed and selected. * **Highlight best-selling options**: Present the most popular or relevant options and values first. * **Promote merchandising strategies**: Highlight seasonal colors, limited editions, or featured sizes. *** Note The `productOptionsReorder` mutation enforces strict data integrity for product options and variants. All option positions must be sequential, and every option should be used by at least one variant. *** After you reorder product options, you can further manage a product's configuration using related mutations: * [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) * [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) * [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) * [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) * [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) and [managing product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). * product​Option​Update [Product​Option​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductOptionUpdatePayload) Updates an [option](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) on a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/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](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). Use the `productOptionUpdate` mutation for the following use cases: * **Update product choices**: Modify an existing option, like "Size" (Small, Medium, Large) or "Color" (Red, Blue, Green), so customers can select their preferred variant. * **Enable personalization features**: Update an option (for example, "Engraving text") to let customers customize their purchase. * **Offer seasonal or limited edition products**: Update a value (for example, "Holiday red") on an existing option to support limited-time or seasonal variants. * **Integrate with apps that manage product configuration**: Allow third-party apps to update options, like "Bundle size", when customers select or customize [product bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles). * **Link options to metafields**: Associate a product option with a custom [metafield](https://shopify.dev/docs/apps/build/custom-data), like "Fabric code", for richer integrations with other systems or apps. *** Note The `productOptionUpdate` mutation enforces strict data integrity for product options and variants. All option positions must be sequential, and every option should be used by at least one variant. *** After you update a product option, you can further manage a product's configuration using related mutations: * [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) * [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) * [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) * [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) * [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) * [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). * product​Reorder​Media [Product​Reorder​Media​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductReorderMediaPayload) Asynchronously reorders the media attached to a product, changing the sequence in which images, videos, and other media appear in product displays. This affects how media is presented across all sales channels. For example, merchants can move their best product photo to the first position or reorder images to tell a better product story, with changes appearing in storefronts once processing completes. Use `ProductReorderMedia` to: * Optimize media presentation order for better customer experience * Implement drag-and-drop media management interfaces * Automate media sequencing based on performance or quality metrics The operation processes asynchronously to handle products with large media collections without blocking other operations. Learn more about [product media](https://shopify.dev/docs/api/admin-graphql/latest/objects/Media). * product​Set [Product​Set​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductSetPayload) Performs multiple operations to create or update products in a single request. Use the `productSet` mutation to sync information from an external data source into Shopify, manage large product catalogs, and perform batch updates. The mutation is helpful for bulk product management, including price adjustments, inventory updates, and product lifecycle management. The behavior of `productSet` depends on the type of field it's modifying: * **For list fields**: Creates new entries, updates existing entries, and deletes existing entries that aren't included in the mutation's input. Common examples of list fields include [`collections`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.collections), [`metafields`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.metafields), and [`variants`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.variants). * **For all other field types**: Updates only the included fields. Any omitted fields will remain unchanged. *** Note By default, stores have a limit of 2048 product variants for each product. *** You can run `productSet` in one of the following modes: * **Synchronously**: Returns the updated product in the response. * **Asynchronously**: Returns a [`ProductSetOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductSetOperation) object. Use the [`productOperation`](https://shopify.dev/api/admin-graphql/latest/queries/productOperation) query to check the status of the operation and retrieve details of the updated product and its product variants. If you need to only manage product variants, then use one of the following mutations: * [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) * [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) * [`productVariantsBulkDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete) If you need to only manage product options, then use one of the following mutations: * [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) * [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) * [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) * [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) Learn more about [syncing product data from an external source](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/sync-data). * product​Update [Product​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductUpdatePayload) Updates a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) with attributes such as title, description, vendor, and media. The `productUpdate` mutation helps you modify many products at once, avoiding the tedious or time-consuming process of updating them one by one in the Shopify admin. Common examples including updating product details like status or tags. The `productUpdate` mutation doesn't support updating [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). To update multiple product variants for a single product and manage prices, use the [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) mutation. *** Note The `productUpdate` mutation has a [throttle](https://shopify.dev/docs/api/usage/rate-limits#resource-based-rate-limits) that takes effect when a store has 50,000 product variants. After this threshold is reached, no more than 1,000 new product variants can be updated per day. *** After updating a product, you can make additional changes using one of the following mutations: * [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet): Used to perform multiple operations on products, such as creating or modifying product options and variants. * [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish): Used to publish the product and make it available to customers, if the product is currently unpublished. Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). * product​Variant​Append​Media [Product​Variant​Append​Media​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductVariantAppendMediaPayload) Appends existing media from a product to specific variants of that product, creating associations between media files and particular product options. This allows different variants to showcase relevant images or videos. For example, a t-shirt product might have color variants where each color variant displays only the images showing that specific color, helping customers see exactly what they're purchasing. Use `ProductVariantAppendMedia` to: * Associate specific images with product variants for accurate display * Build variant-specific media management in product interfaces * Implement automated media assignment based on variant attributes The operation links existing product media to variants without duplicating files, maintaining efficient media storage while enabling variant-specific displays. Learn more about [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). * product​Variant​Detach​Media [Product​Variant​Detach​Media​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductVariantDetachMediaPayload) Detaches media from product variants. * product​Variant​Join​Selling​Plan​Groups [Product​Variant​Join​Selling​Plan​Groups​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductVariantJoinSellingPlanGroupsPayload) Adds multiple selling plan groups to a product variant. * product​Variant​Leave​Selling​Plan​Groups [Product​Variant​Leave​Selling​Plan​Groups​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductVariantLeaveSellingPlanGroupsPayload) Remove multiple groups from a product variant. * product​Variant​Relationship​Bulk​Update [Product​Variant​Relationship​Bulk​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductVariantRelationshipBulkUpdatePayload) Creates new bundles, updates existing bundles, and removes bundle components for one or multiple bundles. * product​Variants​Bulk​Create [Product​Variants​Bulk​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductVariantsBulkCreatePayload) Creates multiple [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) for a single [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) in one operation. You can run this mutation directly or as part of a [bulk operation](https://shopify.dev/docs/api/usage/bulk-operations/imports) for large-scale catalog updates. Use the `productVariantsBulkCreate` mutation to efficiently add new product variants—such as different sizes, colors, or materials—to an existing product. The mutation is helpful if you need to add product variants in bulk, such as importing from an external system. The mutation supports: * Creating variants with custom option values * Associating media (for example, images, videos, and 3D models) with the product or its variants * Handling complex product configurations *** Note By default, stores have a limit of 2048 product variants for each product. *** After creating variants, you can make additional changes using one of the following mutations: * [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate): Updates multiple product variants for a single product in one operation. * [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet): Used to perform multiple operations on products, such as creating or modifying product options and variants. You can also specifically manage product options through related mutations: * [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) * [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) * [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) * [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). * product​Variants​Bulk​Delete [Product​Variants​Bulk​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductVariantsBulkDeletePayload) Deletes multiple variants in a single product. This mutation can be called directly or via the bulkOperation. * product​Variants​Bulk​Reorder [Product​Variants​Bulk​Reorder​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductVariantsBulkReorderPayload) Reorders multiple variants in a single product. This mutation can be called directly or via the bulkOperation. * product​Variants​Bulk​Update [Product​Variants​Bulk​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductVariantsBulkUpdatePayload) Updates multiple [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) for a single [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) in one operation. You can run this mutation directly or as part of a [bulk operation](https://shopify.dev/docs/api/usage/bulk-operations/imports) for large-scale catalog updates. Use the `productVariantsBulkUpdate` mutation to efficiently modify product variants—such as different sizes, colors, or materials—associated with an existing product. The mutation is helpful if you need to update a product's variants in bulk, such as importing from an external system. The mutation supports: * Updating variants with custom option values * Associating media (for example, images, videos, and 3D models) with the product or its variants * Handling complex product configurations *** Note By default, stores have a limit of 2048 product variants for each product. *** After creating variants, you can make additional changes using the [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) mutation, which is used to perform multiple operations on products, such as creating or modifying product options and variants. You can also specifically manage product options through related mutations: * [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) * [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) * [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) * [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). * publication​Create [Publication​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PublicationCreatePayload) Creates a publication. * publication​Delete [Publication​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PublicationDeletePayload) Deletes a publication. * publication​Update [Publication​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PublicationUpdatePayload) Updates a publication. * publishable​Publish [Publishable​Publish​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PublishablePublishPayload) Publishes a resource to a channel. If the resource is a product, then it's visible in the channel only if the product status is `active`. Products that are sold exclusively on subscription (`requiresSellingPlan: true`) can be published only on online stores. * publishable​Publish​To​Current​Channel [Publishable​Publish​To​Current​Channel​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PublishablePublishToCurrentChannelPayload) Publishes a resource to current channel. If the resource is a product, then it's visible in the channel only if the product status is `active`. Products that are sold exclusively on subscription (`requiresSellingPlan: true`) can be published only on online stores. * publishable​Unpublish [Publishable​Unpublish​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PublishableUnpublishPayload) Unpublishes a resource from a channel. If the resource is a product, then it's visible in the channel only if the product status is `active`. * publishable​Unpublish​To​Current​Channel [Publishable​Unpublish​To​Current​Channel​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PublishableUnpublishToCurrentChannelPayload) Unpublishes a resource from the current channel. If the resource is a product, then it's visible in the channel only if the product status is `active`. * pub​Sub​Server​Pixel​Update [Pub​Sub​Server​Pixel​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PubSubServerPixelUpdatePayload) Updates the server pixel to connect to a Google PubSub endpoint. Running this mutation deletes any previous subscriptions for the server pixel. * quantity​Pricing​By​Variant​Update [Quantity​Pricing​By​Variant​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/QuantityPricingByVariantUpdatePayload) Updates quantity pricing on a price list. You can use the `quantityPricingByVariantUpdate` mutation to set fixed prices, quantity rules, and quantity price breaks. This mutation does not allow partial successes. If any of the requested resources fail to update, none of the requested resources will be updated. Delete operations are executed before create operations. * quantity​Rules​Add [Quantity​Rules​Add​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/QuantityRulesAddPayload) Creates or updates existing quantity rules on a price list. You can use the `quantityRulesAdd` mutation to set order level minimums, maximumums and increments for specific product variants. * quantity​Rules​Delete [Quantity​Rules​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/QuantityRulesDeletePayload) Deletes specific quantity rules from a price list using a product variant ID. You can use the `quantityRulesDelete` mutation to delete a set of quantity rules from a price list. * refund​Create [Refund​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/RefundCreatePayload) Creates a refund for an order, allowing you to process returns and issue payments back to customers. Use the `refundCreate` mutation to programmatically process refunds in scenarios where you need to return money to customers, such as when handling returns, processing chargebacks, or correcting order errors. The `refundCreate` mutation supports various refund scenarios: * Refunding line items with optional restocking * Refunding shipping costs * Refunding duties and import taxes * Refunding additional fees * Processing refunds through different payment methods * Issuing store credit refunds (when enabled) You can create both full and partial refunds, and optionally allow over-refunding in specific cases. After creating a refund, you can track its status and details through the order's [`refunds`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.refunds) field. The refund is associated with the order and can be used for reporting and reconciliation purposes. Learn more about [managing returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) and [refunding duties](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/view-and-refund-duties). *** Note The refunding behavior of the `refundCreate` mutation is similar to the [`refundReturn`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnRefund) mutation. The key difference is that the `refundCreate` mutation lets you to specify restocking behavior for line items, whereas the `returnRefund` mutation focuses solely on handling the financial refund without any restocking input. *** * remove​From​Return [Remove​From​Return​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/RemoveFromReturnPayload) Removes return and/or exchange lines from a return. * return​Approve​Request [Return​Approve​Request​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReturnApproveRequestPayload) Approves a customer's return request. If this mutation is successful, then the `Return.status` field of the approved return is set to `OPEN`. * return​Cancel [Return​Cancel​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReturnCancelPayload) Cancels a return and restores the items back to being fulfilled. Canceling a return is only available before any work has been done on the return (such as an inspection or refund). * return​Close [Return​Close​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReturnClosePayload) Indicates a return is complete, either when a refund has been made and items restocked, or simply when it has been marked as returned in the system. * return​Create [Return​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReturnCreatePayload) Creates a return from an existing order that has at least one fulfilled [line item](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) that hasn't yet been refunded. If you create a return on an archived order, then the order is automatically unarchived. Use the `returnCreate` mutation when your workflow involves [approving](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnApproveRequest) or [declining](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnDeclineRequest) requested returns outside of the Shopify platform. The `returnCreate` mutation performs the following actions: * Creates a return in the `OPEN` state, and assumes that the return request from the customer has already been approved * Creates a [reverse fulfillment order](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders), and enables you to create a [reverse delivery](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-deliveries) for the reverse fulfillment order * Creates a sales agreement with a `RETURN` reason, which links to all sales created for the return or exchange * Generates sales records that reverse the sales records for the items being returned * Generates sales records for any exchange line items After you've created a return, use the [`return`](https://shopify.dev/docs/api/admin-graphql/latest/queries/return) query to retrieve the return by its ID. Learn more about providing a [return management workflow](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) for merchants. * return​Decline​Request [Return​Decline​Request​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReturnDeclineRequestPayload) Declines a return on an order. When a return is declined, each `ReturnLineItem.fulfillmentLineItem` can be associated to a new return. Use the `ReturnCreate` or `ReturnRequest` mutation to initiate a new return. * return​Process [Return​Process​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReturnProcessPayload) Process a return. * return​Reopen [Return​Reopen​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReturnReopenPayload) Reopens a closed return. * return​Request [Return​Request​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReturnRequestPayload) A customer's return request that hasn't been approved or declined. This mutation sets the value of the `Return.status` field to `REQUESTED`. To create a return that has the `Return.status` field set to `OPEN`, use the `returnCreate` mutation. * reverse​Delivery​Create​With​Shipping [Reverse​Delivery​Create​With​Shipping​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReverseDeliveryCreateWithShippingPayload) Creates a new reverse delivery with associated external shipping information. * reverse​Delivery​Shipping​Update [Reverse​Delivery​Shipping​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReverseDeliveryShippingUpdatePayload) Updates a reverse delivery with associated external shipping information. * reverse​Fulfillment​Order​Dispose [Reverse​Fulfillment​Order​Dispose​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReverseFulfillmentOrderDisposePayload) Disposes reverse fulfillment order line items. * saved​Search​Create [Saved​Search​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SavedSearchCreatePayload) Creates a saved search. * saved​Search​Delete [Saved​Search​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SavedSearchDeletePayload) Delete a saved search. * saved​Search​Update [Saved​Search​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SavedSearchUpdatePayload) Updates a saved search. * script​Tag​Create [Script​Tag​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ScriptTagCreatePayload) Theme app extensions If your app integrates with a Shopify theme and you plan to submit it to the Shopify App Store, you must use theme app extensions instead of Script tags. Script tags can only be used with vintage themes. [Learn more](https://shopify.dev/apps/online-store#what-integration-method-should-i-use). Script tag deprecation Script tags will be sunset for the **Order status** page on August 28, 2025. [Upgrade to Checkout Extensibility](https://www.shopify.com/plus/upgrading-to-checkout-extensibility) before this date. [Shopify Scripts](https://shopify.dev/docs/api/liquid/objects#script) will continue to work alongside Checkout Extensibility until August 28, 2025. Creates a new script tag. * script​Tag​Delete [Script​Tag​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ScriptTagDeletePayload) Theme app extensions If your app integrates with a Shopify theme and you plan to submit it to the Shopify App Store, you must use theme app extensions instead of Script tags. Script tags can only be used with vintage themes. [Learn more](https://shopify.dev/apps/online-store#what-integration-method-should-i-use). Script tag deprecation Script tags will be sunset for the **Order status** page on August 28, 2025. [Upgrade to Checkout Extensibility](https://www.shopify.com/plus/upgrading-to-checkout-extensibility) before this date. [Shopify Scripts](https://shopify.dev/docs/api/liquid/objects#script) will continue to work alongside Checkout Extensibility until August 28, 2025. Deletes a script tag. * script​Tag​Update [Script​Tag​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ScriptTagUpdatePayload) Theme app extensions If your app integrates with a Shopify theme and you plan to submit it to the Shopify App Store, you must use theme app extensions instead of Script tags. Script tags can only be used with vintage themes. [Learn more](https://shopify.dev/apps/online-store#what-integration-method-should-i-use). Script tag deprecation Script tags will be sunset for the **Order status** page on August 28, 2025. [Upgrade to Checkout Extensibility](https://www.shopify.com/plus/upgrading-to-checkout-extensibility) before this date. [Shopify Scripts](https://shopify.dev/docs/api/liquid/objects#script) will continue to work alongside Checkout Extensibility until August 28, 2025. Updates a script tag. * segment​Create [Segment​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SegmentCreatePayload) Creates a segment. * segment​Delete [Segment​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SegmentDeletePayload) Deletes a segment. * segment​Update [Segment​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SegmentUpdatePayload) Updates a segment. * selling​Plan​Group​Add​Products [Selling​Plan​Group​Add​Products​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SellingPlanGroupAddProductsPayload) Adds multiple products to a selling plan group. * selling​Plan​Group​Add​Product​Variants [Selling​Plan​Group​Add​Product​Variants​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SellingPlanGroupAddProductVariantsPayload) Adds multiple product variants to a selling plan group. * selling​Plan​Group​Create [Selling​Plan​Group​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SellingPlanGroupCreatePayload) Creates a Selling Plan Group. * selling​Plan​Group​Delete [Selling​Plan​Group​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SellingPlanGroupDeletePayload) Delete a Selling Plan Group. This does not affect subscription contracts. * selling​Plan​Group​Remove​Products [Selling​Plan​Group​Remove​Products​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SellingPlanGroupRemoveProductsPayload) Removes multiple products from a selling plan group. * selling​Plan​Group​Remove​Product​Variants [Selling​Plan​Group​Remove​Product​Variants​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SellingPlanGroupRemoveProductVariantsPayload) Removes multiple product variants from a selling plan group. * selling​Plan​Group​Update [Selling​Plan​Group​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SellingPlanGroupUpdatePayload) Update a Selling Plan Group. * server​Pixel​Create [Server​Pixel​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ServerPixelCreatePayload) Creates a new unconfigured server pixel. A single server pixel can exist for an app and shop combination. If you call this mutation when a server pixel already exists, then an error will return. * server​Pixel​Delete [Server​Pixel​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ServerPixelDeletePayload) Deletes the Server Pixel associated with the current app & shop. * shipping​Package​Delete [Shipping​Package​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ShippingPackageDeletePayload) Deletes a shipping package. * shipping​Package​Make​Default [Shipping​Package​Make​Default​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ShippingPackageMakeDefaultPayload) Set a shipping package as the default. The default shipping package is the one used to calculate shipping costs on checkout. * shipping​Package​Update [Shipping​Package​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ShippingPackageUpdatePayload) Updates a shipping package. * shopify​Payments​Payout​Alternate​Currency​Create [Shopify​Payments​Payout​Alternate​Currency​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ShopifyPaymentsPayoutAlternateCurrencyCreatePayload) Creates an alternate currency payout for a Shopify Payments account. * shop​Locale​Disable [Shop​Locale​Disable​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ShopLocaleDisablePayload) Deletes a locale for a shop. This also deletes all translations of this locale. * shop​Locale​Enable [Shop​Locale​Enable​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ShopLocaleEnablePayload) Adds a locale for a shop. The newly added locale is in the unpublished state. * shop​Locale​Update [Shop​Locale​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ShopLocaleUpdatePayload) Updates a locale for a shop. * shop​Policy​Update [Shop​Policy​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ShopPolicyUpdatePayload) Updates a shop policy. * shop​Resource​Feedback​Create [Shop​Resource​Feedback​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ShopResourceFeedbackCreatePayload) The `ResourceFeedback` object lets your app report the status of shops and their resources. For example, if your app is a marketplace channel, then you can use resource feedback to alert merchants that they need to connect their marketplace account by signing in. Resource feedback notifications are displayed to the merchant on the home screen of their Shopify admin, and in the product details view for any products that are published to your app. This resource should be used only in cases where you're describing steps that a merchant is required to complete. If your app offers optional or promotional set-up steps, or if it makes recommendations, then don't use resource feedback to let merchants know about them. ## Sending feedback on a shop You can send resource feedback on a shop to let the merchant know what steps they need to take to make sure that your app is set up correctly. Feedback can have one of two states: `requires_action` or `success`. You need to send a `requires_action` feedback request for each step that the merchant is required to complete. If there are multiple set-up steps that require merchant action, then send feedback with a state of `requires_action` as merchants complete prior steps. And to remove the feedback message from the Shopify admin, send a `success` feedback request. #### Important Sending feedback replaces previously sent feedback for the shop. Send a new `shopResourceFeedbackCreate` mutation to push the latest state of a shop or its resources to Shopify. * staged​Uploads​Create [Staged​Uploads​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/StagedUploadsCreatePayload) Creates staged upload targets for file uploads such as images, videos, and 3D models. Use the `stagedUploadsCreate` mutation instead of direct file creation mutations when: * **Uploading large files**: Files over a few MB benefit from staged uploads for better reliability * **Uploading media files**: Videos, 3D models, and high-resolution images * **Bulk importing**: CSV files, product catalogs, or other bulk data * **Using external file sources**: When files are stored remotely and need to be transferred to Shopify The `stagedUploadsCreate` mutation is the first step in Shopify's secure two-step upload process: **Step 1: Create staged upload targets** (this mutation) * Generate secure, temporary upload URLs for your files. * Receive authentication parameters for the upload. **Step 2: Upload files and create assets** * Upload your files directly to the provided URLs using the authentication parameters. * Use the returned `resourceUrl` as the `originalSource` in subsequent mutations like `fileCreate`. This approach provides better performance for large files, handles network interruptions gracefully, and ensures secure file transfers to Shopify's storage infrastructure. *** Note File size is required when uploading [`VIDEO`](https://shopify.dev/docs/api/admin-graphql/latest/enums/StagedUploadTargetGenerateUploadResource#enums-VIDEO) or [`MODEL_3D`](https://shopify.dev/docs/api/admin-graphql/latest/enums/StagedUploadTargetGenerateUploadResource#enums-MODEL_3D) resources. *** After creating staged upload targets, complete the process by: 1. **Uploading files**: Send your files to the returned [`url`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StagedMediaUploadTarget#field-StagedMediaUploadTarget.fields.url) using the provided [`parameters`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StagedMediaUploadTarget#field-StagedMediaUploadTarget.fields.parameters) for authentication 2. **Creating file assets**: Use the [`resourceUrl`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StagedMediaUploadTarget#field-StagedMediaUploadTarget.fields.resourceUrl) as the `originalSource` in mutations such as: * [`fileCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileCreate): Creates file assets from staged uploads * [`productUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate): Updates products with new media from staged uploads Learn more about [uploading media to Shopify](https://shopify.dev/apps/online-store/media/products). * standard​Metafield​Definition​Enable [Standard​Metafield​Definition​Enable​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/StandardMetafieldDefinitionEnablePayload) Activates the specified standard metafield definition from its template. Refer to the [list of standard metafield definition templates](https://shopify.dev/apps/metafields/definitions/standard-definitions). * standard​Metaobject​Definition​Enable [Standard​Metaobject​Definition​Enable​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/StandardMetaobjectDefinitionEnablePayload) Enables the specified standard metaobject definition from its template. * store​Credit​Account​Credit [Store​Credit​Account​Credit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/StoreCreditAccountCreditPayload) Creates a credit transaction that increases the store credit account balance by the given amount. This operation will create an account if one does not already exist. A store credit account owner can hold multiple accounts each with a different currency. Use the most appropriate currency for the given store credit account owner. * store​Credit​Account​Debit [Store​Credit​Account​Debit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/StoreCreditAccountDebitPayload) Creates a debit transaction that decreases the store credit account balance by the given amount. * storefront​Access​Token​Create [Storefront​Access​Token​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/StorefrontAccessTokenCreatePayload) Creates a storefront access token for use with the [Storefront API](https://shopify.dev/docs/api/storefront). An app can have a maximum of 100 active storefront access tokens for each shop. [Get started with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). * storefront​Access​Token​Delete [Storefront​Access​Token​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/StorefrontAccessTokenDeletePayload) Deletes a storefront access token. * subscription​Billing​Attempt​Create [Subscription​Billing​Attempt​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingAttemptCreatePayload) Creates a new subscription billing attempt. For more information, refer to [Create a subscription contract](https://shopify.dev/docs/apps/selling-strategies/subscriptions/contracts/create#step-4-create-a-billing-attempt). * subscription​Billing​Cycle​Bulk​Charge [Subscription​Billing​Cycle​Bulk​Charge​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleBulkChargePayload) Asynchronously queries and charges all subscription billing cycles whose [billingAttemptExpectedDate](https://shopify.dev/api/admin-graphql/latest/objects/SubscriptionBillingCycle#field-billingattemptexpecteddate) values fall within a specified date range and meet additional filtering criteria. The results of this action can be retrieved using the [subscriptionBillingCycleBulkResults](https://shopify.dev/api/admin-graphql/latest/queries/subscriptionBillingCycleBulkResults) query. * subscription​Billing​Cycle​Bulk​Search [Subscription​Billing​Cycle​Bulk​Search​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleBulkSearchPayload) Asynchronously queries all subscription billing cycles whose [billingAttemptExpectedDate](https://shopify.dev/api/admin-graphql/latest/objects/SubscriptionBillingCycle#field-billingattemptexpecteddate) values fall within a specified date range and meet additional filtering criteria. The results of this action can be retrieved using the [subscriptionBillingCycleBulkResults](https://shopify.dev/api/admin-graphql/latest/queries/subscriptionBillingCycleBulkResults) query. * subscription​Billing​Cycle​Charge [Subscription​Billing​Cycle​Charge​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleChargePayload) Creates a new subscription billing attempt for a specified billing cycle. This is the alternative mutation for [subscriptionBillingAttemptCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionBillingAttemptCreate). For more information, refer to [Create a subscription contract](https://shopify.dev/docs/apps/selling-strategies/subscriptions/contracts/create#step-4-create-a-billing-attempt). * subscription​Billing​Cycle​Contract​Draft​Commit [Subscription​Billing​Cycle​Contract​Draft​Commit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleContractDraftCommitPayload) Commits the updates of a Subscription Billing Cycle Contract draft. * subscription​Billing​Cycle​Contract​Draft​Concatenate [Subscription​Billing​Cycle​Contract​Draft​Concatenate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleContractDraftConcatenatePayload) Concatenates a contract to a Subscription Draft. * subscription​Billing​Cycle​Contract​Edit [Subscription​Billing​Cycle​Contract​Edit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleContractEditPayload) Edit the contents of a subscription contract for the specified billing cycle. * subscription​Billing​Cycle​Edit​Delete [Subscription​Billing​Cycle​Edit​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleEditDeletePayload) Delete the schedule and contract edits of the selected subscription billing cycle. * subscription​Billing​Cycle​Edits​Delete [Subscription​Billing​Cycle​Edits​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleEditsDeletePayload) Delete the current and future schedule and contract edits of a list of subscription billing cycles. * subscription​Billing​Cycle​Schedule​Edit [Subscription​Billing​Cycle​Schedule​Edit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleScheduleEditPayload) Modify the schedule of a specific billing cycle. * subscription​Billing​Cycle​Skip [Subscription​Billing​Cycle​Skip​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleSkipPayload) Skips a Subscription Billing Cycle. * subscription​Billing​Cycle​Unskip [Subscription​Billing​Cycle​Unskip​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionBillingCycleUnskipPayload) Unskips a Subscription Billing Cycle. * subscription​Contract​Activate [Subscription​Contract​Activate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionContractActivatePayload) Activates a Subscription Contract. Contract status must be either active, paused, or failed. * subscription​Contract​Atomic​Create [Subscription​Contract​Atomic​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionContractAtomicCreatePayload) Creates a Subscription Contract. * subscription​Contract​Cancel [Subscription​Contract​Cancel​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionContractCancelPayload) Cancels a Subscription Contract. * subscription​Contract​Create [Subscription​Contract​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionContractCreatePayload) Creates a Subscription Contract Draft. You can submit all the desired information for the draft using [Subscription Draft Input object](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/SubscriptionDraftInput). You can also update the draft using the [Subscription Contract Update](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionContractUpdate) mutation. The draft is not saved until you call the [Subscription Draft Commit](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftCommit) mutation. * subscription​Contract​Expire [Subscription​Contract​Expire​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionContractExpirePayload) Expires a Subscription Contract. * subscription​Contract​Fail [Subscription​Contract​Fail​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionContractFailPayload) Fails a Subscription Contract. * subscription​Contract​Pause [Subscription​Contract​Pause​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionContractPausePayload) Pauses a Subscription Contract. * subscription​Contract​Product​Change [Subscription​Contract​Product​Change​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionContractProductChangePayload) Allows for the easy change of a Product in a Contract or a Product price change. * subscription​Contract​Set​Next​Billing​Date [Subscription​Contract​Set​Next​Billing​Date​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionContractSetNextBillingDatePayload) Sets the next billing date of a Subscription Contract. This field is managed by the apps. Alternatively you can utilize our [Billing Cycles APIs](https://shopify.dev/docs/apps/selling-strategies/subscriptions/billing-cycles), which provide auto-computed billing dates and additional functionalities. * subscription​Contract​Update [Subscription​Contract​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionContractUpdatePayload) The subscriptionContractUpdate mutation allows you to create a draft of an existing subscription contract. This [draft](https://shopify.dev/api/admin-graphql/latest/objects/SubscriptionDraft) can be reviewed and modified as needed. Once the draft is committed with [subscriptionDraftCommit](https://shopify.dev/api/admin-graphql/latest/mutations/subscriptionDraftCommit), the changes are applied to the original subscription contract. * subscription​Draft​Commit [Subscription​Draft​Commit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftCommitPayload) Commits the updates of a Subscription Contract draft. * subscription​Draft​Discount​Add [Subscription​Draft​Discount​Add​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftDiscountAddPayload) Adds a subscription discount to a subscription draft. * subscription​Draft​Discount​Code​Apply [Subscription​Draft​Discount​Code​Apply​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftDiscountCodeApplyPayload) Applies a code discount on the subscription draft. * subscription​Draft​Discount​Remove [Subscription​Draft​Discount​Remove​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftDiscountRemovePayload) Removes a subscription discount from a subscription draft. * subscription​Draft​Discount​Update [Subscription​Draft​Discount​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftDiscountUpdatePayload) Updates a subscription discount on a subscription draft. * subscription​Draft​Free​Shipping​Discount​Add [Subscription​Draft​Free​Shipping​Discount​Add​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftFreeShippingDiscountAddPayload) Adds a subscription free shipping discount to a subscription draft. * subscription​Draft​Free​Shipping​Discount​Update [Subscription​Draft​Free​Shipping​Discount​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftFreeShippingDiscountUpdatePayload) Updates a subscription free shipping discount on a subscription draft. * subscription​Draft​Line​Add [Subscription​Draft​Line​Add​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftLineAddPayload) Adds a subscription line to a subscription draft. * subscription​Draft​Line​Remove [Subscription​Draft​Line​Remove​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftLineRemovePayload) Removes a subscription line from a subscription draft. * subscription​Draft​Line​Update [Subscription​Draft​Line​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftLineUpdatePayload) Updates a subscription line on a subscription draft. * subscription​Draft​Update [Subscription​Draft​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/SubscriptionDraftUpdatePayload) Updates a Subscription Draft. * tags​Add [Tags​Add​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/TagsAddPayload) Add tags to an order, a draft order, a customer, a product, or an online store article. * tags​Remove [Tags​Remove​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/TagsRemovePayload) Remove tags from an order, a draft order, a customer, a product, or an online store article. * tax​App​Configure [Tax​App​Configure​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/TaxAppConfigurePayload) Allows tax app configurations for tax partners. * theme​Create [Theme​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ThemeCreatePayload) Creates a theme using an external URL or for files that were previously uploaded using the [stagedUploadsCreate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/stageduploadscreate). These themes are added to the [Themes page](https://admin.shopify.com/themes) in Shopify admin. * theme​Delete [Theme​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ThemeDeletePayload) Deletes a theme. * theme​Duplicate [Theme​Duplicate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ThemeDuplicatePayload) Duplicates a theme. * theme​Files​Copy [Theme​Files​Copy​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ThemeFilesCopyPayload) Copy theme files. Copying to existing theme files will overwrite them. * theme​Files​Delete [Theme​Files​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ThemeFilesDeletePayload) Deletes a theme's files. * theme​Files​Upsert [Theme​Files​Upsert​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ThemeFilesUpsertPayload) Create or update theme files. * theme​Publish [Theme​Publish​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ThemePublishPayload) Publishes a theme. * theme​Update [Theme​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ThemeUpdatePayload) Updates a theme. * transaction​Void [Transaction​Void​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/TransactionVoidPayload) Trigger the voiding of an uncaptured authorization transaction. * translations​Register [Translations​Register​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/TranslationsRegisterPayload) Creates or updates translations. * translations​Remove [Translations​Remove​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/TranslationsRemovePayload) Deletes translations. * url​Redirect​Bulk​Delete​All [Url​Redirect​Bulk​Delete​All​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/UrlRedirectBulkDeleteAllPayload) Asynchronously delete [URL redirects](https://shopify.dev/api/admin-graphql/latest/objects/UrlRedirect) in bulk. * url​Redirect​Bulk​Delete​By​Ids [Url​Redirect​Bulk​Delete​By​Ids​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/UrlRedirectBulkDeleteByIdsPayload) Asynchronously delete [URLRedirect](https://shopify.dev/api/admin-graphql/latest/objects/UrlRedirect) objects in bulk by IDs. Learn more about [URLRedirect](https://help.shopify.com/en/manual/online-store/menus-and-links/url-redirect) objects. * url​Redirect​Bulk​Delete​By​Saved​Search [Url​Redirect​Bulk​Delete​By​Saved​Search​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/UrlRedirectBulkDeleteBySavedSearchPayload) Asynchronously delete redirects in bulk. * url​Redirect​Bulk​Delete​By​Search [Url​Redirect​Bulk​Delete​By​Search​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/UrlRedirectBulkDeleteBySearchPayload) Asynchronously delete redirects in bulk. * url​Redirect​Create [Url​Redirect​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/UrlRedirectCreatePayload) Creates a [`UrlRedirect`](https://shopify.dev/api/admin-graphql/latest/objects/UrlRedirect) object. * url​Redirect​Delete [Url​Redirect​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/UrlRedirectDeletePayload) Deletes a [`UrlRedirect`](https://shopify.dev/api/admin-graphql/latest/objects/UrlRedirect) object. * url​Redirect​Import​Create [Url​Redirect​Import​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/UrlRedirectImportCreatePayload) Creates a [`UrlRedirectImport`](https://shopify.dev/api/admin-graphql/latest/objects/UrlRedirectImport) object. After creating the `UrlRedirectImport` object, the `UrlRedirectImport` request can be performed using the [`urlRedirectImportSubmit`](https://shopify.dev/api/admin-graphql/latest/mutations/urlRedirectImportSubmit) mutation. * url​Redirect​Import​Submit [Url​Redirect​Import​Submit​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/UrlRedirectImportSubmitPayload) Submits a `UrlRedirectImport` request to be processed. The `UrlRedirectImport` request is first created with the [`urlRedirectImportCreate`](https://shopify.dev/api/admin-graphql/latest/mutations/urlRedirectImportCreate) mutation. * url​Redirect​Update [Url​Redirect​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/UrlRedirectUpdatePayload) Updates a URL redirect. * validation​Create [Validation​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ValidationCreatePayload) Creates a validation. * validation​Delete [Validation​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ValidationDeletePayload) Deletes a validation. * validation​Update [Validation​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ValidationUpdatePayload) Update a validation. * webhook​Subscription​Create [Webhook​Subscription​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/WebhookSubscriptionCreatePayload) Set up webhook subscriptions so your app gets notified instantly when things happen in a merchant's store. Instead of constantly checking for changes, webhooks push updates to your app the moment they occur, making integrations faster and more efficient. For example, an inventory management app might create subscriptions for `orders/paid` and `inventory_levels/update` events to automatically adjust stock levels and trigger fulfillment processes when customers complete purchases. Use `webhookSubscriptionCreate` to: * Set up real-time event notifications for your app * Configure specific topics like order creation, product updates, or customer changes * Define endpoint destinations (HTTPS, EventBridge, or Pub/Sub) * Filter events using Shopify search syntax to receive notifications only for relevant events * Configure field inclusion to control which data fields are included in webhook payloads The mutation supports multiple endpoint types and advanced filtering options, allowing you to create precisely targeted webhook subscriptions that match your app's integration needs. The API version is inherited from the app configuration and cannot be specified per subscription. Filters use Shopify search syntax to determine which events trigger notifications. Successful creation returns the webhook subscription fields that you request in your query. The mutation validates topic availability, filter syntax, and endpoint configuration. Learn more about [creating webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe). 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](https://shopify.dev/docs/apps/build/webhooks/subscribe). * webhook​Subscription​Delete [Webhook​Subscription​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/WebhookSubscriptionDeletePayload) Removes an existing webhook subscription, stopping all future event notifications for that subscription. This mutation provides a clean way to deactivate webhooks when they're no longer needed. For example, when an app feature is disabled or when you need to change webhook configurations, you can delete the old webhook subscription to prevent unnecessary event delivery and potential errors. Alternatively, for endpoint changes, you might consider updating the existing subscription instead of deleting and recreating it. Use `webhookSubscriptionDelete` to: * Clean up unused webhook subscriptions * Stop event delivery to deprecated endpoints * Remove subscriptions during app uninstallation * Reduce unnecessary resource usage by removing unused subscriptions The mutation returns the deleted subscription's ID for confirmation when successful. Validation errors are included in the response if you request them in your query, as with all GraphQL mutations. Learn more about [managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe). 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](https://shopify.dev/docs/apps/build/webhooks/subscribe). * webhook​Subscription​Update [Webhook​Subscription​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/WebhookSubscriptionUpdatePayload) Updates an existing webhook subscription's configuration, allowing you to modify endpoints, topics, filters, and other subscription settings without recreating the entire subscription. This mutation provides flexible webhook management for evolving app requirements. For example, when migrating from HTTP endpoints to EventBridge, you can update the subscription's endpoint configuration while preserving the same topic subscriptions and filters, ensuring continuity of event delivery during infrastructure changes. Use `webhookSubscriptionUpdate` to: * Change webhook endpoint URLs or destination types * Modify event filtering criteria to refine event relevance * Adjust field inclusion settings to optimize payload sizes * Configure metafield namespace access for extended data The mutation supports comprehensive configuration changes including endpoint type switching (HTTP to Pub/Sub, for instance), topic modifications, and advanced filtering updates. The API version is inherited from the app configuration and cannot be changed per subscription. Updates are applied atomically, ensuring that webhook delivery continues uninterrupted during configuration changes. The response includes the updated subscription fields that you request in your query, and validation errors if requested. Learn more about [updating webhook configurations](https://shopify.dev/docs/apps/build/webhooks/subscribe). 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](https://shopify.dev/docs/apps/build/webhooks/subscribe). * web​Pixel​Create [Web​Pixel​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/WebPixelCreatePayload) Activate a [web pixel extension](https://shopify.dev/docs/apps/build/marketing-analytics/build-web-pixels) by creating a web pixel record on the store where you installed your app. When you run the `webPixelCreate` mutation, Shopify validates it against the settings definition in `shopify.extension.toml`. If the `settings` input field doesn't match the schema that you defined, then the mutation fails. Learn how to define [web pixel settings](https://shopify.dev/docs/apps/build/marketing-analytics/build-web-pixels#step-2-define-your-web-pixel-settings). * web​Pixel​Delete [Web​Pixel​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/WebPixelDeletePayload) Deletes the web pixel shop settings. * web​Pixel​Update [Web​Pixel​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/WebPixelUpdatePayload) Activate a [web pixel extension](https://shopify.dev/docs/apps/build/marketing-analytics/build-web-pixels) by updating a web pixel record on the store where you installed your app. When you run the `webPixelUpdate` mutation, Shopify validates it against the settings definition in `shopify.extension.toml`. If the `settings` input field doesn't match the schema that you defined, then the mutation fails. Learn how to define [web pixel settings](https://shopify.dev/docs/apps/build/marketing-analytics/build-web-pixels#step-2-define-your-web-pixel-settings). * web​Presence​Create [Web​Presence​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/WebPresenceCreatePayload) Creates a web presence. * web​Presence​Delete [Web​Presence​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/WebPresenceDeletePayload) Deletes a web presence. * web​Presence​Update [Web​Presence​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/WebPresenceUpdatePayload) Updates a web presence. ### Deprecated fields * abandonment​Email​State​Update [Abandonment​Email​State​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/AbandonmentEmailStateUpdatePayload) Deprecated * collection​Publish [Collection​Publish​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CollectionPublishPayload) Deprecated * collection​Unpublish [Collection​Unpublish​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CollectionUnpublishPayload) Deprecated * company​Location​Assign​Tax​Exemptions [Company​Location​Assign​Tax​Exemptions​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationAssignTaxExemptionsPayload) Deprecated * company​Location​Create​Tax​Registration [Company​Location​Create​Tax​Registration​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationCreateTaxRegistrationPayload) Deprecated * company​Location​Revoke​Tax​Exemptions [Company​Location​Revoke​Tax​Exemptions​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationRevokeTaxExemptionsPayload) Deprecated * company​Location​Revoke​Tax​Registration [Company​Location​Revoke​Tax​Registration​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/CompanyLocationRevokeTaxRegistrationPayload) Deprecated * event​Bridge​Webhook​Subscription​Create [Event​Bridge​Webhook​Subscription​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/EventBridgeWebhookSubscriptionCreatePayload) Deprecated * event​Bridge​Webhook​Subscription​Update [Event​Bridge​Webhook​Subscription​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/EventBridgeWebhookSubscriptionUpdatePayload) Deprecated * fulfillment​Create​V2 [Fulfillment​Create​V2Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentCreateV2Payload) Deprecated * fulfillment​Tracking​Info​Update​V2 [Fulfillment​Tracking​Info​Update​V2Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/FulfillmentTrackingInfoUpdateV2Payload) Deprecated * inventory​Set​On​Hand​Quantities [Inventory​Set​On​Hand​Quantities​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/InventorySetOnHandQuantitiesPayload) Deprecated * market​Currency​Settings​Update [Market​Currency​Settings​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketCurrencySettingsUpdatePayload) Deprecated * market​Region​Delete [Market​Region​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketRegionDeletePayload) Deprecated * market​Regions​Create [Market​Regions​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketRegionsCreatePayload) Deprecated * market​Regions​Delete [Market​Regions​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketRegionsDeletePayload) Deprecated * market​Web​Presence​Create [Market​Web​Presence​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketWebPresenceCreatePayload) Deprecated * market​Web​Presence​Delete [Market​Web​Presence​Delete​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketWebPresenceDeletePayload) Deprecated * market​Web​Presence​Update [Market​Web​Presence​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/MarketWebPresenceUpdatePayload) Deprecated * order​Edit​Remove​Line​Item​Discount [Order​Edit​Remove​Line​Item​Discount​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/OrderEditRemoveLineItemDiscountPayload) Deprecated * product​Change​Status [Product​Change​Status​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductChangeStatusPayload) Deprecated * product​Create​Media [Product​Create​Media​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductCreateMediaPayload) Deprecated * product​Delete​Media [Product​Delete​Media​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductDeleteMediaPayload) Deprecated * product​Publish [Product​Publish​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductPublishPayload) Deprecated * product​Unpublish [Product​Unpublish​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductUnpublishPayload) Deprecated * product​Update​Media [Product​Update​Media​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ProductUpdateMediaPayload) Deprecated * pub​Sub​Webhook​Subscription​Create [Pub​Sub​Webhook​Subscription​Create​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PubSubWebhookSubscriptionCreatePayload) Deprecated * pub​Sub​Webhook​Subscription​Update [Pub​Sub​Webhook​Subscription​Update​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/PubSubWebhookSubscriptionUpdatePayload) Deprecated * return​Line​Item​Remove​From​Return [Return​Line​Item​Remove​From​Return​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReturnLineItemRemoveFromReturnPayload) Deprecated * return​Refund [Return​Refund​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/ReturnRefundPayload) Deprecated * staged​Upload​Target​Generate [Staged​Upload​Target​Generate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/StagedUploadTargetGeneratePayload) Deprecated * staged​Upload​Targets​Generate [Staged​Upload​Targets​Generate​Payload](https://shopify.dev/docs/api/admin-graphql/latest/types/StagedUploadTargetsGeneratePayload) Deprecated *** ## Map No referencing types