Bulk Operation Finished
Triggers when a bulk operation started by this app finishes, whether it completed, failed, was canceled or expired. Shopify sends no result URL on this event; read `currentBulkOperation` to get one.
Shopify is an e-commerce platform. This toolkit is GraphQL-first for new Admin API automations while retaining legacy REST compatibility actions for older workflows and numeric-ID interoperability
Triggers when a bulk operation started by this app finishes, whether it completed, failed, was canceled or expired. Shopify sends no result URL on this event; read `currentBulkOperation` to get one.
Triggers when a collection is created. Automated collections carry `rules` and `disjunctive`; manual ones omit both.
Triggers when a collection is deleted. Shopify sends only the collection's ids and publication scope, not its title, rules or products.
Triggers when a collection's own fields change, and also when a product is added to or removed from a manual collection. The body never lists the collection's products — read them with `SHOPIFY_LIST_COLLECTION_PRODUCTS`.
Triggers when a customer segment is created. The body carries the segment's query, not the customers it selects.
Triggers when a customer segment is deleted. Shopify sends only the segment id.
Triggers when a customer segment is renamed or its query is edited. Customers entering or leaving a segment as they meet the query are not reported.
Triggers when a redeemable code is added to a discount, once per code. Discount Updated fires alongside it, because the discount's own record changes too.
Triggers when a redeemable code is removed from a discount, once per code. The code stops working immediately; the discount itself survives.
Triggers when a discount is created, whether it applies automatically or through a code. The body is a summary — read the discount's value and conditions with `SHOPIFY_GRAPH_QL_DISCOUNTS`.
Triggers when a discount is deleted. Its codes stop working at the same moment and are not reported separately.
Triggers when a discount is edited, and when it reaches its scheduled start or end and `status` changes. Adding or removing a code fires this as well as the dedicated code triggers.
Triggers when an inventory item is created, which Shopify does once per new product variant. It carries the variant's stock-keeping fields — SKU, cost, weight, customs — but no quantities.
Triggers when an inventory item is deleted, which happens for each variant of a deleted product. Shopify sends the item's ids and customs fields only, not its SKU or cost.
Triggers when an inventory item's stock-keeping fields change, such as its SKU, unit cost, weight or customs codes. Quantity changes are not here; those come through Inventory Level Updated.
Triggers when the quantity of an inventory item changes at a location, in either direction, once per location affected. Shopify sends the new `available` count but no delta.
Triggers when a shipment is created against a stock transfer, once per consignment. It starts as `DRAFT` and moves on through Inventory Shipment In Transit and Inventory Shipment Items Received.
Triggers when a stock shipment is marked in transit. Shopify sends the status change only, with no lines and no tracking.
Triggers when items from a stock shipment are received, once per receiving step. `status` reads `PARTIALLY_RECEIVED` until the last step, and each line carries its accepted and rejected counts before and after.
Triggers when the carrier tracking on a stock shipment is set or changed. The body carries the tracking as it now stands, not what it replaced.
Triggers when an inventory item starts being stocked at a location. This is the item being activated there, not its quantity changing — later quantity changes come through Inventory Level Updated.
Triggers when a stock transfer between the merchant's locations is marked ready to ship, before any shipment exists against it. Its lines name transfer-line ids rather than products.
Triggers when an inventory item stops being stocked at a location, either because the merchant deactivated it there or because the product was deleted. The body is just the item and location ids.
Triggers when a location is activated and can hold stock and fulfil orders again. Its previous stock is not restored; that arrives as Inventory Stocked At Location.
Triggers when a location is added to the store. A new location can hold inventory straight away, so this is the first sight of a `location_id` that will appear on the inventory triggers.
Triggers when a location is deactivated. It stays on the store with `active` reading `false`, but can no longer hold stock or fulfil orders.
Triggers when a location is deleted. Shopify sends only the location id, and a location must be deactivated first, so Location Deactivated normally arrives before it.
Triggers when a location's own details change, such as its name, address or fulfilment settings. Activation and deactivation have their own triggers and are not reported here.
Triggers when a market is created. New markets start as `draft` and sell nothing until they are activated, which arrives as Market Updated.
Triggers when a market is renamed, activated or otherwise changed. The body is a summary; the market's regions, currencies, domains and price lists are not included.
Triggers when a metafield definition is created, i.e. the schema for one custom field on a resource. Shopify follows every creation with a Metafield Definition Updated for the same definition moments later.
Triggers when a metafield definition is deleted. Shopify sends only its id, type class and creating app — no namespace, key or owner resource — so this trigger cannot offer the filters its create and update siblings do.
Triggers when a metafield definition's name, description, validations, pinning or storefront access change. Values written into the metafields it defines are not reported.
Triggers when a product is created, from the admin, the API, an import or an app. A product with tracked inventory also fires Inventory Item Created and Inventory Stocked At Location.
Triggers when a product is deleted. Shopify sends only the product id, and a product with tracked inventory also fires Inventory Unstocked At Location and Inventory Item Deleted per variant.
Triggers when any field of a product changes, as one delivery per edit rather than one per field. It also fires when a variant's inventory quantity changes and when a metafield is written on the product, which makes it the highest-volume product trigger.
Triggers when a variant's stock crosses back above zero across every location, not on every restock. It arrives a few seconds after the inventory change that caused it, so it is not ordered against Inventory Level Updated.
Triggers when a variant's stock crosses to zero across every location, not on every sale. It arrives a few seconds after the inventory change that caused it, so it is not ordered against Inventory Level Updated.
Triggers when a shipping profile is created. The body is a summary; the profile's zones, rates and products are not included.
Triggers when a shipping profile is deleted. Unusually for a Shopify delete event the body is the whole profile, and the products it covered fall back to the store's General profile.
Triggers when a shipping profile is renamed, or its zones, rates or product assignments change. Which of those changed is not reported, only that `version` advanced.
Triggers when the store's own record changes — its address, currency, timezone, plan, tax or checkout settings. It also fires when a metafield on the store is written or deleted, with none of these fields moving.
Triggers when a language is added to the store. It is normally added unpublished, so `published` reads `false` until the merchant makes it visible, which arrives as Store Language Updated.
Triggers when a language is removed from the store, taking its stored translations with it. `published` describes the language as it stood at removal.
Triggers when a store language is published or unpublished. `published` is what changes; the language stays on the store either way.
Accept a pending cancellation request as the fulfillment service managing the order. Use only for fulfillment orders assigned to this app's fulfillment service, after the merchant requests cancellation. Returns the updated fulfillment order. Uses the legacy Shopify REST Admin API and requires protected customer data access.
Accept a submitted fulfillment request as the fulfillment service managing the order. Use only for fulfillment orders assigned to this app's fulfillment service, after the merchant submits a fulfillment request. Returns the updated order, normally with request_status accepted and status in_progress. Uses the legacy Shopify REST Admin API and requires protected customer data access.
Activate an accepted one-time Shopify application charge to finalize billing, using the legacy activation operation. DEPRECATED: Shopify removed this endpoint as of API version 2021-01; merchant-approved charges now transition directly from pending to active without a separate activation call.
Add a product to a custom collection by creating a collect resource. Use when you need to link a product to a custom collection. Note: Can only add products to custom collections, not smart collections.
DEPRECATED: Use SHOPIFY_ADDS_A_PRODUCT_TO_A_CUSTOM_COLLECTION instead. Adds a product to an existing *custom collection*, optionally specifying its `position` if the collection is manually sorted.
Adjust the inventory level of an inventory item at a single location. Use when you need to increase or decrease stock quantities at a specific location.
Applies a fulfillment hold to an open fulfillment order, halting all fulfillment work. Use when you need to pause fulfillment due to payment issues, fraud concerns, address problems, or inventory shortages. The fulfillment order status will change to on_hold, preventing any fulfillment work from proceeding until the hold is released.
Approves a pending comment and publishes it to a blog article, making it publicly visible to readers. This action changes the comment's status from 'pending' or 'unapproved' to 'published' and sets the published_at timestamp. Use this when moderating blog comments that require approval before appearing on the storefront. Requires the 'write_content' scope.
Creates products using a Shopify asynchronous bulk mutation and polls for a terminal status. It returns available parsed product results or an error if results are unavailable, and may time out while the operation is still running.
Performs bulk operations on multiple customer addresses. Currently supports the 'destroy' operation to delete multiple addresses at once. Use this when you need to remove several addresses for a customer in a single API call instead of deleting them one by one.
Bulk delete multiple customer addresses in a single operation. This action permanently removes several addresses from a customer's address book at once, which is more efficient than deleting addresses one by one. Use this when you need to clean up multiple invalid or outdated addresses for a customer. Requires the 'write_customers' scope and access to protected customer data.
Asynchronously delete metaobjects and their associated metafields in bulk. Use this action to delete multiple metaobjects by their IDs or delete all metaobjects of a specific type. The operation is asynchronous and returns a job ID for tracking completion status.
Updates product variants grouped by product using Shopify's productVariantsBulkUpdate mutation. Supports pricing, barcode, tax, inventory policy, and media association, and returns per-variant success or errors.
Updates status for product GIDs or a collection snapshot; per-product writes are non-atomic and report partial failures.
Calculate accurate refund amounts, taxes, and transactions for a Shopify order before creating an actual refund. Use this action to: - Preview refund calculations for line items with accurate tax breakdowns - Determine shipping refund amounts and maximum refundable values - Get suggested transactions that can be used to create the actual refund The response includes transactions with kind='suggested_refund' which must be changed to kind='refund' before creating an actual refund using the create refund endpoint.
Cancels an existing fulfillment by its ID, reverting all line items to an unfulfilled state. Use this when a fulfillment was created in error or needs to be redone. The cancellation is permanent and cannot be undone - the line items will return to the unfulfilled state and a new fulfillment must be created if needed. Only fulfillments that haven't been shipped or are in certain states can be cancelled.
Cancels a fulfillment order in Shopify and marks it as closed. This creates a replacement fulfillment order with the same line items, allowing reassignment to a different location. Use this for merchant-managed fulfillments. For third-party fulfillment services, use the cancellation request endpoints instead. This endpoint immediately cancels the order without requiring acceptance from a fulfillment service.
Cancels a Shopify order and optionally restocks items and sends email notifications. Use when canceling an order that has not yet been paid or fulfilled. Orders cannot be cancelled if payment status is already paid or if the order has existing fulfillments.
Cancel an app subscription in Shopify using the appSubscriptionCancel GraphQL mutation. Use when you need to cancel an existing app subscription, optionally with prorated credits.
Cancel a recurring application charge by its ID. A successful cancellation returns an empty response. Uses the legacy REST Admin API; Shopify recommends GraphQL appSubscriptionCancel for new apps.
Cancel a running Shopify bulk operation. Use when you need to stop a long-running bulk query or mutation operation that is no longer needed. Note that there may be a short delay between when cancelation starts and when the operation is actually canceled.
Requests batch listing information for a price rule. If Shopify returns 404, it returns guidance about retrieving a specific batch by ID; other successful responses are validated as batch information.
Closes an open Shopify order. Use when all line items have been fulfilled or canceled and all financial transactions are complete.
Mark an in-progress fulfillment order incomplete, not cancelled. Only the fulfillment service app that accepted the request can close it. The order must be assigned to a fulfillment service location with an accepted request and in_progress status. Closes the request and returns control to the merchant without cancelling the order. Uses the legacy REST Admin API.
Complete a draft order in Shopify and transition it to an actual order. Use when you need to finalize a draft order, reserve inventory, and create a corresponding order. When completing with payment_pending=true, the payment gateway is set to Manual.
Connects an inventory item to a location, establishing where the item can be stocked and fulfilled. This creates an inventory level with an initial available quantity of 0. Use this when you need to enable a product variant to be stocked at a new location. After connecting, use the 'set' or 'adjust' inventory level actions to update quantities.
Count all events in a Shopify store with comprehensive filtering. Use when you need to determine how many events match specified criteria including date range, resource type, or action verb.
Retrieves a count of all articles from a blog. Use when you need to know how many articles exist in a specific blog, optionally filtered by creation, publication, or update dates and publication status.
Retrieves a count of fulfillments associated with a specific order. Use when you need to determine how many fulfillments exist for an order, optionally filtered by creation or update dates.
DEPRECATED: Use SHOPIFY_RETRIEVES_AN_ORDER_COUNT instead. Retrieves the count of orders in a Shopify store. Use when you need to know how many orders exist, optionally filtered by status, dates, financial status, fulfillment status, or attribution app. Note: Only the last 60 days' worth of orders are accessible by default unless the app has been granted the read_all_orders scope.
Retrieves a count of all price rules. Use when you need to determine how many price rules (discount campaigns) are configured in the store.
Retrieves the total count of images for a specific Shopify product. Use when you need to know how many images are associated with a product.
Count products published to your app's sales channel, not all store products. Uses the legacy REST Admin API. No query filters are supported by this endpoint.
Retrieves the total count of variants for a Shopify product. Use when you need to know how many variants exist for a specific product.
Retrieves a count of all script tags in the shop. Script tags are remote JavaScript files that are loaded into the pages of a shop's storefront or checkout. Use this action to determine the total number of script tags, optionally filtered by a specific source URL. Note: This endpoint is part of the legacy REST Admin API (deprecated). The Shopify GraphQL Admin API should be used for new integrations.
Retrieves the shop-level count of metafields. Use resource-specific metafield actions for product, customer, order, collection, page, or article metafields.
Create a manually curated custom collection in Shopify with a required title and optional description, image, publication settings, sort order, product associations, and metafields. The returned custom collection contains its ID.
Create a metafield to attach custom metadata to a supported Shopify resource, such as a product, customer, order, collection, or the shop.
Create a new blog in Shopify. Use when you need to add a blog to the store for publishing articles and content. The title field is mandatory.
Create a draft order in Shopify. Use when you need to create orders in draft state using product variant line items or custom line items. Draft orders are useful for creating orders on behalf of customers, generating invoices, or reserving inventory.
Create a static web page in Shopify. Use when you need to add long-term static content like About Us, Contact, or Privacy Policy pages. The title and body_html fields are required.
Create a new product in Shopify. Use when you need to add a new product to the store with details like title, description, variants, options, and images.
Create a new product image for a Shopify product. Use when you need to add an image to a product by providing either an image URL or base64-encoded image data. Products can have up to 250 images in PNG, GIF, or JPG formats.
Create a new product variant for an existing product. Use when adding a new variant with specific option values (like size, color). Each product can have up to 3 options and 100 variants maximum.
DEPRECATED: Use SHOPIFY_CREATES_A_NEW_PRODUCT instead. Creates a new product in a Shopify store; a product title is generally required. Note: The Product REST API is deprecated as of API version 2025-10. While it continues to function, Shopify recommends migrating to the GraphQL Admin API for product management in new implementations. Inventory Management: inventory_quantity is read-only and cannot be set during product creation. To manage inventory, first create the product, then use the InventoryLevel resource with the variant's inventory_item_id (returned in the response) to adjust quantities at specific locations. Response: product data nested at `data.response_data.product`; extract `id` and `variants[0].id` for subsequent image or collection calls.
GraphQL alternative to SHOPIFY_CREATE_PRODUCT: creates a product with images/options, then priced variants in a second non-atomic step with partial-success details.
Create a fully committed (real) order in Shopify without payment processing. Use when programmatically generating orders with line items, customer information, and addresses. Creates a live order immediately — not a draft; use draftOrderCreate for draft workflows.
Create a recurring or usage-based app subscription for charging Shopify merchants. Use when setting up billing for app features and services. Returns a confirmation URL where the merchant must approve charges before the subscription becomes active.
Create an article in a specific Shopify blog. A title is required.
Creates a new metafield for a Shopify blog. Metafields store additional custom information (metadata) on blog resources such as sponsor names, SEO keywords, publication dates, or custom attributes not included in standard blog fields.
Create a carrier service that supplies real-time shipping rates at checkout. Requires write_shipping and an eligible store: Advanced Shopify or higher, Shopify with yearly billing or the carrier service feature, or a development store that is not on the Basic plan. The callback must be a public POST endpoint. REST Admin API is legacy; new public apps must use GraphQL Admin API.
Create a checkout payment using an existing Shopify card-vault session. Can authorize or charge money. Requires elevated sales-channel payment processing access, protected customer data approval, and a direct payment gateway. Uses the legacy REST Admin API; the API version comes from the connection base URL. HTTP 202 means accepted, not paid: inspect transaction.status, payment_processing_error_message, and next_action for failure or authentication.
Create a comment for an article in Shopify. Use when you need to add reader comments to blog articles. Requires 'content' access scope and protected customer data access.
Create a country with tax configuration for the Shopify store. Use when you need to add a new country to the store's shipping or tax settings. **Important Notes:** - The REST Country API is deprecated as of API version 2024-07 - This action requires merchant approval for the 'write_shipping' scope - The 'tax' field is deprecated as of API version 2020-10 and custom tax values can no longer be created or updated - For new implementations, consider using the GraphQL Admin API's "Countries in shipping zone" endpoint instead
Create a new Shopify customer with contact details, addresses, tags, and notes. Requires an email, phone number, or both first and last name.
Create a new address for a customer. Use when you need to add an address to an existing customer's address list.
Create a delegate access token with a subset of the parent token's permissions. Use when you need to securely delegate limited access to subsystems or services. Each delegate token inherits only the specified scopes, ensuring minimal required permissions rather than full app access. Note: Delegate tokens cannot create new delegate tokens.
Creates a discount code for an existing price rule. Price rules define the discount logic (e.g., 10% off, buy X get Y), and discount codes are the actual codes (e.g., 'SUMMER10') customers enter at checkout. Important: The price rule must exist before creating a discount code - use a price rule creation action first if needed. Each price rule can have multiple discount codes associated with it. Use this when you need to generate customer-facing discount codes for an established discount promotion.
Create a discount code creation job for batch processing. Use when you need to asynchronously create up to 100 discount codes for a price rule in a single request.
Create an AWS EventBridge webhook subscription in Shopify. Use when you need to configure real-time event notifications to AWS EventBridge for events like order creation, product updates, or customer changes. EventBridge webhooks push events to your AWS partner event source immediately when changes occur, eliminating polling. You can filter events and control payload fields to optimize performance.
Creates a fulfillment for one or many fulfillment orders for a specific order. This completes the shipping process by marking items as fulfilled. IMPORTANT: You must first retrieve fulfillment orders using a "Get fulfillment orders for order" action to obtain the fulfillment_order_id and line item IDs needed for this action. Use when: You need to mark order items as shipped/fulfilled for orders assigned to merchant-managed locations or third-party fulfillment services. Note: As of API version 2024-10, fulfillments can only be created for merchant-managed locations or third-party fulfillment services owned by your app.
Creates a tracking event for a fulfillment to update shipment status. These events appear on the customer's order status page to track delivery progress (e.g., "in_transit", "out_for_delivery", "delivered"). Use this to provide real-time tracking updates from shipping carriers. Requires an existing fulfillment - use after creating a fulfillment for an order.
Register a fulfillment service and automatically create its associated location. Use for a warehouse that prepares and ships orders on behalf of the merchant. Requires write_fulfillments. The callback prefix must host fulfillment-order notifications; tracking and stock callbacks depend on their respective flags. REST Admin API is legacy; new public apps must use GraphQL Admin API.
Create a gift card for a Shopify store. Use when you need to issue a new gift card with a specified value. Requires write_gift_cards access scope. Gift card codes can only be retrieved at creation time.
Create a marketing event in Shopify to track promotional actions. Use when you need to track marketing campaigns targeting customers across various channels.
Create engagement data for a marketing event in Shopify. Use when tracking customer interactions like views, clicks, and ad spend on marketing events before customers reach the website.
Create an iOS or Android mobile platform application associated with the app. Configures universal/app links, iOS shared web credentials, or App Clips. Use only application identifiers you control. Shopify Support must enable the mobile_platform_applications scope. Shared web credentials require a custom domain. REST Admin API is legacy; new public apps must use GraphQL Admin API.
Create a new one-time application charge in Shopify. Use when you need to bill merchants for one-time features, upgrades, or services. After creation, the merchant must approve the charge via the confirmation_url before it becomes active.
Creates or updates a theme asset file (templates, stylesheets, scripts, or images) within a Shopify theme. This action uploads or modifies files in the theme's file structure. For text-based files (HTML, Liquid, CSS, JS), use the 'value' parameter with file content. For binary files (images), use 'attachment' with base64-encoded data or 'src' with an external URL. To duplicate an existing asset, use 'source_key'. **Important**: Exactly one of value, attachment, src, or source_key must be provided per request. **Requirements**: - Requires 'write_themes' scope with merchant approval - Note: REST Admin API is legacy as of October 2024; new apps should use GraphQL Admin API from April 2025
Creates a refund for a Shopify order with line items, shipping, or transactions. Multi-currency orders require currency; development or trial stores are limited to 5 refunds per minute.
Creates a risk assessment record for a Shopify order, documenting fraud detection findings or security concerns. Use this to record risk evaluations from external fraud detection systems or internal risk analysis tools. **Important:** This REST API endpoint is deprecated as of API version 2025-10. For new implementations, use the GraphQL orderRiskAssessmentCreate mutation instead. See: https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderRiskAssessmentCreate **Common use cases:** - Recording fraud detection results from third-party services (e.g., MaxMind, Sift, Signifyd) - Documenting manual fraud reviews - Flagging high-risk orders for merchant review
Creates a price rule that defines discount logic for Shopify orders. Price rules specify how discounts work (percentage/fixed amount off, which products, which customers, etc.) and can be associated with discount codes for use at checkout. Common use cases: - Percentage off all products (e.g., 20% off sitewide) - Fixed amount off orders (e.g., $10 off orders over $50) - Buy X Get Y (BXGY) discounts - Free shipping offers - Customer segment-specific discounts Note: After creating a price rule, use the discount code creation endpoint to generate codes that customers can apply.
DEPRECATED: Use SHOPIFY_CREATE_A_NEW_PRODUCT_IMAGE instead. Creates a new product image for a Shopify product. Use this tool to add images to products either by providing a publicly accessible image URL (src) or by uploading base64-encoded image data (attachment). You can specify the image position (1 is the main image), add alt text for accessibility, and associate the image with specific product variants. Supports PNG, JPG, and GIF formats. Products can have up to 250 images.
Creates a new metafield for a specific Shopify product. Each namespace+key combination must be unique per product; use the update action if the metafield already exists.
Submit feedback for a product, replacing this app's previous feedback. Requires a Sales Channel app. Use requires_action for merchant-facing product issues, or success without messages to clear them. Outdated feedback can return 409. REST Admin API is legacy; new public apps must use GraphQL bulkProductResourceFeedbackCreate instead.
Create a Google Cloud Pub/Sub webhook subscription in Shopify. Use when you need to configure real-time event notifications to Google Cloud Pub/Sub for events like order creation, product updates, or customer changes. Pub/Sub webhooks push events to your GCP topic immediately when changes occur, eliminating polling. You can filter events and control payload fields to optimize performance.
Create a fixed-price, 30-day recurring app charge, optionally with usage billing. The merchant must approve confirmation_url before billing starts. Set test=true for testing without credit-card charges. Activating a new charge replaces the app's existing recurring charge. REST Admin API is legacy; new public apps must use GraphQL Admin API instead.
Create a URL redirect in Shopify. Use when you need to redirect an old path to a new location. When a full URL is provided as the path, it will be saved as an absolute path without the domain.
Creates shop-level resource feedback to notify Shopify merchants about app setup requirements or successful configuration. Feedback appears on the merchant's admin home screen. Each new submission automatically replaces previous feedback. Use state='requires_action' to alert merchants about mandatory setup steps, or state='success' to confirm proper configuration.
Create a new script tag in Shopify to load remote JavaScript into your online store. Script tags allow you to add custom functionality to your storefront by loading external JavaScript files. Requires 'write_script_tags' OAuth scope. Note: As of February 1, 2025, creating script tags for order status pages is blocked by Shopify. Use 'online_store' display_scope for storefront functionality.
Create one practical amount-off Shopify code discount in a single mutation.
Create a new smart collection with automated product rules. Use when you need to create dynamic collections that automatically include products matching specific criteria (e.g., by vendor, price range, tags). Requires write_products scope.
Creates a new storefront access token for unauthenticated Storefront API access. The token delegates unauthenticated access scopes to clients that need to access the Storefront API without authentication. Requirements: - The app must be configured as an 'extendable' (Sales Channel) app in the Shopify Partner Dashboard - The app must have at least one unauthenticated access scope granted (e.g., unauthenticated_read_product_listings, unauthenticated_write_checkouts) - The created token inherits all unauthenticated scopes from the app Limitations: Maximum 100 active tokens per shop. Tokens cannot be updated after creation, only deleted.
Creates a new theme in Shopify from a ZIP file containing theme assets. Requires a publicly accessible URL to the ZIP file. The theme will default to 'unpublished' status unless the role is explicitly set to 'main' (which publishes the theme immediately after file extraction). Note: This action requires the 'write_themes' scope, which needs merchant approval in Shopify. A store can have a maximum of 20 themes.
Creates an order transaction for authorization, capture, refund, void, or sale. Capture, void, and refund require a parent transaction ID; for multi-currency orders, currency is required for refund and capture transactions.
Create a variable usage fee against the app's existing recurring charge. Requires a recurring application charge configured with capped_amount and terms. This bills the merchant; for testing use only your own test=true recurring charge. There is no separate test flag for usage charges. Charges exceeding the remaining cap fail. REST Admin API is legacy; new public apps must use GraphQL appUsageRecordCreate instead.
Creates a new webhook subscription in Shopify to receive real-time notifications when specific events occur in the store. Webhooks allow your application to be notified automatically when events like order creation, product updates, or customer changes happen. The webhook will POST event data to the specified address. Required parameters: address (destination URL) and topic (event type). Optional parameters: format (defaults to 'json'), fields (to limit payload size), metafield_namespaces (to include metafields). Requires 'write_webhooks' scope. May also require topic-specific scopes (e.g., 'read_orders' for orders/* topics).
Create a webhook subscription that notifies your app when specific events occur in a Shopify store. Use when you need real-time event notifications for orders, products, customers, or other resources. Supports HTTPS URLs, Google Pub/Sub topics, and AWS EventBridge event sources.
Request a new usage-based cap for an active recurring application charge. Only capped_amount can be changed; annual subscriptions are not supported. Return update_capped_amount_url to the merchant for approval; a successful response does not mean the merchant has accepted the new cap. Uses the legacy REST Admin API; Shopify recommends appSubscriptionLineItemUpdate.
Permanently deletes a blog from a Shopify store using its `blog_id`; this action is irreversible and requires the 'content' access scope.
Permanently delete a custom collection from a Shopify store. Use when you need to remove a custom collection that is no longer needed. This operation is irreversible and requires the 'write_products' access scope.
Deletes a customer from the Shopify store. Use when you need to permanently remove a customer who has no existing orders. Cannot delete customers with existing orders.
Delete a discount code from a price rule. Use when you need to remove a specific discount code associated with a price rule.
Delete a draft order from Shopify. Use when you need to remove an existing draft order permanently.
Delete a marketing event from Shopify. Use when you need to remove an existing marketing event from the system.
Deletes a metafield by its ID from any Shopify resource. Use this action to permanently remove metafields from: - Shop-level metafields (use resource='shop' or 'metafields') - Product metafields (resource='products') - Collection metafields (resource='collections') - Customer metafields (resource='customers') - Order metafields (resource='orders') - Other resource-specific metafields The deletion is permanent and cannot be undone. Returns an empty response on success.
Delete a page from a Shopify store permanently. Use when you need to remove an existing page; this operation is irreversible and requires content access scope.
Permanently deletes a product from a Shopify store by its product ID. This action is irreversible - deleted products cannot be recovered. Deleting a product also removes all associated variants, images, inventory, and removes the product from all collections and sales channels store-wide. If the goal is collection-only cleanup, adjust collection membership instead.
Delete a saved search in Shopify. Use when you need to remove a saved search by its ID. The ID must be provided in GID format (gid://shopify/SavedSearch/[ID]).
Permanently delete an order from Shopify. Use when you need to remove test orders, orders paid with manual payment methods, or draft orders marked as paid. Orders must be archived or canceled before deletion. Orders that interact with an online gateway, are paid via Shopify POS, online checkout, or with gift cards cannot be deleted.
Delete an article from a blog in Shopify. Use when you need to permanently remove blog content. This action is irreversible.
Permanently remove a carrier service from a Shopify store by its numeric ID. Removes the service used to provide real-time shipping rates at checkout. Requires write_shipping permission and carrier service access on the store. Successful deletion returns an empty JSON object.
Deletes a country from the shop's tax configuration. Removes a country that was previously added to the shop's tax settings. The country must have been added via the API or Shopify admin for this operation to succeed. Requires the 'write_shipping' scope. DEPRECATION WARNING: This REST API endpoint was deprecated in API version 2024-07 (effective July 1, 2024). The recommended alternative is the GraphQL Countries in Shipping Zone API. This endpoint may not be available in newer API versions or may have restricted access in many Shopify stores.
DEPRECATED: Use SHOPIFY_DELETES_A_CUSTOM_COLLECTION instead. Permanently deletes a custom collection from a Shopify store using its `collection_id`; this action is irreversible and requires a valid, existing `collection_id`.
Removes an address from a customer's address list. Cannot delete the customer's default address - to delete a default address, first assign a different address as the default.
Delete an uploaded evidence file from a Shopify Payments dispute. Requires Shopify-approved write_shopify_payments_dispute_file_uploads access. Uses the legacy REST Admin API; new public apps must use GraphQL. Returns an empty result for the documented successful response.
Deletes a fulfillment event (tracking status update) from an order's fulfillment. Use this action when you need to remove an incorrect or outdated tracking event from a fulfillment. Fulfillment events represent tracking status updates like 'in_transit', 'out_for_delivery', or 'delivered' that are displayed to customers on the order status page. Common use cases: - Removing duplicate tracking events - Correcting erroneous status updates - Cleaning up test events Prerequisites: You must have valid order_id, fulfillment_id, and event_id. These can be obtained from order retrieval actions or fulfillment event list actions. Note: This REST endpoint is deprecated. For new integrations, consider using the GraphQL Admin API. Requires 'write_orders' scope and approval for protected customer data access.
Deletes an inventory level of an inventory item at a location. Deleting an inventory level removes that item from the specified location. Every inventory item must have at least one inventory level.
Deletes multiple metafields in bulk using their owner ID, namespace, and key. If a metafield doesn't exist, the mutation still succeeds but returns null for that identifier in the response.
Deletes a metaobject and its associated metafields using GraphQL mutation. Use when you need to permanently remove a metaobject from the Shopify store. The deletion is permanent and cannot be undone.
Delete a metaobject definition and all its associated data. Use when you need to completely remove a metaobject definition schema. This mutation also asynchronously deletes all related metafield definitions, metaobjects, and metafields.
Permanently delete a mobile platform application association by its ID. Removes the Shopify association, not the installed iOS or Android app. Requires the mobile_platform_applications scope, which Shopify Support must enable for the app. Uses the legacy REST Admin API. Returns an empty object.
Requests deletion of an order risk by order ID and risk ID using the configured Shopify REST API version. This deprecated action can delete only risks created by the application.
Deletes an existing price rule from the Shopify store permanently. Use this action to remove price rules that are no longer needed. Note that deleting a price rule will also delete any discount codes associated with it. This operation is idempotent - deleting an already-deleted price rule will return an error. Common use cases: - Removing expired or outdated promotional campaigns - Cleaning up test price rules from development - Deactivating seasonal sales or limited-time offers To get a price rule ID: use the list price rules action or reference the ID from when you created the price rule.
Deletes a specific image from a product in Shopify, requiring the `product_id` of an existing product and the `image_id` of an image currently associated with that product.
Deletes a specific Shopify product metafield using the product ID and metafield ID. A not-found response is returned in userErrors rather than raised as an HTTP error.
Permanently deletes a URL redirect from a Shopify store. Use this tool to remove redirect rules that are no longer needed. A redirect automatically forwards visitors from an old URL path to a new target location. When you delete a redirect, visitors to the old path will no longer be automatically forwarded. Note: This operation is destructive and cannot be undone. If the redirect ID doesn't exist, the API will return a 404 error.
Delete a script tag from your Shopify store. Permanently removes a script tag using its unique identifier. Script tags are JavaScript files that load on your storefront. Use this action to clean up deprecated scripts or remove third-party integrations. Requires 'write_script_tags' OAuth scope. Common use cases: - Remove outdated analytics or tracking scripts - Clean up after uninstalling third-party apps - Delete test scripts from development Note: Script tags are automatically deleted when the app that created them is uninstalled.
Permanently removes a smart collection from a Shopify store using its `smart_collection_id`; this action is irreversible and requires a valid, existing smart collection ID.
Delete an existing storefront access token from a Shopify store. Use when you need to permanently revoke access for a storefront access token. This operation is irreversible.
Deletes a Shopify theme by ID using the write_themes scope. Deleted theme details may be returned, but a successful empty response contains no theme details.
Delete an asset from a Shopify theme. Use when you need to remove a specific asset file (such as CSS, JavaScript, images, or template files) from a theme by providing the theme ID and asset key. Note that required theme assets like layout/theme.liquid cannot be deleted and will result in an error.
Delete a web presence from Shopify. Use when you need to remove a web presence by its ID.
Delete a webhook subscription and stop all future webhooks to its endpoint. Use when you need to remove a webhook subscription that is no longer needed. Returns the deleted subscription's ID for confirmation. Note: If you only use app-specific webhooks, this may not be needed. App-specific webhook subscriptions in shopify.app.toml are automatically managed by Shopify.
Delete a webhook subscription from Shopify. Use when you need to remove an existing webhook. Only the app that registered the webhook can delete it; attempting to delete another app's webhook will return a 404 error.
Disable a gift card in Shopify. Use when you need to permanently deactivate a gift card. WARNING: This operation is irreversible and the gift card cannot be re-enabled once disabled.
Enable a standard metaobject definition from its template. Use when you need to activate a predefined Shopify metaobject template for use in your store.
Schema-validated read-only alternative to SHOPIFY_GRAPH_QL_QUERY; rejects mutations and adds bounded pageInfo.
Execute a validated mutation while blocking protected admin tasks and live-theme writes.
Executes a GraphQL query against the Shopify Admin API for flexible data retrieval and mutations including metafields. Response data is nested under result['data']['data'], not result['data']. Always inspect both response_data.errors (top-level) and mutation-level userErrors—HTTP 200 can accompany GraphQL validation failures. Query costs draw from a ~1000-point bucket (~50 points/second refill); monitor extensions.cost.throttleStatus to avoid THROTTLED errors. Paginate list queries using pageInfo.hasNextPage and endCursor to avoid silently missing records. productUpdate replaces the entire tags array—send the complete final tag list. refundCreate requires orderId at both the top level and inside each transactions element. transaction parentId must reference a CAPTURE-kind transaction. Numeric fields like numberOfOrders may be returned as strings—cast before aggregating.
Generate a one-time account activation URL for a customer whose account is in 'disabled' state (not yet activated). Use this when you've imported customers and need activation URLs to send in welcome emails. The URL allows customers to set their password and activate their account. Each URL expires after 30 days. Generating a new URL invalidates any previously generated URL for that customer.
Retrieves a list of access scopes associated with the access token. Use when you need to view the permissions that merchants have granted during app installation.
Retrieves an abandonment record from Shopify using its unique ID. Use when you need to query customer abandonment data including type, customer info, email state, and timing details.
Query abandonment information by abandoned checkout ID using Shopify's GraphQL Admin API. Use when you need to retrieve customer journey data, abandonment type, and email state for a specific abandoned checkout. Returns null if the checkout doesn't exist or has no abandonment tracking.
Query information about a Shopify app using the GraphQL API. Use when you need to retrieve details about the currently authenticated app or a specific app by its ID.
Query app information by handle using the Shopify Admin GraphQL API. Use when you need to retrieve details about a specific Shopify app using its handle.
Query a specific app installation on a Shopify store. Use when you need to retrieve details about an app installation including access scopes, launch URL, and uninstall URL.
Retrieve a single application charge by its unique identifier. Use when you need detailed information about a specific one-time charge.
Retrieves a list of one-time application charges for the current app installation. Application charges are one-time fees charged to merchants for app usage. This endpoint returns all charges with their status (pending, accepted, active, declined, expired). Use this to monitor billing history, verify charge status, or implement pagination with since_id. Returns an empty list if no charges exist, which is normal for new app installations.
Retrieve a single application credit issued to a shop by your app. Requires an existing credit ID and an app that uses Shopify's Billing API. Uses the legacy REST Admin API. The provider's creation deprecation does not deprecate this read endpoint. This action does not create financial credits.
Retrieve all application credits for a shop. Use when you need to view credits issued to merchants that can be used towards future app purchases.
Retrieves a single article from a Shopify blog by its ID. Use this action when you need to: - Get detailed information about a specific blog article - Retrieve article content, metadata, or publication status - Access article properties like title, author, tags, or images The optional 'fields' parameter allows you to retrieve only specific article properties, reducing response size and improving performance when you don't need the full article data. Requires the 'read_content' OAuth scope.
Retrieves discount codes from a batch creation job, showing which succeeded and which failed. **Workflow:** After batch job completes (status='completed'), use this to get the actual codes. 1. Create price rule (get price_rule_id) 2. Create batch job (get batch_id) 3. Poll until completed 4. Use this action to retrieve codes **Response:** Successful codes have id populated and errors={}. Failed codes have id=null and errors with validation details. **Use Cases:** Verify created codes, identify validation errors, get IDs for further operations. **Note:** Requires 'read_price_rules' scope. Max 100 codes per batch.
Retrieve a list of all article tags from a specific blog. Use when you need to get all unique tags that have been applied to articles in a particular blog, optionally sorted by popularity.
Retrieve a list of metafields from a blog resource. Use when you need to fetch metafields attached to a specific Shopify blog.
Retrieves the total count of all blogs in a Shopify store. Use this action when you need to know how many blogs exist in the store without fetching the full list of blog details. This is useful for pagination calculations, analytics, or checking if any blogs exist before performing other operations. Requires 'read_content' or 'write_content' OAuth scope.
Query the status and details of a Shopify bulk operation by its ID. Use when you need to check the progress, status, or results of a previously initiated bulk operation. Returns metadata including status, completion time, result URLs, and error information if applicable. Note: The bulkOperation query requires API version 2025-10 or later.
Retrieve a single carrier service by ID to inspect its shipping-rate configuration. Uses the legacy Shopify REST Admin API. Unlike the list endpoint, this endpoint retrieves a specific service rather than listing active services.
Retrieves all active carrier services configured in a Shopify store. Carrier services allow apps to provide real-time shipping rates at checkout. This endpoint returns only carrier services where active=true. Requirements: - Store must be on Advanced Shopify plan or higher, OR - Store must be on Shopify plan with yearly billing (with carrier service feature), OR - Store must be a development store Use this to view active carrier services for shipping rate calculations.
Query the count of catalogs in the Shopify store. Use when you need to know how many catalogs exist, optionally filtered by type or search query.
Retrieve an existing checkout payment by checkout token and payment ID. Returns payment, transaction, card, and checkout details, including nullable processing and authentication information. Requires elevated sales-channel payment processing access and protected customer data approval. Uses the legacy REST Admin API; this action does not create or charge a payment.
Retrieves a checkout profile from Shopify using its unique ID. Use when you need to query checkout profile details including name, publication status, and timestamps.
Retrieve a count of abandoned checkouts from the past 90 days, optionally filtered by date ranges or status. A 403 response is returned as a count of zero, so zero can also indicate denied access.
Retrieves a specific collect by its ID. Use when you need to get details about a specific product-collection relationship.
Retrieves a specific Shopify collection by its `collection_id`, optionally filtering returned data to specified `fields`.
Query a collection by identifier (ID or handle) using the Shopify GraphQL Admin API. Use when you need to fetch collection details by either its global ID or unique handle.
Retrieve a specific collection listing published to your sales channel app. Uses the legacy REST Admin API. Requires a collection listing visible to the current app and merchant-approved read_product_listings access. Publishing a collection does not automatically publish its products to your channel.
Retrieves a list of collects from a Shopify store, where a collect links a product to a custom collection. Returns only collect mapping records (collect_id, collection_id, product_id, position, etc.), not full product details — use SHOPIFY_GET_PRODUCTS_IN_COLLECTION if product details are needed.
Retrieves a count of collects (product-collection relationships). Use when you need to know the total number of collects, optionally filtered by collection_id or product_id.
Retrieve a single article comment by ID using the legacy REST Admin API. Returns comment content, author information and moderation status. Use fields to select specific properties. Requires read_content (or write_content) and protected customer data access.
Query consent policies for privacy compliance requirements. Use when you need to retrieve customer consent requirements for specific regions or countries (GDPR, CCPA, etc.).
Retrieves a count of comments. Use when you need to know how many comments exist, optionally filtered by article, blog, status, or date ranges.
Retrieve a list of countries configured in the Shopify store with tax rates and provinces. Use when you need to get countries and their tax configuration for the store.
Retrieves the count of countries configured in a Shopify store. Use when you need to determine how many countries are available in the store's tax and shipping settings. **DEPRECATION WARNING**: This endpoint is deprecated as of API version 2024-07. Consider using the GraphQL Admin API's 'CountriesInShippingZones' object as an alternative. This REST endpoint will continue to work but may be removed in future API versions.
Retrieve a specific country by its ID from Shopify. Use when you need to get tax information, country details, and province-level tax rates for a particular country.
Retrieve a list of currencies enabled on a Shopify store. This action fetches all currencies that the merchant has enabled for multi-currency transactions through Shopify Payments. Each currency includes its ISO 4217 code, the timestamp when its conversion rate was last updated, and its enabled status. Use this when you need to: - Check which currencies are available for customer transactions - Verify currency configurations for the shop - Get conversion rate update timestamps - Determine multi-currency support capabilities Note: This is a read-only endpoint that requires no parameters and returns all enabled currencies for the authenticated shop.
Retrieve the staff user associated with the access token. Requires a token created for a specific shop user, not an app-only token. Available only to private/custom apps installed on Shopify Plus stores; Shopify Plus Support must approve the read_users scope. Uses the legacy Shopify REST Admin API.
Retrieve a single custom collection by its unique ID from Shopify. Use when you need to fetch detailed information about a specific custom collection.
Retrieves a list of custom collections from a Shopify store. Supports filtering by IDs, handle, title, product ID, publication status, and date ranges (published/updated). Use the fields parameter to retrieve only specific properties, and limit/since_id for pagination. Combining multiple filters (handle, ids, product_id) simultaneously may return empty sets; use broad filters first. Newly created collections may not appear immediately; use GetCollectionById to verify a specific collection shortly after creation.
Retrieves the total count of custom collections in a Shopify store with optional filters. Use this action to get the number of custom collections, optionally filtered by: - Product ID (collections containing a specific product) - Publication date range (when collections were published) - Publication status (published, unpublished, or any) - Title (exact title match) - Update date range (when collections were last modified) Returns a simple count integer without collection details. For full collection data, use get collection list actions.
Retrieve details of a single customer address from Shopify. Use when you need to get complete information about a specific address for a customer, including address lines, city, province, country, postal code, and phone number.
Retrieves a customer's addresses, including address and contact details and default-address indicators. A limit can restrict the number returned; access to protected customer data may require Shopify approval.
Retrieves a page of orders for a specific Shopify customer by customer ID, with optional status filtering and pagination parameters.
Retrieves a page of orders for a specific Shopify customer by customer ID, with optional status, date and other filters. Order details can include line items, fulfillment status, payment information and shipping address.
Retrieves a count of all customers. Use when you need to know the total number of customers, optionally filtered by creation or update dates.
Retrieves a single discount code for a price rule. Use when you need to get details about a specific discount code including its usage count and timestamps.
Look up a discount code by its code name and retrieve its resource location and IDs. Use this when you have a discount code (e.g., "SUMMER2024") and need to find its price_rule_id and discount_code_id for use with other API endpoints. This is faster than listing all discount codes when you know the specific code name. The API returns a 303 redirect with the location in the header.
Retrieves a count of discount codes for a shop. Use when you need to know how many discount codes exist, optionally filtered by usage statistics.
Retrieves a page of discount codes associated with a Shopify price rule. The action does not expose pagination controls or response Link headers.
Retrieve evidence for one Shopify Payments dispute using the legacy REST API. Requires Shopify approval for dispute-evidence access scopes and a shop with Shopify Payments disputes. This read does not update or submit evidence.
Retrieves a count of draft orders from a Shopify store. Use when you need to know how many draft orders exist without fetching full draft order details. Supports filtering by status and date range to count specific subsets of draft orders.
Retrieve a specific Shopify event by its ID. Events track actions performed on store resources like products, orders, collections, and articles. Use this to get detailed information about a specific event, including what action occurred, when it happened, and which resource was affected. Common use cases: auditing changes, tracking resource history, debugging workflows. Note: This endpoint contains protected customer data and may require explicit approval from Shopify for access. For development/testing, request protected customer data access in the Shopify Partner Dashboard.
Retrieve a list of Shopify store audit trail events, with optional filters for resource type, action, dates and ID. The legacy REST action returns event data but does not expose pagination Link headers.
Retrieves a specific fulfillment event by its ID, providing detailed shipment tracking information. Use this when you need to check the status and location of a specific tracking event for a fulfilled order. The event contains information such as status (in_transit, out_for_delivery, delivered), timestamps, geographic location data (city, province, country, coordinates), and carrier messages. Fulfillment events track the shipment progress from the carrier and are displayed on the customer's order status page. Each event represents a status update (e.g., package picked up, in transit, out for delivery, delivered). Note: This REST API endpoint is deprecated as of Shopify API 2024-10. Consider using the GET fulfillment events list endpoint or GraphQL API for new integrations. Requires valid order_id, fulfillment_id, and event_id - all three IDs must correspond to existing resources in the store.
Retrieves tracking events for a specific fulfillment, showing shipment status updates (e.g., in_transit, out_for_delivery, delivered) with timestamps and location information. Use this when you need to check the tracking history or current delivery status of a fulfilled order. Note: Returns events only for fulfillments that have tracking information from carriers.
Retrieve locations that a fulfillment order can potentially move to. Use when you need to identify which locations are available for transferring a specific fulfillment order. The resulting list is sorted alphabetically in ascending order by location name.
Retrieve a list of locations that a fulfillment order can potentially move to. Use when you need to identify available destination locations for relocating a fulfillment order.
Retrieves a list of fulfillment orders for a specific order. Use when you need to get fulfillment order details including line items, delivery method, assigned location, and fulfillment status for a given order.
Retrieve all fulfillment orders for a specific order. Use when you need to check fulfillment status, assigned locations, or line items for an order.
Retrieve a single fulfillment service by ID, including its location and capabilities. Uses Shopify's legacy REST Admin API. Obtain an existing service ID from Get Fulfillment Services; this action does not modify the service.
Retrieve fulfillment services available on the Shopify store, including third-party services that prepare and ship orders. By default the request selects services created by the requesting app; the scope can be set to all store services.
Retrieves all fulfillments (shipments) associated with a specific fulfillment order. A fulfillment order represents a group of line items that are to be fulfilled from a specific location. This action returns tracking information, shipment status, line item details, and delivery information for each fulfillment. Use this when you need to: - Check tracking numbers and carrier information for shipped items - Monitor shipment status (in_transit, delivered, etc.) - View which line items were included in specific shipments - Get fulfillment location and origin address details Prerequisites: You must first obtain a fulfillment_order_id by using the 'Get fulfillment orders for order' action with an order_id.
Retrieves detailed information about a specific gift card by its ID. Returns the gift card's balance, status, creation date, and other metadata. Note: The full gift card code is never returned by this endpoint - only the last 4 characters are available for security reasons. The full code is only visible at creation time. Requires: read_gift_cards scope (Shopify Plus only, requires Shopify Support approval).
Retrieves a single inventory item by ID. Use when you need to get detailed information about an inventory item including SKU, cost, tracking status, and shipping requirements.
Retrieves inventory items by specified IDs, including details such as SKU, cost, shipping requirements, and tracking status. The response does not include pagination links.
Retrieves a list of inventory levels for specified items and locations. Use when you need to check inventory quantities at specific locations. At least one of inventory_item_ids or location_ids must be provided as a filter parameter.
Retrieves a list of inventory levels for a specific location. Use when you need to check inventory quantities at a particular location. This endpoint implements cursor-based pagination via Link headers in the response.
Retrieve a single location by its ID. Use when you need to get details about a specific physical or virtual place where inventory is stocked and orders are fulfilled.
Query the count of locations in a Shopify store using the GraphQL API, returning the count and its precision.
Retrieves a count of all marketing events in the store. Use when you need to know the total number of marketing events.
Retrieve a single metafield from a resource by its ID. Use when you need to fetch metafield details without knowing the parent resource.
Retrieve a list of metafields. Use when you need to fetch metafields across resources or for specific resources by providing owner_id and owner_resource filters.
Retrieve one mobile platform application's configuration by its existing ID. Uses Shopify's legacy REST Admin API. Shopify Support must enable the mobile_platform_applications scope for the app before this resource is available. This read does not enable links, shared web credentials, or app clips.
Retrieve a specific order using its unique identifier. Returns detailed order information including line items, customer data, addresses, financial status, fulfillment status, and more.
Retrieves a specific Shopify order by its unique ID, which must correspond to an existing order.
Retrieves a page of Shopify orders with optional filters for status, dates, IDs, and name. Supports cursor pagination with a maximum of 250 orders per page; when using a cursor, only the page limit can accompany it. This legacy action is deprecated.
Retrieves a single order risk assessment by its unique ID. Use this action when you need details about a specific risk assessment (e.g., to check its recommendation, score, or message). If you need all risk assessments for an order, use the "Get order risks" action instead. **Important:** This REST API endpoint is deprecated as of API version 2025-10. For new implementations, use the GraphQL OrderRiskAssessment API. See: https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderRiskAssessment **Access requirements:** Requires read_orders scope with merchant approval for protected customer data.
Retrieves fraud risk assessments for a specific Shopify order, including available recommendations and fraud likelihood scores. An empty risks array can also indicate authentication failure or insufficient permission.
Retrieves all fraud risk assessments for a specific order. Returns a list of risk assessments indicating potential fraud. Each risk includes a recommendation (cancel/investigate/accept) and a fraud likelihood score. Only risks with display=true are factored into Shopify's overall order risk calculation. Note: Returns an empty array if the app lacks permission to access order risks (requires read_orders or write_orders scope with merchant approval for protected customer data).
Retrieve a count of an order's transactions in Shopify. Use when you need to know how many transactions (authorization, sale, capture, void, refund) are associated with a specific order without fetching the full transaction details.
Retrieves a page of Shopify orders using server-side date, status, ID, and other filters. An optional pagination cursor is accepted, and each page contains at most 250 orders. Protected customer data may be redacted or access blocked if the connection is not approved.
Retrieve a single Shopify page by its unique ID. Use when you need to fetch detailed information about a specific page.
Retrieve one Shopify Payments dispute by its numeric ID. Returns the disputed amount, reason, status, and evidence deadlines. Requires Shopify Payments dispute access. Uses the legacy Shopify REST Admin API.
Retrieve the current Shopify Payments balance for each currency. Includes transactions not yet included in a payout. Requires a shop using Shopify Payments. Uses the legacy Shopify REST Admin API.
Retrieve one Shopify Payments payout by its numeric ID. Returns the transfer status, date, currency, amount, and transaction summary. Requires a shop using Shopify Payments and payout access. Uses the legacy Shopify REST Admin API.
Retrieve a list of the shop's policies. Use when you need to view configured shop policies such as refund policy, privacy policy, or terms of service.
Retrieves a single price rule by ID from Shopify. Returns discount configuration including type (percentage/fixed), value, target items, customer eligibility, and prerequisites. Note: The PriceRule REST API is deprecated as of October 2024; consider using GraphQL Admin API for new implementations.
Retrieve a page of price rules from a Shopify store, with optional filtering by date ranges and usage and since-ID pagination.
Retrieves details for an existing Shopify product using its unique product ID.
Retrieve a single product image by ID for a specific product. Use when you need to get details about a specific image associated with a product.
Retrieves all images for a Shopify product, specified by its `product_id` which must correspond to an existing product.
Retrieves the total count of images for a Shopify product. Use when you need to know how many images are associated with a specific product.
Retrieve one product listing published to your sales channel app. Uses the legacy REST Admin API and requires merchant-approved read_product_listings access. The listing ID is the product ID; only listings published to the calling app are visible. Listing attributes are read-only.
Retrieves a specific metafield for a Shopify product using the product ID and metafield ID.
Retrieves all metafields for a specific Shopify product. Metafields are returned under `data.response_data.metafields`. Can be filtered by namespace and/or key; empty results are valid when no metafields match. Always fetch current metafield IDs via this tool rather than using cached values, as IDs can change after schema updates.
Retrieve a page of variants for a specified Shopify product, with optional field selection and pagination using limit and since_id.
Retrieves a list of products from a Shopify store. Results are paginated; for large catalogs, use SHOPIFY_GET_PRODUCTS_PAGINATED to iterate all pages, as this tool may return only a partial set. Product handles and SKUs must be unique — use this tool to check for existing products before creating new ones.
List products with Shopify cursor-based pagination. Iterate until `next_page_info` is null; stopping early silently truncates the product list. Products are at `data.response_data.products`; the next cursor is at `data.next_page_info`.
Retrieves a limited page of products in a Shopify collection, including product details such as variants, images, and options. Products are sorted according to the collection's configured sort order.
Get Province for Country
Retrieves a count of provinces for a country. Use when you need to determine how many provinces or states are configured for a specific country in Shopify.
Retrieve a list of provinces for a specified country. Use when you need to get province information, tax rates, and shipping zones for a specific country.
Retrieve one recurring application charge for the authenticated app by ID. Use an existing charge ID, optionally projecting fields. This read uses Shopify's legacy REST Admin API and does not create or activate a subscription charge.
Retrieve a list of recurring application charges for the app. Use when you need to view subscription charges, check billing status, or audit recurring payments.
Retrieve a single redirect by its ID. Use when you need to get details about a specific URL redirect configuration in a Shopify store.
Retrieve a list of URL redirects from a Shopify store, optionally filtered by path or target. Results can be limited and continued using a since-ID filter.
Retrieves a count of URL redirects in the store. Use when you need to know how many URL redirects are configured, optionally filtered by path or target.
Retrieves a list of refunds for a specific order, with optional field selection, shop-currency amounts, and a result limit. The action makes one request, so results may not include every refund.
Retrieves the current resource feedback for the shop. Resource feedback is how your app communicates its setup/configuration status to merchants via the Shopify admin. Use this to check what feedback your app has previously submitted (e.g., whether you told merchants that action is required or that setup is successful). Returns empty array if no feedback exists, or a single feedback object representing the most recent status your app reported to Shopify.
Retrieve metafields for a specific supported Shopify resource instance using its resource endpoint, including products, customers, orders, and collections.
Retrieves a single script tag by its ID. Use when you need to get details of a specific script tag configuration.
Query the number of segments for a shop. Use when you need to know how many customer segments exist.
Retrieve all configured shipping zones with countries, provinces, tax rates, and shipping rates. Use when you need to view or analyze shipping configuration.
Retrieves the billing address for the shop via GraphQL query. Returns the shop's billing information including address details, city, province, country, and phone number.
DEPRECATED: Use SHOPIFY_GET_SHOP_DETAILS instead. Retrieve the complete configuration and settings for the authenticated Shopify shop account. Use when you need to access shop information such as business details, address, timezone, currency, plan information, or feature availability.
Retrieves administrative information about the authenticated Shopify store, including its IANA timezone when available. The timezone can help interpret date boundaries in other queries.
Retrieves the count of shop-level metafields only. This action returns how many metafields are directly attached to the shop itself, not metafields on other resources like products, customers, or orders. Use this when you need a quick count without fetching the full list of shop metafields. Note: To count metafields on specific resources (products, customers, etc.), use the SHOPIFY_GET_RESOURCE_METAFIELDS_COUNT action instead.
Get compact Shopify identity and configuration, replacing deprecated shop details.
Retrieve a single blog by its unique identifier. Use when you need to access detailed information about a specific blog in the Shopify store.
Retrieve a single smart collection by its ID. Use when you need to get details about a specific smart collection including its rules, settings, and associated image.
Retrieve a list of smart collections from a Shopify store. Use when you need to fetch smart collections with optional filtering by IDs, handle, title, product ID, publication status, or date ranges. Supports pagination via since_id parameter.
Retrieve a count of smart collections in a Shopify store. Use when you need to know the total number of smart collections, optionally filtered by publication status, title, product association, or date ranges.
Retrieves a specific refund by refund ID for an order. Use this action when you need to: - Get detailed information about a particular refund - Review specific refund transactions and payment details - Check refunded line items, shipping costs, and adjustments - Verify duty and additional fee refunds Key Features: - Returns comprehensive refund data including line items and transactions - Supports field filtering to retrieve only specific data - Optional in_shop_currency parameter for currency conversion - Includes refund_shipping_lines for refunded shipping costs (added in API version 2024-10) Important Notes: - REST Admin API is legacy as of Oct 2024; consider GraphQL API for new integrations - Requires 'read_orders' access scope for authentication - Access to protected customer data may require additional Shopify app approval
Retrieves a list of storefront access tokens that have been issued for the shop. Use when you need to view all active storefront access tokens and their permissions.
Retrieve Shopify tender transactions for financial reconciliation and review of payment activity. Filter by processing date or date range, sort by processing time, and use a since-ID to retrieve subsequent transactions. The requested limit defaults to 50 and has a maximum of 250.
Retrieve a single asset for a theme by its key. Use when you need to fetch the content or metadata of a specific theme file such as templates, stylesheets, or scripts.
Retrieves a list of themes from a Shopify store. Use when you need to access theme information including name, role, and metadata.
Retrieve one usage charge belonging to a recurring charge for the authenticated app. Optionally project response fields. Uses the legacy REST Admin API and does not create a charge or bill the merchant.
Retrieve one Shopify staff user and their staff permissions by ID. Uses the legacy REST Admin API. Available only to private and custom apps installed on Shopify Plus stores. Contact Shopify Plus Support to request the read_users scope; ordinary app scopes or staff permissions do not suffice.
Retrieves a single webhook subscription by its ID. Use when you need to get details of a specific webhook configuration.
Query the number of webhook subscriptions for a shop. Use when you need to know how many webhook subscriptions exist, optionally filtered by query criteria.
Inspect compact Shopify Admin API 2026-04 schema slices without recursion.
Retrieves a list of abandoned checkouts with customer contact information. An abandoned checkout occurs when a customer adds contact information but doesn't complete the purchase. Use this to recover abandoned carts, send recovery emails, or analyze checkout abandonment patterns. Note: This endpoint requires 'Protected Customer Data' access in your Shopify app settings. Without this permission, the endpoint returns a 403 error (gracefully handled by returning an empty list). The REST Checkout API is deprecated as of 2024-07; consider GraphQL Admin API for new implementations.
Retrieve a list of all article authors from the store. Use when you need to get all unique author names who have created articles across all blogs.
Retrieve a list of all article tags from the store. Use when you need to get all unique tags that have been applied to articles, optionally sorted by popularity.
Retrieve a list of all article tags from a specific blog. Use when you need to get all unique tags that have been applied to articles within a particular blog, optionally sorted by popularity.
List fulfillment orders assigned to locations managed by this app's fulfillment services. Optionally filter by assignment status or location IDs. Without a status filter, closed orders are excluded. Uses the legacy Shopify REST Admin API.
Query available locales for the Shopify store using the Admin GraphQL API. Use when you need to retrieve the list of supported language/region combinations.
Retrieve a paginated list of bulk operations from Shopify. Use when you need to view the history of bulk operations, check their statuses, or retrieve result URLs for completed operations. Supports filtering by status, creation date, and operation type.
Retrieves a list of sales channels available in the Shopify store using GraphQL. Use when you need to fetch channel information including Online Store, Point of Sale, and other active sales channels. Supports cursor-based pagination for large result sets.
Query Shopify checkout profiles with pagination and optional publication-status filtering. Returns profile metadata, including publication status, timestamps, and whether extensibility is active on thank-you and order-status pages.
List one page of published product IDs in a collection listing for your sales channel. Both the collection and each product must be published to your channel. Uses the legacy REST Admin API; follow the returned cursors to retrieve more pages.
List one page of collections published to your sales-channel app. Uses the legacy REST Admin API and requires merchant-approved read_product_listings access. Collections must be available to the calling sales channel; products must be published separately. Follow next_page_info to continue; this action does not automatically fetch further pages.
List the authenticated legacy custom app's deprecated API calls from the past 30 days. Returns migration guidance, deadlines, and the last data update time. Only legacy custom apps created directly in Shopify admin are eligible. Apps created in the Dev Dashboard, including custom-distribution apps, receive 404 Not Found even when successfully authenticated. Uses the legacy REST Admin API; the documented operation has no filters or pagination parameters.
List one page of inventory levels for a location using the legacy REST Admin API. Returns available quantities (null for untracked items). Follow next_page_info with the same location_id to read more pages; never automatically fetches all pages.
Retrieve a list of locations for a Shopify store. Use when you need to get physical or virtual places where inventory is stocked and orders are fulfilled.
List mobile platform applications associated with the calling app. Uses the legacy REST Admin API. Shopify Support must enable the mobile_platform_applications access scope for your app before use. The documented endpoint has no filters or pagination parameters.
Retrieves a list of orders from Shopify with optional filtering by status, dates, and other criteria. Use when you need to fetch multiple orders with pagination and filtering support.
List one page of Shopify Payments disputes, most recently initiated first. Filter by initiation date, dispute ID boundaries, or status. Follow the returned page_info cursors to continue without filters; no further pages are fetched automatically. Requires Shopify Payments and read_shopify_payments_disputes access. Uses the legacy REST Admin API; API version comes from the connection.
Query payment terms templates from Shopify using the GraphQL API. Use when you need to retrieve available payment terms templates, optionally filtered by payment terms type.
List one page of Shopify Payments balance transactions, newest first. Filter by ID boundaries, payout, payout status, or test mode. Continue using returned page_info cursors without filters; pages are not automatically fetched. Requires Shopify Payments and read_shopify_payments_payouts access. Uses the legacy REST Admin API; the connection base URL supplies the API version.
List one page of Shopify Payments payouts, newest payout date first. Filter by date, ID boundaries, or transfer status. Continue using returned page_info cursors without filters; pages are never automatically fetched. Requires Shopify Payments and read_shopify_payments_payouts access. Uses the legacy REST Admin API; the connection base URL supplies the API version.
List one page of IDs of products published to your sales-channel app. Uses the legacy REST Admin API and requires merchant-approved read_product_listings access. Follow the returned cursors for more pages; no additional pages are fetched automatically.
List one page of products published to your sales-channel app. Uses the legacy REST Admin API and requires merchant-approved read_product_listings access. Follow next_page_info to continue; no further pages are fetched automatically. Listings inherit read-only product attributes.
Retrieve this app's resource feedback for a specific Shopify product. Requires a Sales Channel app with resource-feedback access. Returns feedback states and merchant-facing messages, not feedback from other apps. The REST Admin API is legacy; new public apps must use GraphQL productResourceFeedback.
Retrieves metadata for theme assets (files that make up a theme: templates, images, stylesheets, snippets). Returns metadata only—not file content. To get actual file content, you must retrieve assets individually using a separate action. Use the asset_key parameter to retrieve a single asset, or omit it to list all assets in the theme.
List usage charges for an existing recurring application charge of the app. Optionally project specific fields. Uses Shopify's legacy REST Admin API; this read does not create charges or change billing.
List one page of staff users and their permissions. Available only to private/custom apps on Shopify Plus stores. Shopify Plus Support must approve the read_users scope for the app. A general store OAuth grant is not sufficient. Uses the legacy REST Admin API; the connection base URL supplies the API version. Continue with returned page_info cursors; additional pages are never automatically fetched.
Marks a comment as not spam in Shopify, restoring it to published or unapproved state. Use this to remove the spam designation from a comment that was incorrectly flagged. The comment status will change from 'spam' to either 'published' (if it was previously approved) or 'unapproved' (if it needs review).
Mark a comment as spam in Shopify. Use when you need to flag a comment as spam and remove it from visibility. When marked as spam, the comment status changes to 'spam', published_at is set to null, and it becomes invisible to blog readers.
Updates an existing blog's configuration in your Shopify store. Use this to change the blog title, URL handle, comment moderation settings, custom templates, or attach metadata. Common use cases: rebranding blogs, enabling/disabling comments, switching to custom themes, or fixing SEO-friendly handles. Requires the blog_id and at least one field to update. WARNING: Changing the handle affects URLs and SEO - consider redirects when modifying established blogs.
Update an existing draft order in Shopify. Use when you need to modify draft order details like customer information, line items, addresses, discounts, notes, or status before completion.
Update an existing product variant in Shopify. Use when you need to modify variant properties like price, SKU, weight, or inventory settings.
Update an existing theme's properties such as name or role. Use when you need to modify a theme. Note that a theme cannot be modified while uploading, updating, or if it's the last published theme.
Modify an existing webhook subscription's delivery URI, data format, or payload fields; the topic cannot be changed by this tool. Subscriptions are scoped to the app that registered them, and subscriptions created through Shopify admin cannot be accessed through the API.
Move a fulfillment order from one merchant managed location to another. Use when you need to relocate unfulfilled items to a different location. The operation will fail if the fulfillment order is closed or if the destination location has never stocked the requested inventory item.
Mark a scheduled fulfillment order open before its fulfill_at datetime. Use to make a scheduled order ready for fulfillment early. Requires access to the order's merchant-managed or third-party fulfillment location. Does not create a fulfillment or reopen a completed order. Uses the legacy REST Admin API.
Pin a metafield definition in Shopify admin. Use when you need to organize metafields by pinning them to control their display order and visibility. Pinned metafields are automatically displayed in the admin interface.
Publish an existing collection to this app's sales channel. Only sales-channel apps can publish collection listings. Products in the collection are not automatically published; publish them separately. REST Admin API is legacy; new public apps must use GraphQL Admin API.
Publish an existing product to the calling app's sales channel. Requires merchant-approved product listing access. Listing attributes are inherited from the product and cannot be modified here. Draft or archived products are not published immediately; activate the product first. Subscription-only products can only be listed on the online store. REST Admin API is legacy; new public apps must use GraphQL Admin API.
Query app information by API key using Shopify's GraphQL Admin API. Use when you need to retrieve metadata about a Shopify app using its client ID. Returns null if no app is found with the provided API key.
Retrieve all business entities associated with the shop. Use when you need to view business entities for assigning to markets, managing payment providers per entity, or checking order attribution.
Query business entity information from Shopify. Use when you need to retrieve business entity details such as company name, address, and payment account information. If no ID is provided, returns the primary business entity.
Queries catalogs from Shopify using the GraphQL Admin API. Catalogs control which products are published and how they're priced in different contexts such as international markets, B2B company locations, or specific sales channels.
Query a single Shopify channel by ID. Use when you need to retrieve detailed information about a specific sales channel including its associated app, name, handle, and publishing capabilities.
Query the list of countries and regions for which consent policies can be created in Shopify. Use when you need to retrieve all available consent policy regions for compliance purposes.
Query the currently authenticated app installation on a Shopify store. Use when you need to retrieve details about the current app's installation including access scopes, active subscriptions, launch URL, and uninstall URL.
Query the status of the most recent Shopify bulk query or mutation operation, including its result download URL when available.
Query pagination information for Shopify customer account pages using the GraphQL Admin API. The response contains page cursors and pagination flags, not page details.
Query Shopify deletion events for products and collections, with pagination, sorting, and filtering options.
Query Shopify Payments disputes using the GraphQL Admin API. Use when you need to retrieve information about payment disputes, including their status and initiation date. Supports pagination and filtering by status or ID.
Query a specific domain by its ID from Shopify. Use when you need to retrieve domain details including host, URL, SSL status, and localization settings.
Query events from Shopify using the GraphQL Admin API. Events track actions performed on store resources like products, orders, collections, customers, and more. Use this to retrieve activity history, audit changes, monitor recent actions, or build activity feeds. Returns detailed information about each event including the action type, affected resource, timestamp, and description.
Query the count of events in Shopify using the GraphQL Admin API. Use when you need to get the total number of events with optional filtering by date, subject type, or other criteria. Returns both the count and precision indicator.
Query a single job by its ID using Shopify's GraphQL API. Use when you need to check the status of an asynchronous job. Jobs track long-running operations like bulk operations, mutations, or imports.
Query metafield definition details by ID using Shopify's GraphQL Admin API. Use when you need to retrieve metadata about a metafield definition including its type, namespace, key, and usage count. Returns null if no metafield definition is found with the provided ID.
Queries all available metafield definition types from Shopify using the GraphQL Admin API. Returns comprehensive information about each type including its category, supported validations, and migration capabilities. Use this to discover what metafield types can be created and what validation rules are available for each type.
Query metafield definitions from Shopify using the GraphQL Admin API. Use this to retrieve the schema and configuration of metafields for a specific resource type (PRODUCT, COLLECTION, CUSTOMER, etc.). Returns detailed information about each metafield definition including name, namespace, key, type, and validation rules.
Query any Shopify resource by its global ID using the node query. Use when you have a GID and need to retrieve the basic resource information.
Query nodes by their IDs from the Shopify GraphQL Admin API. Use when you need to retrieve multiple Shopify objects by their global IDs (GIDs). Returns node objects with at least an id field, or null for non-existent nodes.
Query the online store's password protection status using Shopify's GraphQL Admin API.
Query a product duplicate job by its ID using Shopify's GraphQL API. Use when you need to check the status of a product duplication operation.
Query available public API versions from Shopify using the GraphQL Admin API. Returns a list of all API versions with their support status. Use this to check which API versions are currently supported before making version-specific API calls.
Query a Shopify publication by ID for its name, auto-publish settings, future publishing support, and associated catalog. Partial publication data may be returned without GraphQL errors when some fields fail.
Query Shopify's server pixel configuration to retrieve its ID, status, and webhook endpoint address. Requires read_pixels or read_server_pixels access.
Retrieve Shopify shop information through the GraphQL Admin API, including configuration such as name, email, domain, currency settings, and enabled features. Fields can be selected, subject to the response's supported shop fields.
Query the shop's billing preferences from Shopify using the GraphQL Admin API. Use when you need to retrieve the currency used for billing apps and services.
Query Shop Pay payment request receipts from Shopify using the GraphQL Admin API. Use when you need to retrieve and list Shop Pay payment request receipts. Note: This query requires API version 2026-01 or later.
Query Shopify Functions owned by the API client installed on the shop. Use when you need to retrieve functions that customize Shopify's backend logic such as discounts, checkout validation, and fulfillment.
Query standard metafield definition templates from Shopify using the GraphQL Admin API. Returns preset metafield configurations with reserved namespace-key combinations for common use cases like product subtitles, care guides, or ISBN numbers.
Query Shopify's product taxonomy using the GraphQL Admin API. Use when you need to explore product categories, discover the taxonomy hierarchy, or find appropriate categories for products. Returns taxonomy categories that can be filtered by search terms or hierarchy relationships.
Retrieve webhook subscription details by ID using the Shopify GraphQL Admin API. Use when you need to inspect webhook configuration, endpoint details, or subscription metadata.
Query a paginated list of Shopify webhook subscriptions through the GraphQL Admin API, including topics, endpoint details, and formats. A custom GraphQL document can be supplied and may perform mutations; its response must contain a webhookSubscriptions connection.
Retrieves a count of webhook subscriptions registered to the requesting app, optionally filtered by address or topic. Subscriptions created in the Shopify admin are not accessible through the API.
Retrieve a list of all countries where the merchant sells products with tax rates. Use when you need to access country-level tax configuration and regional settings. Note: This endpoint is deprecated as of API version 2024-07.
Retrieves a page of images for a Shopify product, with optional limit, since-ID and field selection.
Retrieve detailed information for a specific draft order from a Shopify store. Use when you need to access a draft order's status, customer details, line items, pricing, or shipping information.
Retrieve detailed information about a specific fulfillment for an order. Use when you need to check the status, tracking details, or line items of a fulfillment.
Retrieves detailed information about a single product variant by its ID from Shopify. A product variant represents a specific version of a product (e.g., different sizes, colors, or materials). This action returns comprehensive details including pricing, inventory, weight, SKU, barcode, and shipping requirements. Use this when you need to: - Get current pricing and inventory levels for a specific variant - Check variant details like SKU, barcode, weight, or options (size, color, etc.) - Retrieve variant configuration (taxable, requires_shipping, fulfillment_service) - Fetch only specific fields using the optional 'fields' parameter to reduce response size Note: You must know the variant_id beforehand. Use list products or list variants actions to discover variant IDs.
Retrieves a webhook subscription registered to the requesting app by ID, with optional property selection. The returned details can include its destination, topic, format, timestamps and payload field or metafield settings; subscriptions created in the Shopify admin are not accessible through the API.
Reject a pending cancellation request as the assigned fulfillment service. The fulfillment order must belong to a location managed by this app and have a cancellation request awaiting a response. Optionally provide a reason. Uses the legacy Shopify REST Admin API.
Reject a submitted fulfillment request as the assigned fulfillment service. The fulfillment order must be assigned to this app's fulfillment service. Optionally explain the rejection with a message, reason, and line item details. Line item details are diagnostic, not a partial rejection: after rejection none of the order's line items can be fulfilled. Returns the updated fulfillment order. Uses the legacy REST Admin API and requires protected customer data access.
Releases the fulfillment hold on a fulfillment order, allowing fulfillment work to proceed. Use when you need to resume fulfillment on an order that was previously placed on hold. The fulfillment order status will change from on_hold to open, and the fulfillment_holds array will be emptied.
Release all fulfillment holds on a fulfillment order. Use when you need to resume fulfillment work after holds have been resolved.
Remove a comment from a Shopify blog. Use when you need to hide a comment from blog readers while preserving the data. The comment status will be changed to 'removed'. Note: This action requires 'write_content' scope and protected customer data access approval from Shopify, as comments contain customer information (author, email, IP address).
Remove an existing fulfillment service from a Shopify store. Use when you need to permanently delete a third-party fulfillment service.
Removes a product from a custom collection by deleting the collect. Use when you need to unlink a specific product from a custom collection using the collect ID.
Deletes a specific product variant from a Shopify store using its unique product ID and variant ID; this action is irreversible. Use when you need to permanently remove a variant from a product.
Reopens a previously closed Shopify order. Use when an order needs to be modified after being closed.
Reschedule when a scheduled fulfillment order becomes ready for fulfillment. new_fulfill_at must be in the future. Orders with the same fulfill_at may be merged; use the returned order ID for subsequent operations. Requires the user's fulfill_and_ship_orders permission. Uses the legacy REST Admin API.
Restores a previously removed comment, changing its status back to 'published'. Use when you need to reactivate a comment that was removed. Note: This action requires protected customer data access approval because comments contain customer information (author, email, IP). The app must be approved to access REST endpoints with protected customer data.
Retrieve a list of all blogs from a Shopify store. Use when you need to get blog information, list available blogs, or paginate through blogs using since_id.
Retrieve a list of comments from Shopify. Use when you need to get comments with optional filtering by dates, status, or pagination.
Retrieve a list of products from Shopify. Use when you need to fetch products with filtering options like status, vendor, product type, or date ranges. Supports pagination with limit and since_id parameters.
Retrieve a single customer by their unique identifier. Use when you need to fetch detailed information about a specific customer.
Retrieves detailed information about a specific Shopify location by its ID. A location represents a physical or virtual place where a shop's products are stocked, and from which orders can be fulfilled. This includes retail stores, warehouses, pop-up shops, and dropshipping locations. Use this action when you need to: - Get complete details about a specific location (address, contact info, status) - Verify if a location is active and can fulfill orders - Check location attributes before inventory or fulfillment operations - Display location information to users Requires the 'read_locations' OAuth scope.
Retrieves detailed information about a specific marketing event by its ID. Use this action to: - Get full details of a marketing campaign including UTM parameters, budget, and timeline - Check the status and configuration of a specific marketing event - Access information about resources (products, collections) being marketed - Retrieve tracking URLs (manage_url, preview_url) for the event Returns comprehensive event data including event type, marketing channel, budget details, UTM parameters, and associated resources.
Retrieves a single product by its unique product ID. Use when you need to get detailed information about a specific product including its variants, images, and options.
Retrieve details of a specific URL redirect by its ID. Returns the redirect's path (source) and target (destination) configuration. Use this when you have a specific redirect ID and need its details; for finding redirects or getting multiple redirects, use the list redirects action instead.
Retrieve a single smart collection by its ID from Shopify. Use when you need to get detailed information about a specific smart collection including its rules, products ordering, and metadata. Requires read_products access scope.
Retrieves a single Shopify theme by its unique ID. Use this action when you need to: - Get details about a specific theme (name, role, timestamps, store ID) - Check if a theme is the currently published theme (role='main') - Verify theme processing status before modifying assets - Inspect theme metadata like theme_store_id for identifying Shopify Theme Store themes Note: Requires the 'read_themes' OAuth scope which may need merchant approval.
Retrieve a metafield by ID for a supported Shopify resource, such as a product, customer, order, or shop. Non-shop resources also require the owner resource ID.
Retrieves detailed information about a specific refund for an order. Use this action when you need complete refund details including refunded line items, transactions, order adjustments, duties, and shipping costs. Both order_id and refund_id are required. To list all refunds for an order, use the 'Retrieve refunds for order' action instead.
Retrieve a specific transaction for an order. Use when you need to get detailed information about a payment transaction. Transactions in multi-currency orders are in presentment currency by default; use in_shop_currency parameter to get shop currency.
Retrieves a list of abandoned checkouts from Shopify for recovery campaigns, remarketing, or analytics, with optional status, date and since-ID filters. This legacy REST action returns checkout data but does not expose pagination links from response headers.
Retrieves a list of Shopify marketing events, such as ads, posts, newsletters, and campaigns. Returns up to 250 events per request, with a default limit of 50, including available event metadata such as channel, budget, timestamps, and associated resources.
Retrieves Shopify script tags, with optional filters for URL and date ranges. Supports pagination using a since-ID parameter.
Retrieves a count of custom collections with optional filters. Use when you need to know how many custom collections exist in the store, optionally filtered by product, publication status, or date ranges.
Retrieve a list of custom collections from Shopify. Use when you need to query collections with filtering options like handle, title, publication status, or date ranges.
Retrieves the status and progress of an asynchronous batch discount code creation job for a specific price rule. Use this to monitor a job that creates up to 100 discount codes at once. Check the 'status' field ('queued', 'running', or 'completed') and 'imported_count'/'failed_count' to track progress. The job is created via POST /price_rules/{price_rule_id}/batch and this endpoint lets you poll for its completion.
Retrieve a list of discount codes for a discount code creation job. Use when you need to check the status of a batch discount code creation job and see which codes were successfully created and which encountered errors.
Retrieves articles from a specified Shopify blog, with optional filtering by author, dates, handle, or publication status. Supports pagination using a since-ID parameter.
Retrieve a list of collects (product-collection associations). Use when you need to find which products belong to which custom collections.
Retrieve a list of Shopify draft orders, optionally filtered by status, IDs, or update dates. Supports pagination using since_id and limit; response-header pagination links are not returned.
Retrieve a page of Shopify store pages, including content or metadata, with optional filters and since-ID pagination.
Retrieve a metafield by its ID directly. Use when you know the metafield ID and need to fetch its details without specifying the resource type or owner.
DEPRECATED: Use SHOPIFY_GET_METAFIELDS instead (apps/shopify/actions/get_metafields.py). Retrieve a list of metafields attached to resources. Use when you need to fetch metafields that can be filtered by namespace, key, type, and date ranges.
Retrieve fulfillments associated with a Shopify order. Use when you need to get delivery tracking information, shipment status, or fulfillment details for a specific order.
Retrieves all transactions for a specific order. Use when you need to view payment exchanges for an order. Transactions include authorization, sale, capture, void, and refund types.
Retrieve the total count of pages in a Shopify store. Use when you need to determine how many pages exist, optionally filtered by creation date, update date, publication date, publication status, or title.
Retrieve products belonging to a specific Shopify collection. Choose which fields to return, retrieve products after a specified ID, or provide a page cursor; the default limit is 50 products and the maximum is 250. The response does not include the Link header needed to obtain the next page cursor. Requires read_products access.
Retrieve a list of refunds for a Shopify order. Use when you need to check refund history for a specific order.
Retrieve the shop's configuration and general business settings. Use when you need to access shop information such as name, domain, timezone, currency, contact details, or plan information.
Retrieves a single price rule by its unique identifier. Use when you need to get detailed information about a specific discount rule including its value, target type, customer selection, prerequisites, and entitlements.
Retrieves a specific fulfillment event by its ID. **DEPRECATED**: This endpoint is deprecated as of Shopify REST Admin API 2024-10. Consider using the list fulfillment events endpoint instead to retrieve all events and filter by ID. Use this tool when you need detailed tracking information for a specific fulfillment event, including delivery status, location data (address, city, country, coordinates), timestamps, and carrier messages. Fulfillment events track the shipment progress and are displayed on customer order status pages. Note: Requires valid order_id, fulfillment_id, and event_id. All three IDs must correspond to existing resources in the store.
Retrieve a specific fulfillment order by its ID. Use when you need detailed information about a particular fulfillment order including line items, destination, and status.
Retrieves a list of storefront access tokens that have been issued for the shop. Use when you need to view all active storefront access tokens and their associated permissions. The app must have at least one unauthenticated access scope to use this endpoint.
Retrieves the total count of gift cards in the store. Use when you need to know how many gift cards exist, optionally filtered by enabled or disabled status.
Retrieves a count of locations. Use when you need to determine how many physical or virtual locations are configured in the Shopify store.
Retrieve a count of products in the Shopify store. Use when you need to get the total number of products, optionally filtered by collection, vendor, product type, status, or date ranges.
Retrieves all article tags used across all blogs in the Shopify shop. Use this to: - Discover available tags for filtering or categorizing blog content - Identify popular tags to understand trending topics - Build tag clouds or navigation elements for blog sections - Analyze content organization across your blogs Optional: Use 'limit' to retrieve a subset, or 'popular=1' to get the most frequently used tags first.
Retrieves a list of currencies enabled on a Shopify store. This action fetches all currencies that the merchant has enabled for multi-currency transactions through Shopify Payments. Each currency includes its ISO 4217 code, the timestamp when its conversion rate was last updated, and its enabled status. Use this when you need to: - Check which currencies are available for customer transactions - Verify currency configurations for the shop - Get conversion rate update timestamps - Determine multi-currency support capabilities Note: This is a read-only endpoint that requires no parameters and returns all enabled currencies for the authenticated shop.
Retrieve a list of customers from a Shopify store. Use when you need to fetch customer data with optional filtering by IDs, creation dates, update dates, or account status. Supports pagination using cursor-based navigation via page_info parameter.
Retrieve a list of gift cards from Shopify. Use when you need to fetch gift cards with optional filtering by status and pagination support.
Retrieves a list of inventory levels for specified items and locations. Use when you need to check inventory quantities at specific locations. At least one of inventory_item_ids or location_ids must be provided as a filter parameter.
Retrieves a list of orders from Shopify. Use when you need to fetch multiple orders with optional filtering by status, financial status, fulfillment status, or date ranges.
Retrieve a list of Shopify webhook subscriptions registered to the app, optionally filtered by topic, address, creation date, or other criteria. Subscriptions created in the Shopify admin are not returned.
Retrieve all application credits issued to a shop by your app. Use when you need to view credits that can be applied towards future app purchases.
Retrieves the count of orders matching specified filters. Use when you need to know how many orders exist with specific criteria (status, dates, financial status, etc.).
Retrieves all fulfillments associated with a specific fulfillment order. Returns detailed shipment tracking information, delivery status, line items, and fulfillment metadata. Use this action when you need to check the status of completed or in-progress fulfillments for a fulfillment order.
Revoke previously granted access scopes from an app installation. Use when you need to reduce an app's permissions without completely uninstalling it, providing granular control over what data and functionality the app can access.
Create and run a bulk operation to import data asynchronously by executing a GraphQL mutation multiple times. Use when you need to perform bulk mutations like creating/updating many products, variants, or other resources from a JSONL file. Each line in your JSONL file is processed as a separate mutation execution. Results are delivered in a JSONL file when complete. Note: Only one bulk mutation operation can run at a time per shop (though bulkOperationRunQuery can run simultaneously).
Run a focused ShopifyQL analytics query and return compact tabular results. Requires read_reports and Shopify Level 2 protected customer data access. Example uses include a sales timeseries, top products by sales, returning customers by month, and inventory sell-through by product.
Create and start a Shopify GraphQL bulk operation for asynchronous data fetching. Use when you need to retrieve large datasets from Shopify without pagination. The operation runs in the background and results are available in a JSONL file for up to seven days after completion. Only one bulk query operation can run at a time per shop. Query must include at least one connection field.
Start a Shopify GraphQL bulk query to retrieve large datasets, such as products, orders, customers, or inventory, without manual pagination. The query must include at least one connection using the edges and node structure. Polls the current bulk operation until a terminal state or timeout, returning its metadata and any available result or partial-data URL.
Search for customers matching a supplied query. Use when you need to find customers based on specific criteria like email, name, location, order count, or spending.
Search for gift cards matching a query across indexed fields such as dates, balance, email, and last characters. A cursor can be supplied to request a page, but response Link headers are not returned.
Searches products with validated Shopify product filters and cursor pagination.
Sends an account activation invite email to an existing customer, allowing them to set up their online store account. Use this action to: - Send account activation emails to newly created customers who haven't activated their accounts yet - Resend activation invites to customers who didn't receive or lost the original email - Send custom invitation emails with personalized subject lines and messages The customer must not already have an active account. If the customer has already activated their account, this action will fail with a 422 error.
Send an invoice email for a draft order to a customer. Use when you need to email an invoice to a customer for a specific draft order.
Sends a customer an invitation email to activate a legacy Shopify customer account. The invitation can use the store's default template or a custom subject and message; legacy customer accounts must be enabled.
Set a specific address as the default address for a customer. Use when you need to mark an address as default for tax and shipping calculations. The default address cannot be deleted.
Set the latest fulfillment deadline for multiple fulfillment orders. Use when you need to update deadline for one or more fulfillment orders.
Set inventory level for an item at a location. Use when you need to establish or update inventory quantity for a specific item at a designated location. If the location isn't already connected, the connection occurs automatically. The inventory item must have inventory tracking enabled before setting inventory levels.
Create or update multiple metafields in a single operation using the metafieldsSet GraphQL mutation. Use when you need to set custom metadata on Shopify resources like shops, products, customers, or orders. Supports up to 25 metafields per request.
Execute a Shopify Admin GraphQL query or mutation with variables. Returns a response envelope containing GraphQL data and available error, pagination, and extension information.
List, retrieve, or count Shopify collections using GraphQL presets, or execute a custom Admin GraphQL document, including mutations. Returns GraphQL data and available error, pagination, and extension information.
List, search, retrieve, or count Shopify customers using GraphQL presets, or execute a custom Admin GraphQL document, including mutations. Returns GraphQL data and available error, pagination, and extension information.
List, search, or retrieve Shopify discounts using GraphQL presets, or execute a custom Admin GraphQL document, including mutations. Returns GraphQL data and available error, pagination, and extension information.
Lists, retrieves, and counts Shopify draft orders using GraphQL, or executes a custom GraphQL document that may perform mutations. Responses may include pagination and cost metadata; inspect mutation errors in the returned data.
Lists and retrieves Shopify inventory items and their levels using GraphQL, or executes a custom GraphQL document that may perform mutations. Responses may include pagination and cost metadata; inspect mutation errors in the returned data.
Reads Shopify metafields, metafield definitions, and metaobjects using GraphQL presets, or executes a custom GraphQL document that may perform mutations.
Lists, retrieves, counts, and searches Shopify orders using GraphQL, or executes a custom GraphQL document that may perform mutations. Responses may include pagination and cost metadata; inspect mutation errors in the returned data.
Runs Shopify GraphQL operations for products, variants, options, media, and publications. It accepts variables for the selected operation and provides pagination metadata when available; inspect mutation errors in the returned data.
Reads Shopify shop and app installation metadata using GraphQL, or executes a custom GraphQL document that may perform mutations.
Lists, retrieves, and counts Shopify webhook subscriptions using GraphQL, or executes a custom GraphQL document that may perform mutations. Responses may include pagination and cost metadata; inspect mutation errors in the returned data.
Canonical GraphQL write surface for Shopify orders, customers, inventory, discounts, collections, webhooks, fulfillments, metafields, and bulk operations.
Request cancellation from the fulfillment service handling a fulfillment order. This sends a request, not an immediate cancellation: the service can accept or reject it. Optionally supply a reason. Uses the legacy REST Admin API.
Request fulfillment from the service assigned to a fulfillment order. Select line items and quantities or leave them blank to request all items. Partial requests can split the fulfillment order. This submits a request, not a completed fulfillment; the service may accept or reject it. Uses the legacy REST Admin API.
Trigger Shopify Flow workflows that begin with the specified trigger handle. Use when you need to manually activate Flow automation workflows from your app. The payload must be under 50 KB and match the trigger's expected schema. To learn more, refer to Create Shopify Flow triggers documentation.
Unpublish a collection from this app's sales channel by deleting its listing. Does not delete the underlying collection. Requires a sales-channel app with merchant-approved product listing access. Uses the legacy REST Admin API; new public apps must use the GraphQL Admin API.
Unpublish a product from this app's sales channel by deleting its listing. Does not delete the underlying product. Requires a sales-channel app with merchant-approved product listing access. Uses the legacy REST Admin API; new public apps must use the GraphQL Admin API.
Update an existing metafield's value, type, or description for supported Shopify resource types, including products, customers, orders, collections, and shops.
Update an existing metafield for any Shopify resource. Use when modifying metafield properties like value, type, or description for products, customers, orders, collections, shops, or other resources. Note: The namespace and key of an existing metafield cannot be changed.
Update an existing metafield's value and type by its numeric ID using the Shopify REST Admin API.
Updates a product and its variants and images. Use when modifying existing product details, pricing, variants, images, or SEO information.
Updates product fields and images, then updates variant prices in a second non-atomic step with partial-success details.
Updates an existing gift card in Shopify. Use when you need to modify a gift card's expiration date, merchant note, template suffix, or assign it to a customer. Only four properties can be updated after creation: expires_on (expiration date), note (merchant-only note), template_suffix (Liquid template suffix), and customer_id (can only be set if currently null). Note: Gift card balance and initial value cannot be modified through this endpoint.
Update the capped amount on usage-based billing for an app subscription line item. Use when adjusting usage limits based on merchant needs or changing pricing models. The mutation returns a confirmation URL where the merchant must approve the new pricing limit before it takes effect. Learn more at https://shopify.dev/docs/apps/launch/billing/subscription-billing/update-max-charge.
Update an existing article in a Shopify blog. Use when you need to modify article properties such as title, content, tags, or publication status.
Update an existing metafield for a blog. Use when you need to modify metafield properties like value, type, or description for a blog resource.
Update a carrier service created by the connected app. Changes its name, callback URL, activation or service discovery settings. Requires write_shipping and a store eligible for carrier-calculated shipping (including an eligible development store). Only the creating app can update the service. Uses Shopify's legacy REST Admin API.
Update an existing comment on a blog article in Shopify. Use when you need to modify comment properties such as body text, author, or publication date. Note: This endpoint requires 'protected customer data' access because comments contain customer information (author name, email, IP address). Ensure the app has proper permissions before using this action.
Update an existing country's tax configuration in Shopify. Use when you need to modify tax settings for a country. Note: This action is DEPRECATED as of 2024-07, and custom tax values cannot be created or updated as of 2020-10.
DEPRECATED: Updates an existing country's tax configuration in Shopify. This endpoint is deprecated as of API version 2024-07 and may return 403 Forbidden errors. The tax field has been read-only since API version 2020-10. Shopify recommends migrating to the GraphQL Admin API's Countries in shipping zone API instead. This action should not be used for new implementations.
Update an existing custom collection in Shopify. Use when you need to modify properties of a custom collection such as title, description, publication status, or sorting order.
Update an existing customer in Shopify. Use when you need to modify customer details such as name, email, phone, tags, addresses, or marketing consent preferences.
Updates an existing address for a Shopify customer. This action allows you to modify address details such as street address, city, province, country, postal code, and contact information. At least one address field must be provided to update. Requires Protected Customer Data access approval and write_customers scope. Common use cases: - Correct shipping address errors for customers - Update customer contact information - Change billing addresses for customer accounts
Update Shopify Payments dispute evidence using the legacy REST Admin API. The submit_evidence parameter has no effect: the API cannot submit evidence. Merchants must confirm submission in Shopify admin before the due date; submission sends evidence directly to the bank and is final. Requires Shopify-approved access to write_shopify_payments_dispute_evidences.
Update an Amazon EventBridge webhook subscription in Shopify. Use when you need to modify the ARN or data format of an existing EventBridge webhook. Note: This mutation is deprecated; consider using webhookSubscriptionUpdate for new implementations. For app-specific webhooks, using shopify.app.toml configurations may be easier as they are automatically maintained by Shopify.
Update an existing fulfillment service's name, callback URL or capabilities. Only supplied fields are sent. Uses the legacy REST Admin API; the fulfillment_orders_opt_in and requires_shipping_method properties are deprecated.
Updates tracking information (carrier company, tracking number, or custom URL) for an existing fulfillment. Use this action when: - You need to add or update tracking details for a shipment after the fulfillment was created - The carrier information was not provided during fulfillment creation - Tracking numbers become available after shipment - You want to notify customers about updated tracking information Prerequisites: Requires a valid fulfillment_id from a previously created fulfillment.
Updates properties of an inventory item in Shopify. An inventory item represents the physical good behind a product variant, containing metadata like SKU, cost, origin, and shipping requirements. Use this action to modify these properties - NOT to adjust inventory quantities (use inventory level actions for quantity changes). Common use cases: updating product costs, changing SKUs, setting country of origin for customs, or toggling inventory tracking.
Update an existing Shopify marketing event, including its budget, timing, and remote identifier. Budget updates require currency and budget type.
Update an existing Shopify metafield by its ID. Use when you need to modify metafield properties like value, type, or description.
Update a Shopify metafield definition's configuration including name, description, validation rules, access settings, and capabilities. Use when you need to modify an existing metafield definition to change display text, add/remove validations, adjust API access permissions, or enable/disable capabilities like admin filtering or unique value constraints. Note: The type, namespace, key, and owner type identify the definition and cannot be changed - only the configuration settings can be updated.
Update a mobile platform application's identity, links and iOS capabilities. Only supplied properties are sent. Requires the mobile_platform_applications scope, which Shopify Support must enable for the app. Shared web credentials require a custom domain. Uses the legacy Shopify REST Admin API.
Updates mutable fields on an existing Shopify order.
Updates an order risk assessment for fraud detection in Shopify. Use when modifying existing risk evaluations. **IMPORTANT - API DEPRECATION:** This REST API endpoint is deprecated as of version 2025-10. If using API version 2025-10 or later, you must use the GraphQL Admin API's orderRiskAssessmentCreate mutation instead. See: https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderRiskAssessmentCreate **Note:** You cannot modify a risk created by another application.
Updates an existing page in a Shopify store. Use this to modify page properties such as title, HTML content (body_html), author, URL handle, publication status, or template. Requires a valid page_id and at least one field to update. All update fields are optional - provide only the fields you want to change.
Update an existing Shopify price rule's properties, such as its title, value, dates, or prerequisites. Only non-null supplied fields are sent; null values are omitted.
DEPRECATED: Use SHOPIFY_UPDATES_A_PRODUCT instead. Update an existing Shopify product including its variants and images. Use when you need to modify product details, variants, options, images, or SEO metadata.
Modify an existing product image. Use when you need to update image properties such as position, alt text, or variant associations.
Updates an existing metafield for a specific Shopify product.
Updates an existing province for a country in Shopify. IMPORTANT: This endpoint is deprecated as of API version 2024-07. Additionally, custom tax values for provinces cannot be updated as of version 2020-10. While the endpoint accepts update requests and returns 200 OK, province values (especially tax-related fields) may not actually be modified. Consider using the GraphQL Admin API for country/province management.
Update Province Tax Information
Updates a Google Cloud Pub/Sub webhook subscription configuration. Use when modifying the GCP project, topic, or message format for an existing Pub/Sub webhook.
Update an existing Shopify redirect. Use when you need to modify the path or target of a redirect. At least one of path or target must be provided.
Update an existing Shopify redirect. Use when you need to modify the path or target of a redirect.
Modify an existing script tag in Shopify. Use when you need to update script properties like the source URL, display scope, or caching behavior.
Update an existing smart collection. Use when you need to modify a smart collection's properties, rules, or settings.
Update an existing smart collection. Use when you need to modify smart collection properties like title, rules, or settings.
Updates the display order of products already in a smart collection with manual sorting enabled, requiring the write_products scope. Returns an empty response after successfully parsing Shopify's JSON response.
Update a Shopify webhook subscription's endpoint, format, event filter, included fields, or metafield namespaces without recreating the subscription. Specify the subscription ID and the configuration fields to change.
DEPRECATED: Use SHOPIFY_UPDATE_ARTICLE instead. Update an existing article in a Shopify blog. Use when you need to modify article properties such as title, body content, tags, author, or publication status.
Updates the code value of an existing discount code associated with a price rule. This action allows you to change the discount code string that customers use at checkout. The code is case-insensitive and can be up to 255 characters. Only the code value can be updated; to modify discount logic (percentage, amount, conditions), update the price rule itself. Required: Both the price_rule_id and discount_code_id must exist in your Shopify store. The new code must be unique and not already in use by another discount.
Upload a PNG, JPEG, or PDF evidence file to a Shopify Payments dispute. Uses the legacy REST Admin API and JSON base64 data. Total size of all files on the dispute must be less than 4 MB. Uploading does not submit evidence to the bank. Requires Shopify-approved write_shopify_payments_dispute_file_uploads access and an existing editable dispute.
Checks Shopify access and retrieves granted OAuth scopes to help troubleshoot authorization issues. DEPRECATED: Use SHOPIFY_GET_SHOP_DETAILS instead.
The Shopify integration connects your Dench AI CRM directly to Shopify, so agents can read and act on your Shopify data as part of everyday work — answering questions in chat, keeping your CRM in sync, and running automations without anyone copying data between tools.
478 actions are available for agents to invoke on your behalf, and 45 triggers can start a Dench automation the moment something changes in Shopify. Every call runs through Shopify's own authorization, scoped to the account you connect.
Sign in to your Dench workspace and open Integrations.
Find Shopify and click Connect — you'll authorize access through Shopify's own sign-in flow. No API keys or code required.
Ask an agent to use Shopify in chat, or wire a Shopify trigger into an automation.
Manage or disconnect the connection any time from workspace settings.
The Dench Shopify integration connects your AI CRM to Shopify, so AI agents can work with your Shopify data as part of chats, automations, and CRM workflows. You connect your account once, and every agent in your workspace can use it — governed by your workspace permissions.
The Shopify integration currently exposes 478 actions, including Accept Fulfillment Cancellation Request, Accept Fulfillment Request, Activate One-Time Charge, Add product to custom collection, Add product to custom collection (Deprecated), and Adjust inventory levels. Agents invoke them on your behalf from chat or from automations.
Yes. The Shopify integration provides 45 triggers — such as Bulk Operation Finished, Collection Created, Collection Deleted, and Collection Updated — that can start a Dench automation the moment something happens in Shopify.
No. You connect Shopify from your Dench workspace using Shopify's own sign-in and authorization flow — no API keys to copy, no glue code to maintain.
Connections are authorized through Shopify's own authentication flow, and Dench stores only the authorization needed to act on your behalf. You can review and disconnect the Shopify connection from your workspace settings at any time.