# How to connect Shopify to Claude Cowork

```json
{
  "title": "How to connect Shopify to Claude Cowork",
  "toolkit": "Shopify",
  "toolkit_slug": "shopify",
  "framework": "Claude Cowork",
  "framework_slug": "claude-cowork",
  "url": "https://composio.dev/toolkits/shopify/framework/claude-cowork",
  "markdown_url": "https://composio.dev/toolkits/shopify/framework/claude-cowork.md",
  "updated_at": "2026-05-12T10:25:53.365Z"
}
```

## Introduction

Cowork is Anthropic's AI agent for knowledge work. Think of it as Claude Code for everything else. It works autonomously with your computer, local files, and applications to accomplish complex tasks.
This guide walks you through the easiest and most secure way to connect your Shopify account to Cowork via Composio Connect, enabling it to create a new product called 'Summer T-Shirt', add product ID 1234 to 'Holiday Specials' collection, delete the image with ID 5678 from product ID 4321, and more such actions on your behalf without compromising your account security.

## Also integrate Shopify with

- [ChatGPT](https://composio.dev/toolkits/shopify/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/shopify/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/shopify/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/shopify/framework/claude-code)
- [Codex](https://composio.dev/toolkits/shopify/framework/codex)
- [Cursor](https://composio.dev/toolkits/shopify/framework/cursor)
- [VS Code](https://composio.dev/toolkits/shopify/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/shopify/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/shopify/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/shopify/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/shopify/framework/cli)
- [Google ADK](https://composio.dev/toolkits/shopify/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/shopify/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/shopify/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/shopify/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/shopify/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/shopify/framework/crew-ai)

## Connect Shopify to Claude Cowork

### Connecting Shopify to Claude Cowork
1. Open Customize
In Claude Desktop, click Customize in the left sidebar, then select Connectors and click the + icon at the top.
2. Add the Composio MCP server
Click Add custom connector and paste in the Composio MCP server URL:

```bash
https://connect.composio.dev/mcp
```

## What is Claude Cowork?

Claude Cowork is Anthropic's agent for general knowledge work. It can use your computer, files, and connected applications to complete longer-running tasks across your work tools.
With Composio Connect, Cowork can securely access apps like Shopify through MCP without you sharing account credentials directly with the agent.

## What is the Shopify MCP server, and what's possible with it?

The Shopify MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Shopify account. It provides structured and secure access to your store, so your agent can perform actions like managing products, processing orders, handling collections, organizing images, and managing customers on your behalf.
- Product management and automation: Let your agent create new products, update existing listings, or delete products from your Shopify store quickly and accurately.
- Order creation and fulfillment: Direct your agent to generate new orders, associate them with customers, and streamline your sales process with minimal manual input.
- Collection organization: Ask your agent to create custom collections, add products to collections, or remove collections to keep your store categories organized and up to date.
- Product image handling: Have your agent add new images to products, count existing images for inventory tracking, or remove outdated images from your catalog.
- Customer management: Automate the creation of new customer records, making it easy to onboard shoppers and keep your CRM current without lifting a finger.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `SHOPIFY_ADD_PRODUCT_TO_COLLECTION` | Add product to custom collection | 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. |
| `SHOPIFY_ADJUST_INVENTORY_LEVEL` | Adjust inventory levels | 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. |
| `SHOPIFY_APPLY_FULFILLMENT_HOLD` | Apply fulfillment hold | 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. |
| `SHOPIFY_APPROVE_COMMENT` | Approve a comment | 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. |
| `SHOPIFY_BULK_CREATE_PRODUCTS` | Bulk create products via GraphQL | Creates many products (20-50+) in one asynchronous Shopify bulk mutation job. Uses stagedUploadsCreate for JSONL upload, then bulkOperationRunMutation with productCreate, polling until completion and returning per-row success/errors. |
| `SHOPIFY_BULK_DELETE_CUSTOMER_ADDRESSES` | Bulk delete customer addresses | 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. |
| `SHOPIFY_BULK_DELETE_METAFIELDS` | Delete metafields in bulk | 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. |
| `SHOPIFY_BULK_DELETE_METAOBJECTS` | Bulk delete metaobjects | 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. |
| `SHOPIFY_BULK_QUERY_OPERATION` | Run Shopify bulk query operation | Run a Shopify GraphQL bulk query operation and return the result file URL and operation metadata. Use when you need to retrieve large datasets (thousands of records) from Shopify without manual pagination, such as bulk fetching products, orders, customers, or inventory. The query must include at least one connection (edges/nodes structure). This action polls the operation status until completion or timeout. |
| `SHOPIFY_CALCULATE_REFUND` | Calculate a refund | 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. |
| `SHOPIFY_CANCEL_APP_SUBSCRIPTION` | Cancel App Subscription | 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. |
| `SHOPIFY_CANCEL_BULK_OPERATION` | Cancel Shopify bulk operation | 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. |
| `SHOPIFY_CANCEL_FULFILLMENT` | Cancel a fulfillment | 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. |
| `SHOPIFY_CANCEL_FULFILLMENT_ORDER` | Cancel a Fulfillment Order | 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. |
| `SHOPIFY_CANCEL_ORDER` | Cancel an order | 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. |
| `SHOPIFY_CLOSE_ORDER` | Close an order | Closes an open Shopify order. Use when all line items have been fulfilled or canceled and all financial transactions are complete. |
| `SHOPIFY_COMPLETE_DRAFT_ORDER` | Complete a draft order | 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. |
| `SHOPIFY_CONNECT_INVENTORY_LEVEL` | Connect inventory item to location | 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. |
| `SHOPIFY_COUNT_ARTICLES` | Count articles in blog | 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. |
| `SHOPIFY_COUNT_BLOGS` | Get blogs count | 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. |
| `SHOPIFY_COUNT_CUSTOM_COLLECTIONS` | Retrieve count of custom collections | 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. |
| `SHOPIFY_COUNT_DRAFT_ORDERS` | Get draft orders count | 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. |
| `SHOPIFY_COUNT_EVENTS` | Count all the events | 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. |
| `SHOPIFY_COUNT_FULFILLMENTS` | Count fulfillments for order | 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. |
| `SHOPIFY_COUNT_LOCATION` | Retrieves a count of locations | Retrieves a count of locations. Use when you need to determine how many physical or virtual locations are configured in the Shopify store. |
| `SHOPIFY_COUNT_METAFIELDS` | Count resource metafields | Retrieves the count of metafields attached to a Shopify resource (products, blogs, collections, customers, orders, etc.). Use this when you need to know how many metafields are associated with a resource without retrieving the full list. Returns only the total count, making it efficient for checking if metafields exist or monitoring metafield usage. |
| `SHOPIFY_COUNT_PAGES` | Retrieve page count | 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. |
| `SHOPIFY_COUNT_PRICE_RULES` | Count price rules | Retrieves a count of all price rules. Use when you need to determine how many price rules (discount campaigns) are configured in the store. |
| `SHOPIFY_COUNT_PRODUCT_IMAGES` | Count product images | 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. |
| `SHOPIFY_COUNT_PRODUCTS` | Retrieves a count of products | 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. |
| `SHOPIFY_COUNT_PRODUCT_VARIANTS` | Count product variants | Retrieves the total count of variants for a Shopify product. Use when you need to know how many variants exist for a specific product. |
| `SHOPIFY_COUNT_WEBHOOKS` | Receive a count of all webhooks | Retrieves a count of existing webhook subscriptions. Use when you need to know how many webhooks are configured, optionally filtered by address or topic. |
| `SHOPIFY_CREATE_A_METAFIELD` | Create a metafield | Create a metafield for any Shopify resource. Use when you need to attach custom metadata to products, customers, orders, collections, or other supported resources. |
| `SHOPIFY_CREATE_A_NEW_PRODUCT_IMAGE` | Create A New Product Image | 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. |
| `SHOPIFY_CREATE_APP_SUBSCRIPTION` | Create app subscription | 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. |
| `SHOPIFY_CREATE_ARTICLE` | Create Article | Create an article for a blog in Shopify. Use when you need to add blog content to a specific blog. The title field is mandatory - requests without titles return a 422 error. |
| `SHOPIFY_CREATE_ARTICLE_COMMENT` | Create Comment for Article | 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. |
| `SHOPIFY_CREATE_BLOG` | Create a new blog | 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. |
| `SHOPIFY_CREATE_CUSTOM_COLLECTION` | Create a custom collection | Create a new custom (manually curated) collection in Shopify. Does not support smart collections. Use when you need to manually curate and group products for easier store browsing. Custom collections require a title and support optional fields like description, image, publication settings, and sort order. After creation, use the returned `collection_id` with SHOPIFY_ADD_PRODUCT_TO_COLLECTION to associate products. |
| `SHOPIFY_CREATE_CUSTOMER` | Create Customer | Create a new customer in Shopify. Use to add a customer record to the store with contact details, addresses, and marketing preferences. Requires at least one of: email, phone, or both first_name and last_name. Errors (e.g., duplicate email, invalid fields) are returned in the response body's userErrors array, not as HTTP error codes — always inspect userErrors to detect failures. |
| `SHOPIFY_CREATE_CUSTOMER_ACCOUNT_ACTIVATION_URL` | Generate Customer Account Activation URL | 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. |
| `SHOPIFY_CREATE_CUSTOMER_ADDRESS` | Create customer address | Create a new address for a customer. Use when you need to add an address to an existing customer's address list. |
| `SHOPIFY_CREATE_DELEGATE_ACCESS_TOKEN` | Create delegate access token | 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. |
| `SHOPIFY_CREATE_DISCOUNT_CODE` | Create Discount Code | 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. |
| `SHOPIFY_CREATE_DISCOUNT_CODE_BATCH` | Create Discount Codes Batch | 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. |
| `SHOPIFY_CREATE_DRAFT_ORDER` | Create a new draft order | 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. |
| `SHOPIFY_CREATE_EVENT_BRIDGE_WEBHOOK_SUBSCRIPTION` | Create EventBridge webhook subscription | 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. |
| `SHOPIFY_CREATE_FULFILLMENT` | Create Fulfillment | 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. |
| `SHOPIFY_CREATE_FULFILLMENT_EVENT` | Create Fulfillment Event | 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. |
| `SHOPIFY_CREATE_GIFT_CARD` | Create Gift Card | 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. |
| `SHOPIFY_CREATE_MARKETING_ENGAGEMENTS` | Create Marketing Event Engagements | 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. |
| `SHOPIFY_CREATE_MARKETING_EVENT` | Create Marketing Event | Create a marketing event in Shopify to track promotional actions. Use when you need to track marketing campaigns targeting customers across various channels. |
| `SHOPIFY_CREATE_METAFIELD` | Create blog metafield | 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. |
| `SHOPIFY_CREATE_ONE_TIME_APPLICATION_CHARGE` | Create One-Time Application Charge | 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. |
| `SHOPIFY_CREATE_ORDER` | Create an order | 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. |
| `SHOPIFY_CREATE_ORDER_TRANSACTION` | Create transaction for order | Creates a transaction for an order to process payment operations. Use when you need to authorize, capture, refund, void, or complete a sale for an order. For multi-currency orders, the currency field is required when creating refund and capture transactions. |
| `SHOPIFY_CREATE_PAGE` | Create a new page | 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. |
| `SHOPIFY_CREATE_PRICE_RULE` | Create Price Rule | 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. |
| `SHOPIFY_CREATE_PRODUCT_METAFIELD` | Create product metafield | 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. |
| `SHOPIFY_CREATE_PRODUCT_VARIANT` | Create a new product variant | 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. |
| `SHOPIFY_CREATE_PUB_SUB_WEBHOOK_SUBSCRIPTION` | Create Pub/Sub webhook subscription | 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. |
| `SHOPIFY_CREATE_REDIRECT` | Create Redirect | 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. |
| `SHOPIFY_CREATE_REFUND` | Create order refund | Creates a refund for a Shopify order. **IMPORTANT: You must call the calculate refund endpoint (SHOPIFY_CREATE_ORDERS_REFUNDS_CALCULATE) first** to generate accurate transaction data with kind='suggested_refund', then change kind to 'refund' before using this action. Requires order_id and transaction details (parent_id, amount, kind='refund', gateway). For multi-currency orders, currency is required. Rate limit: 5 refunds/minute on dev/trial stores. |
| `SHOPIFY_CREATE_RESOURCE_FEEDBACK` | Create Resource Feedback | 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. |
| `SHOPIFY_CREATES_A_NEW_PRODUCT` | Create a new product | 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. |
| `SHOPIFY_CREATE_SCRIPT_TAG` | Create Script Tag | 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. |
| `SHOPIFY_CREATE_SMART_COLLECTIONS` | Create Smart Collection | 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. |
| `SHOPIFY_CREATES_OR_UPDATES_AN_ASSET_FOR_A_THEME` | Create or Update Theme Asset | 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 |
| `SHOPIFY_CREATE_STOREFRONT_ACCESS_TOKEN` | Create Storefront Access Token | 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. |
| `SHOPIFY_CREATE_THEME` | Create Theme | 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. |
| `SHOPIFY_CREATE_WEBHOOK` | Create Webhook | 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). |
| `SHOPIFY_CREATE_WEBHOOK_SUBSCRIPTION` | Create webhook subscription | 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. |
| `SHOPIFY_DELETE_ARTICLE` | Delete Article | Delete an article from a blog in Shopify. Use when you need to permanently remove blog content. This action is irreversible. |
| `SHOPIFY_DELETE_BLOG` | Delete a blog | Permanently deletes a blog from a Shopify store using its `blog_id`; this action is irreversible and requires the 'content' access scope. |
| `SHOPIFY_DELETE_COLLECT` | Remove product from collection | 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. |
| `SHOPIFY_DELETE_COMMENT` | Remove a comment | 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). |
| `SHOPIFY_DELETE_CUSTOMER` | Delete a customer | 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. |
| `SHOPIFY_DELETE_CUSTOMER_ADDRESS` | Delete customer address | 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. |
| `SHOPIFY_DELETE_DRAFT_ORDER` | Delete a draft order | Delete a draft order from Shopify. Use when you need to remove an existing draft order permanently. |
| `SHOPIFY_DELETE_FULFILLMENT_SERVICE` | Remove fulfillment service | Remove an existing fulfillment service from a Shopify store. Use when you need to permanently delete a third-party fulfillment service. |
| `SHOPIFY_DELETE_INVENTORY_LEVEL` | Delete inventory levels | 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. |
| `SHOPIFY_DELETE_MARKETING_EVENT` | Delete a marketing event | Delete a marketing event from Shopify. Use when you need to remove an existing marketing event from the system. |
| `SHOPIFY_DELETE_METAFIELD` | Delete a metafield by its ID | 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. |
| `SHOPIFY_DELETE_METAOBJECT` | Delete metaobject | 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. |
| `SHOPIFY_DELETE_METAOBJECT_DEFINITION` | Delete metaobject definition | 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. |
| `SHOPIFY_DELETE_ORDER` | Delete an order | 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. |
| `SHOPIFY_DELETE_PAGE` | Delete a page | 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. |
| `SHOPIFY_DELETE_PRICE_RULE` | Delete price rule | 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. |
| `SHOPIFY_DELETE_PRODUCT` | Delete a product | 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. |
| `SHOPIFY_DELETE_PRODUCT_IMAGE` | Delete product image | 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. |
| `SHOPIFY_DELETE_PRODUCT_METAFIELD` | Delete product metafield | Deletes a specific metafield from a Shopify product using the product ID and metafield ID. |
| `SHOPIFY_DELETE_PRODUCT_VARIANT` | Remove product variant | 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. |
| `SHOPIFY_DELETE_REDIRECT` | Delete redirect | 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. |
| `SHOPIFY_DELETES_A_CUSTOM_COLLECTION` | Delete a custom collection | 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. |
| `SHOPIFY_DELETES_A_DISCOUNT_CODE` | Delete a discount code | Delete a discount code from a price rule. Use when you need to remove a specific discount code associated with a price rule. |
| `SHOPIFY_DELETE_SAVED_SEARCH` | Delete a saved search | 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]). |
| `SHOPIFY_DELETE_SMART_COLLECTION` | Delete smart collection | 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. |
| `SHOPIFY_DELETE_STOREFRONT_ACCESS_TOKEN` | Delete Storefront Access Token | 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. |
| `SHOPIFY_DELETE_THEME` | Delete theme | Deletes a theme from the Shopify store by its ID. Use this tool when you need to permanently remove an unwanted theme. The deleted theme's details are returned in the response for confirmation. **Important limitations:** - Cannot delete a theme that is currently uploading or being updated (processing=true) - Cannot delete the last published theme (role=main) - you must publish another theme first - Cannot delete a theme that doesn't exist (returns 404) - Requires 'write_themes' scope permission **Best practices:** - Only delete unpublished, demo, or development themes - Check theme.role and theme.processing before deletion - Keep at least one published theme at all times |
| `SHOPIFY_DELETE_THEME_ASSET` | Delete theme asset | 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. |
| `SHOPIFY_DELETE_WEBHOOK` | Delete webhook subscription | 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. |
| `SHOPIFY_DELETE_WEBHOOK_SUBSCRIPTION` | Delete webhook subscription | 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. |
| `SHOPIFY_DELETE_WEB_PRESENCE` | Delete web presence | Delete a web presence from Shopify. Use when you need to remove a web presence by its ID. |
| `SHOPIFY_DISABLE_GIFT_CARD` | Disable a Gift Card | 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. |
| `SHOPIFY_ENABLE_STANDARD_METAOBJECT_DEFINITION` | Enable standard metaobject definition | Enable a standard metaobject definition from its template. Use when you need to activate a predefined Shopify metaobject template for use in your store. |
| `SHOPIFY_GET_ABANDONMENT` | Get abandonment | 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. |
| `SHOPIFY_GET_ABANDONMENT_BY_ABANDONED_CHECKOUT_ID` | Get abandonment by abandoned checkout ID | 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. |
| `SHOPIFY_GET_ACCESS_SCOPES` | Get a list of access scopes | 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. |
| `SHOPIFY_GET_APP` | Get App | 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. |
| `SHOPIFY_GET_APP_BY_HANDLE` | Get app by handle | 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. |
| `SHOPIFY_GET_APP_INSTALLATION` | Get app installation details | 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. |
| `SHOPIFY_GET_APPLICATION_CHARGE_BY_ID` | Get Application Charge By ID | Retrieve a single application charge by its unique identifier. Use when you need detailed information about a specific one-time charge. |
| `SHOPIFY_GET_APPLICATION_CHARGES` | Get Application Charges | 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. |
| `SHOPIFY_GET_APPLICATION_CREDITS` | Get application 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. |
| `SHOPIFY_GET_ARTICLE` | Get Article | 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. |
| `SHOPIFY_GET_BATCH_DISCOUNT_CODES` | Get Batch Discount Codes | 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. |
| `SHOPIFY_GET_BLOG` | Get Single Blog | Retrieve a single blog by its unique identifier. Use when you need to access detailed information about a specific blog in the Shopify store. |
| `SHOPIFY_GET_BLOG_ARTICLE_TAGS` | Get blog article tags | 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. |
| `SHOPIFY_GET_BULK_OPERATION` | Get bulk operation status | 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. |
| `SHOPIFY_GET_CARRIER_SERVICES` | Get carrier 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. |
| `SHOPIFY_GET_CATALOGS_COUNT` | Get catalogs count | 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. |
| `SHOPIFY_GET_CHECKOUT_PROFILE` | Get checkout profile | 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. |
| `SHOPIFY_GET_CHECKOUTS_COUNT` | Get checkouts count | Retrieves a count of abandoned checkouts from the past 90 days. Use when you need to know how many checkouts are abandoned, optionally filtered by date ranges or status. |
| `SHOPIFY_GET_COLLECT_BY_ID` | Get collect by ID | Retrieves a specific collect by its ID. Use when you need to get details about a specific product-collection relationship. |
| `SHOPIFY_GET_COLLECTION_BY_ID` | Get collection by ID | Retrieves a specific Shopify collection by its `collection_id`, optionally filtering returned data to specified `fields`. |
| `SHOPIFY_GET_COLLECTION_BY_IDENTIFIER` | Get collection by identifier | 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. |
| `SHOPIFY_GET_COLLECTS` | Get collects | 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. |
| `SHOPIFY_GET_COLLECTS_COUNT` | Get collects count | 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. |
| `SHOPIFY_GET_COMMENTS_COUNT` | Get count of comments | Retrieves a count of comments. Use when you need to know how many comments exist, optionally filtered by article, blog, status, or date ranges. |
| `SHOPIFY_GET_CONSENT_POLICY` | Get consent policy | Query consent policies for privacy compliance requirements. Use when you need to retrieve customer consent requirements for specific regions or countries (GDPR, CCPA, etc.). |
| `SHOPIFY_GET_COUNTRIES` | Get Countries | 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. |
| `SHOPIFY_GET_COUNTRIES_PARAM_COUNTRY_ID_PROVINCES_COUNT` | Get provinces count 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. |
| `SHOPIFY_GET_COUNTRIES_PARAM_COUNTRY_ID_PROVINCES_PARAM_PROVI` | Get Province for Country | Get Province for Country |
| `SHOPIFY_GET_COUNTRY` | Get country | 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. |
| `SHOPIFY_GET_COUNTRY_PROVINCES` | Get provinces for country | 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. |
| `SHOPIFY_GET_CURRENCIES` | Get Currencies | 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. |
| `SHOPIFY_GET_CUSTOM_COLLECTION_BY_ID` | Get custom collection by ID | Retrieve a single custom collection by its unique ID from Shopify. Use when you need to fetch detailed information about a specific custom collection. |
| `SHOPIFY_GET_CUSTOM_COLLECTIONS` | Get custom collections | 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. |
| `SHOPIFY_GET_CUSTOM_COLLECTIONS_COUNT` | Get custom collections count | 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. |
| `SHOPIFY_GET_CUSTOMER` | Retrieve a single customer | Retrieve a single customer by their unique identifier. Use when you need to fetch detailed information about a specific customer. |
| `SHOPIFY_GET_CUSTOMER_ADDRESS` | Get Customer Address | 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. |
| `SHOPIFY_GET_CUSTOMER_ADDRESSES` | Get Customer Addresses | Retrieves all addresses associated with a specific customer. Returns complete address details including street address, city, province/state, country, postal code, and contact information. Each address includes a unique ID and indicates if it's the customer's default address. Important: This endpoint requires 'Protected Customer Data Access' approval from Shopify. Without this approval, requests will fail with a 403 error. See https://shopify.dev/docs/apps/launch/protected-customer-data for details. Use this action when you need to: (1) View all addresses for a customer, (2) Check a customer's default address, (3) Retrieve address details before updating or deleting. |
| `SHOPIFY_GET_CUSTOMER_ORDERS` | Get customer orders | Retrieves all orders for a specific, existing customer in Shopify using their unique customer ID. |
| `SHOPIFY_GET_CUSTOMERS_COUNT` | Get customers count | Retrieves a count of all customers. Use when you need to know the total number of customers, optionally filtered by creation or update dates. |
| `SHOPIFY_GET_CUSTOMERS_SEARCH` | Search Customers | 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. |
| `SHOPIFY_GET_DISCOUNT_CODE` | Get Discount Code | 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. |
| `SHOPIFY_GET_DISCOUNT_CODE_BATCH_JOB` | Retrieve Discount Code Creation Job | 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. |
| `SHOPIFY_GET_DISCOUNT_CODES_COUNT` | Get discount codes count | 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. |
| `SHOPIFY_GET_DISCOUNT_CODES_LOOKUP` | Get Discount Code Location | 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. |
| `SHOPIFY_GET_DRAFT_ORDER` | Receive a single draft order | 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. |
| `SHOPIFY_GET_EVENT` | Get event by ID | 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. |
| `SHOPIFY_GET_EVENTS` | Get events list | Retrieves a list of audit trail events from a Shopify store. Events represent actions performed on store resources (products, orders, collections, pages, articles, etc.). Each event captures what happened (verb: create/update/destroy), when it occurred, who performed it, and which resource was affected. This is useful for tracking store activity history, auditing changes, and building activity logs. Use cases: - Track when products were created, updated, or deleted - Monitor order fulfillment activities - Audit changes to collections and content - Build activity timelines for specific resources - Detect recent modifications to store resources Important: Events may not appear immediately (can take a few seconds after the action). Pagination is implemented via Link headers (rel="next", rel="previous") in the response, not via page parameters. Note: The REST Admin API is legacy as of October 2024. Consider GraphQL alternatives for new integrations. |
| `SHOPIFY_GET_FULFILLMENT` | Get fulfillments by fulfillment order | 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. |
| `SHOPIFY_GET_FULFILLMENT_EVENTS` | Get fulfillment events | 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. |
| `SHOPIFY_GET_FULFILLMENT_ORDER` | Get fulfillment orders for 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. |
| `SHOPIFY_GET_FULFILLMENT_ORDER_FULFILLMENTS` | Retrieves fulfillments by fulfillment order | 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. |
| `SHOPIFY_GET_FULFILLMENT_ORDER_LOCATIONS_FOR_MOVE` | Get fulfillment order locations for move | 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. |
| `SHOPIFY_GET_FULFILLMENT_ORDER_MOVE_LOCATIONS` | Get fulfillment order locations for move | 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. |
| `SHOPIFY_GET_FULFILLMENT_ORDERS_FOR_ORDER` | Get fulfillment orders for 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. |
| `SHOPIFY_GET_FULFILLMENT_SERVICES` | Get Fulfillment Services | Retrieve a list of fulfillment services available on the Shopify store. Use when you need to get information about third-party warehouses that prepare and ship orders on behalf of the store owner. |
| `SHOPIFY_GET_GIFT_CARD_BY_ID` | Get Gift Card By 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). |
| `SHOPIFY_GET_GIFT_CARDS` | Retrieves a list of gift cards | Retrieve a list of gift cards from Shopify. Use when you need to fetch gift cards with optional filtering by status and pagination support. |
| `SHOPIFY_GET_GIFT_CARDS_COUNT` | Retrieves a count of gift cards | 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. |
| `SHOPIFY_GET_INVENTORY_ITEM` | Get Inventory Item | 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. |
| `SHOPIFY_GET_INVENTORY_ITEMS` | Get Inventory Items | Retrieves a list of inventory items by specified IDs. Use when you need to get inventory item details like SKU, cost, shipping requirements, and tracking status. Note: As of version 2019-10, pagination is implemented using links provided in response headers. |
| `SHOPIFY_GET_INVENTORY_LEVELS` | Get Inventory Levels | 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. |
| `SHOPIFY_GET_INVENTORY_LEVELS_FOR_LOCATION` | Get Inventory Levels For Location | 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. |
| `SHOPIFY_GET_LOCATION` | Get location | 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. |
| `SHOPIFY_GET_LOCATIONS_COUNT` | Get locations count | Query the count of locations in a Shopify store using the GraphQL API. Use when you need to get the total number of locations, optionally filtered by search criteria. |
| `SHOPIFY_GET_MARKETING_EVENT` | Retrieve a single marketing event | 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. |
| `SHOPIFY_GET_MARKETING_EVENTS_COUNT` | Get marketing events count | Retrieves a count of all marketing events in the store. Use when you need to know the total number of marketing events. |
| `SHOPIFY_GET_METAFIELD` | Get blog metafields | Retrieve a list of metafields from a blog resource. Use when you need to fetch metafields attached to a specific Shopify blog. |
| `SHOPIFY_GET_METAFIELD_BY_ID` | Get metafield by ID | Retrieve a single metafield from a resource by its ID. Use when you need to fetch metafield details without knowing the parent resource. |
| `SHOPIFY_GET_METAFIELDS` | Get metafields | 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. |
| `SHOPIFY_GET_METAFIELDS_COUNT` | Get shop metafields count | 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. |
| `SHOPIFY_GET_ORDER` | Get order | Retrieve a specific order using its unique identifier. Returns detailed order information including line items, customer data, addresses, financial status, fulfillment status, and more. |
| `SHOPIFY_GET_ORDER_FULFILLMENTS` | Retrieve order fulfillments | 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. |
| `SHOPIFY_GET_ORDER_LIST` | Get order list | Retrieves a list of orders from Shopify with optional filters and pagination. |
| `SHOPIFY_GET_ORDER_REFUND_BY_ID` | Get specific refund for order | 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 |
| `SHOPIFY_GET_ORDER_REFUNDS` | Get refunds for order | Retrieves a list of all refunds for a specific order. Use this action when you need to: - Review refund history and details for an order - Check refunded amounts, line items, and shipping costs - Verify payment transactions associated with refunds - Track order adjustments, duties, and additional fees refunded Key Features: - Returns all refunds with detailed line items, transactions, and adjustments - Supports field filtering to retrieve only specific data - Optional in_shop_currency parameter for currency conversion - Configurable result limit (1-250, default 50) Important Notes: - This endpoint implements pagination via Link headers (not page parameters) - As of API version 2024-10, refunded shipping costs are accessed via refund_shipping_lines - 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 |
| `SHOPIFY_GET_ORDER_RISK` | Get Order Risks | 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). |
| `SHOPIFY_GET_ORDERSBY_ID` | Get order by id | Retrieves a specific Shopify order by its unique ID, which must correspond to an existing order. |
| `SHOPIFY_GET_ORDERS_WITH_FILTERS` | Get orders with filters | Retrieves Shopify orders filtered by dates and other filters. Uses server-side filtering. Results are paginated; follow `page_info` cursors until exhausted to retrieve all matching orders — a single request returns at most `limit` orders (max 250) and omits the rest. |
| `SHOPIFY_GET_ORDER_TRANSACTIONS_COUNT` | Get order transactions count | 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. |
| `SHOPIFY_GET_PAGE_BY_ID` | Get page by ID | Retrieve a single Shopify page by its unique ID. Use when you need to fetch detailed information about a specific page. |
| `SHOPIFY_GET_POLICIES` | Get Policies | 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. |
| `SHOPIFY_GET_PRICE_RULE_BATCH_INFO` | Check Batch Listing Support for Price Rule | Checks if batch listing is supported for a price rule and provides guidance on alternatives. **IMPORTANT: Shopify's API does not provide an endpoint to list all batches for a price rule.** This action returns structured information explaining the limitation and suggesting alternatives. The available batch endpoints in Shopify's API are: - POST /price_rules/{price_rule_id}/batch.json - Creates a batch discount code creation job - GET /price_rules/{price_rule_id}/batch/{batch_id}.json - Retrieves a specific batch job by ID - GET /price_rules/{price_rule_id}/batch/{batch_id}/discount_codes.json - Lists discount codes created by a batch To retrieve batch details, you must know the batch_id (returned when creating a batch). Shopify only allows one active batch creation job per shop at a time. Use action SHOPIFY_GET_PRICE_RULES_PARAM_PRICE_RULE_ID_BATCH_PARAM_BATCH_ID if you have the batch_id. Reference: https://shopify.dev/docs/api/admin-rest/latest/resources/discountcode |
| `SHOPIFY_GET_PRICE_RULE_DISCOUNT_CODES` | Get Discount Codes for Price Rule | Retrieve a list of discount codes for a price rule. Use when you need to get all discount codes associated with a specific price rule. Note: As of version 2019-10, pagination is implemented via Link headers in the response. |
| `SHOPIFY_GET_PRODUCT` | Get product | Retrieves details for an existing Shopify product using its unique product ID. |
| `SHOPIFY_GET_PRODUCT_IMAGE` | Get product image | 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. |
| `SHOPIFY_GET_PRODUCT_IMAGES` | Get Product Images | Retrieves all images for a Shopify product, specified by its `product_id` which must correspond to an existing product. |
| `SHOPIFY_GET_PRODUCT_METAFIELD` | Get product metafield | Retrieves a specific metafield for a Shopify product using the product ID and metafield ID. |
| `SHOPIFY_GET_PRODUCT_METAFIELDS` | Get product metafields | 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. |
| `SHOPIFY_GET_PRODUCTS` | Get products | 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. |
| `SHOPIFY_GET_PRODUCTS_IN_COLLECTION` | Get products in collection | Retrieves products that belong to a specific Shopify collection. Returns detailed product information including variants, images, and options. Products are sorted according to the collection's configured sort order. Use this action when you need to: - List all products in a specific collection - Get product details for items within a collection - Display collection contents to users. For collection-product membership mappings without full product details, use SHOPIFY_GET_COLLECTS instead. |
| `SHOPIFY_GET_PRODUCTS_PAGINATED` | Get products (paginated) | 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`. |
| `SHOPIFY_GET_PRODUCT_VARIANT` | Receive a single product variant | 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. |
| `SHOPIFY_GET_RECURRING_APPLICATION_CHARGES` | Get recurring application charges | 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. |
| `SHOPIFY_GET_REDIRECT` | Retrieve a single redirect | 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. |
| `SHOPIFY_GET_REDIRECT_BY_ID` | Get redirect by ID | Retrieve a single redirect by its ID. Use when you need to get details about a specific URL redirect configuration in a Shopify store. |
| `SHOPIFY_GET_REDIRECTS` | Get redirects | Retrieve a list of URL redirects from a Shopify store. Use when you need to fetch URL redirect configurations, optionally filtered by path or target. Supports pagination via Link headers. |
| `SHOPIFY_GET_REDIRECTS_COUNT` | Get redirects count | 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. |
| `SHOPIFY_GET_REFUND` | Retrieve a specific refund | 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. |
| `SHOPIFY_GET_SCRIPTTAG` | Get Script Tag | Retrieves a single script tag by its ID. Use when you need to get details of a specific script tag configuration. |
| `SHOPIFY_GET_SEGMENTS_COUNT` | Get segments count | Query the number of segments for a shop. Use when you need to know how many customer segments exist. |
| `SHOPIFY_GET_SHIPPING_ZONES` | Get Shipping Zones | Retrieve all configured shipping zones with countries, provinces, tax rates, and shipping rates. Use when you need to view or analyze shipping configuration. |
| `SHOPIFY_GET_SHOP_BILLING_ADDRESS` | Get shop billing address | 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. |
| `SHOPIFY_GET_SHOP_DETAILS` | Get Shop Details | Retrieves comprehensive administrative information about the authenticated Shopify store. The returned `iana_timezone` field is critical for date-based filtering in other tools (e.g., `created_at_min`/`created_at_max` in order queries), since Shopify stores timestamps in UTC and boundary-day orders can be dropped or double-counted without timezone adjustment. Also useful as a first-step connection validity check; an empty or malformed shop object indicates an invalid connection. |
| `SHOPIFY_GET_SHOP_METAFIELD` | Retrieve metafield by ID | 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. |
| `SHOPIFY_GET_SMART_COLLECTION` | Retrieve a single smart collection | 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. |
| `SHOPIFY_GET_SMART_COLLECTION_BY_ID` | Get smart collection by ID | 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. |
| `SHOPIFY_GET_SMART_COLLECTIONS` | Get smart collections | 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. |
| `SHOPIFY_GET_SMART_COLLECTIONS_COUNT` | Get smart collections count | 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. |
| `SHOPIFY_GET_STOREFRONT_ACCESS_TOKENS` | Get storefront access tokens | 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. |
| `SHOPIFY_GET_TENDER_TRANSACTIONS` | Get tender transactions | Retrieve a list of tender transactions from Shopify. Tender transactions represent actual money movement between customers and the merchant (positive = payment to merchant, negative = refund from merchant). Use this action to: - Fetch payment transaction data for financial reconciliation - Track payment methods used (credit_card, cash, apple_pay, google_pay, etc.) - Filter transactions by date range or order - Monitor POS and online payment processing Note: This endpoint implements cursor-based pagination using links in the response header. Requires 'read_orders' scope. |
| `SHOPIFY_GET_THEME` | Retrieve a single theme | 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. |
| `SHOPIFY_GET_THEMES` | Get themes | Retrieves a list of themes from a Shopify store. Use when you need to access theme information including name, role, and metadata. |
| `SHOPIFY_GET_THEMES_PARAM_THEME_ID_ASSETS` | Get Theme Asset | 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. |
| `SHOPIFY_GET_TRANSACTION` | Retrieve a specific transaction | 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. |
| `SHOPIFY_GET_WEBHOOK` | Get Webhook | Retrieves a single webhook subscription by its ID. Use when you need to get details of a specific webhook configuration. |
| `SHOPIFY_GET_WEBHOOK_SUBSCRIPTIONS_COUNT` | Get webhook subscriptions count | 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. |
| `SHOPIFY_GRAPH_QL_QUERY` | Execute Shopify GraphQL query | 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. |
| `SHOPIFY_LIST_APPLICATION_CREDITS` | Retrieves all application credits | 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. |
| `SHOPIFY_LIST_ARTICLE_AUTHORS` | List article authors | 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. |
| `SHOPIFY_LIST_ARTICLE_TAGS` | List article tags | 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. |
| `SHOPIFY_LIST_AVAILABLE_LOCALES` | List available locales | 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. |
| `SHOPIFY_LIST_BLOG_ARTICLES` | Retrieve list of articles from blog | Retrieves a list of all articles from a blog. Use when you need to access articles from a specific blog, with optional filtering by author, dates, or publication status. Pagination is implemented via response header links as of version 2019-10. |
| `SHOPIFY_LIST_BLOGS` | Retrieve a list of all blogs | 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. |
| `SHOPIFY_LIST_BULK_OPERATIONS` | List bulk operations | 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. |
| `SHOPIFY_LIST_CHANNELS` | List channels | 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. |
| `SHOPIFY_LIST_CHECKOUT_PROFILES` | List checkout profiles | Query checkout profiles from Shopify. Use when you need to retrieve checkout profile configurations including branding settings and UI extensions. Supports pagination and filtering by publication status. |
| `SHOPIFY_LIST_COLLECTION_PRODUCTS` | Retrieve products in collection | Retrieve a list of products belonging to a collection. Use when you need to fetch products from a specific Shopify collection. Implements cursor-based pagination via Link headers (as of version 2019-10). |
| `SHOPIFY_LIST_COLLECTS` | Retrieve list of collects | Retrieve a list of collects (product-collection associations). Use when you need to find which products belong to which custom collections. |
| `SHOPIFY_LIST_COMMENTS` | Retrieve a list of comments | Retrieve a list of comments from Shopify. Use when you need to get comments with optional filtering by dates, status, or pagination. |
| `SHOPIFY_LIST_CURRENCIES` | Retrieves a list of currencies enabled on a shop | 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. |
| `SHOPIFY_LIST_CUSTOM_COLLECTIONS` | Retrieve custom collections | 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. |
| `SHOPIFY_LIST_CUSTOMER_ORDERS` | Get customer orders | Retrieves all orders for a specific customer from Shopify. Returns order details including line items, fulfillment status, payment information, shipping address, and more. Use this when you need to view a customer's order history or analyze their purchase patterns. Requires the customer's unique ID. |
| `SHOPIFY_LIST_CUSTOMERS` | Retrieves a list of customers | 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. |
| `SHOPIFY_LIST_DRAFT_ORDERS` | Retrieve list of draft orders | Retrieve a list of draft orders from Shopify. Use when you need to fetch draft orders with optional filtering by status, IDs, or update dates. Supports pagination via since_id and limit parameters. Note: As of version 2019-10, this endpoint implements pagination by using links provided in the response header. |
| `SHOPIFY_LIST_INVENTORY_LEVELS` | Retrieves a List of Inventory Levels | 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. |
| `SHOPIFY_LIST_LOCATIONS` | List locations | 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. |
| `SHOPIFY_LIST_MARKETING_EVENTS` | Retrieve all marketing events | Retrieves a paginated list of marketing events from a Shopify store. Marketing events represent marketing activities such as ads, posts, newsletters, retargeting campaigns, abandoned cart emails, loyalty programs, and affiliate campaigns. Returns up to 250 events per request (default 50). The endpoint uses cursor-based pagination via Link headers in the API response - check the 'Link' header for URLs to navigate to next/previous pages. The deprecated 'offset' parameter is not supported. Each event includes metadata like event type, marketing channel, UTM parameters, budget information, timestamps, and associated resources. Useful for tracking marketing campaign performance and attribution. |
| `SHOPIFY_LIST_ORDER` | List orders | 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. |
| `SHOPIFY_LIST_ORDER_REFUNDS` | Retrieve refunds for order | Retrieve a list of refunds for a Shopify order. Use when you need to check refund history for a specific order. |
| `SHOPIFY_LIST_ORDERS` | Retrieves a list of orders | 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. |
| `SHOPIFY_LIST_PAGES` | Retrieve list of pages | Retrieve a list of all pages from a Shopify store. Use when you need to fetch page content or metadata. As of version 2019-10, this endpoint implements pagination via response header links. |
| `SHOPIFY_LIST_PAYMENT_TERMS_TEMPLATES` | List Payment Terms Templates | 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. |
| `SHOPIFY_LIST_PRODUCT_IMAGES` | Receive A List Of All Product Images | Retrieve all images for a Shopify product. Use when you need to get the complete list of images associated with a specific product. |
| `SHOPIFY_LIST_PRODUCT_VARIANTS` | Get product variants | Retrieve all variants for a specified product. Use when you need to list product variants with optional filtering by fields or pagination. Note: As of API version 2019-10, pagination is implemented via Link headers in the response. |
| `SHOPIFY_LIST_RESOURCE_FEEDBACKS` | Get resource feedback | 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. |
| `SHOPIFY_LIST_SCRIPT_TAGS` | Retrieve all script tags | Retrieves a list of all script tags. Use when you need to fetch all script tags or filter by URL, date range, or other criteria. Supports pagination via response headers (link-based pagination as of API version 2019-10). |
| `SHOPIFY_LIST_THEME_ASSETS` | List Theme Assets | 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. |
| `SHOPIFY_LIST_TRANSACTIONS` | Retrieve order transactions | 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. |
| `SHOPIFY_MARK_COMMENT_AS_NOT_SPAM` | Mark Comment as Not Spam | 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). |
| `SHOPIFY_MARK_COMMENT_AS_SPAM` | Mark Comment as Spam | 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. |
| `SHOPIFY_MODIFY_AN_EXISTING_PRODUCT_VARIANT` | Modify an existing product variant | Update an existing product variant in Shopify. Use when you need to modify variant properties like price, SKU, weight, or inventory settings. |
| `SHOPIFY_MODIFY_EXISTING_WEBHOOK` | Modify existing webhook | Modify an existing webhook subscription's address or other properties. Use when you need to update webhook delivery URIs, data formats, or field filters. Note: the webhook topic cannot be changed after creation. |
| `SHOPIFY_MOVE_FULFILLMENT_ORDER` | Move Fulfillment Order to New Location | 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. |
| `SHOPIFY_PIN_METAFIELD_DEFINITION` | Pin metafield definition | 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. |
| `SHOPIFY_QUERY_APP_BY_KEY` | Query app by API key | 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. |
| `SHOPIFY_QUERY_BUSINESS_ENTITIES` | Query business entities | 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. |
| `SHOPIFY_QUERY_BUSINESS_ENTITY` | Query business entity | 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. |
| `SHOPIFY_QUERY_CATALOGS` | Query catalogs | 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. |
| `SHOPIFY_QUERY_CHANNEL` | Query channel by ID | 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. |
| `SHOPIFY_QUERY_CONSENT_POLICY_REGIONS` | Query consent policy regions | 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. |
| `SHOPIFY_QUERY_CURRENT_APP_INSTALLATION` | Query current app installation | 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. |
| `SHOPIFY_QUERY_CURRENT_BULK_OPERATION` | Query current Shopify bulk operation | Query the current Shopify bulk operation status. Use when you need to check if a bulk operation is running or to retrieve the status and results of the most recent bulk query or mutation operation. |
| `SHOPIFY_QUERY_CUSTOMER_ACCOUNT_PAGES` | Query customer account pages | Queries customer account pages from Shopify using the GraphQL Admin API. Use when you need to retrieve customizable pages for customer accounts. |
| `SHOPIFY_QUERY_DELETION_EVENTS` | Query deletion events | Query deletion events from Shopify. Use when you need to retrieve records of deleted resources such as products or collections. Deletion events are the only trace of a resource after it has been permanently removed. |
| `SHOPIFY_QUERY_DISPUTES` | Query disputes | 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. |
| `SHOPIFY_QUERY_DOMAIN` | Query domain | 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. |
| `SHOPIFY_QUERY_EVENTS` | Query events | 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. |
| `SHOPIFY_QUERY_EVENTS_COUNT` | Query events count | 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. |
| `SHOPIFY_QUERY_JOB` | Query job | 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. |
| `SHOPIFY_QUERY_METAFIELD_DEFINITION` | Query metafield definition by ID | 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. |
| `SHOPIFY_QUERY_METAFIELD_DEFINITIONS` | Query metafield definitions | 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. |
| `SHOPIFY_QUERY_METAFIELD_DEFINITION_TYPES` | Query metafield definition types | 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. |
| `SHOPIFY_QUERY_NODE` | Query node by ID | 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. |
| `SHOPIFY_QUERY_NODES` | Query nodes by IDs | 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. |
| `SHOPIFY_QUERY_ONLINE_STORE` | Query online store | Query online store settings from Shopify using the GraphQL Admin API. Returns configuration information including password protection status. Use this to check if the online store is password protected or to retrieve other store-level settings. |
| `SHOPIFY_QUERY_PRODUCT_DUPLICATE_JOB` | Query product duplicate job | 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. |
| `SHOPIFY_QUERY_PUBLIC_API_VERSIONS` | Query public API versions | 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. |
| `SHOPIFY_QUERY_PUBLICATION` | Query publication by ID | Query a single publication by ID using Shopify's GraphQL Admin API. Use when you need to retrieve detailed information about a specific publication including its name, auto-publish settings, future publishing support, and associated catalog. |
| `SHOPIFY_QUERY_SERVER_PIXEL` | Query server pixel configuration | Query the server pixel configuration in Shopify. Use when you need to retrieve the current server pixel settings including its ID, status, and webhook endpoint address. |
| `SHOPIFY_QUERY_SHOP` | Query Shop (GraphQL) | Retrieve shop information using the Shopify GraphQL Admin API. Use when you need shop-level configuration such as name, email, domain, currency settings, enabled features, and policies. |
| `SHOPIFY_QUERY_SHOP_BILLING_PREFERENCES` | Query shop billing preferences | 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. |
| `SHOPIFY_QUERY_SHOPIFY_FUNCTIONS` | Query Shopify Functions | 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. |
| `SHOPIFY_QUERY_SHOP_PAY_PAYMENT_REQUEST_RECEIPTS` | Query Shop Pay payment request receipts | 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. |
| `SHOPIFY_QUERY_STANDARD_METAFIELD_DEFINITION_TEMPLATES` | Query standard metafield templates | 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. |
| `SHOPIFY_QUERY_TAXONOMY` | Query taxonomy | 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. |
| `SHOPIFY_QUERY_WEBHOOK_SUBSCRIPTION` | Query webhook subscription by ID | 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. |
| `SHOPIFY_QUERY_WEBHOOK_SUBSCRIPTIONS` | Query webhook subscriptions | Query webhook subscriptions from Shopify using the GraphQL Admin API. Returns a paginated list of webhook subscriptions with their topics, endpoints (HTTP or PubSub), and formats. Use this to view all configured webhook subscriptions for your Shopify store. |
| `SHOPIFY_RECEIVE_A_COUNT_OF_ALL_PRODUCT_IMAGES` | Get product images count | 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. |
| `SHOPIFY_RECEIVE_A_SINGLE_FULFILLMENT` | Receive a single fulfillment | 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. |
| `SHOPIFY_RECEIVE_A_SINGLE_WEBHOOK` | Receive a single webhook | Retrieves detailed information about a specific webhook subscription by its ID. Use this tool when you need to: - View configuration details of an existing webhook (address, topic, format) - Check webhook metadata (API version, metafield namespaces, creation/update timestamps) - Verify a webhook exists before performing operations on it - Inspect which fields are being sent in webhook payloads Returns complete webhook subscription details including delivery destination, event topic, data format (JSON/XML), and any field or metafield filtering configurations. |
| `SHOPIFY_RELEASE_FULFILLMENT_HOLD` | Release fulfillment hold | 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. |
| `SHOPIFY_RELEASE_FULFILLMENT_ORDER_HOLD` | Release fulfillment order hold | Release all fulfillment holds on a fulfillment order. Use when you need to resume fulfillment work after holds have been resolved. |
| `SHOPIFY_REOPEN_CLOSED_ORDER` | Reopen a closed order | Reopens a previously closed Shopify order. Use when an order needs to be modified after being closed. |
| `SHOPIFY_RESTORE_COMMENT` | Restore Comment | 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. |
| `SHOPIFY_RETRIEVE_A_SPECIFIC_METAFIELD` | Retrieve a specific metafield | Retrieve a metafield by specifying the ID. Use when you need to fetch a specific metafield from any Shopify resource (products, customers, orders, etc.). |
| `SHOPIFY_RETRIEVE_LIST_METAFIELDS_RESOURCE_S_ENDPOINT` | Get resource metafields | Retrieve metafields attached to any Shopify resource by using the resource's endpoint. Use when you need to fetch metafields for a specific resource instance (products, customers, orders, collections, etc.). |
| `SHOPIFY_RETRIEVES_A_LIST_OF_ALL_ARTICLE_TAGS` | Retrieves a list of all article tags | 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. |
| `SHOPIFY_RETRIEVES_A_LIST_OF_PRICE_RULES` | Get Price Rules List | Retrieve a list of price rules from a Shopify store. Use when you need to view all discount pricing rules with optional filtering by date ranges and usage. Note: As of version 2019-10, pagination is implemented via Link headers in the response. |
| `SHOPIFY_RETRIEVES_A_LIST_OF_PRODUCTS` | Retrieve a list of products | 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. |
| `SHOPIFY_RETRIEVES_A_LIST_OF_WEBHOOKS` | Retrieves a list of webhooks | Retrieve a list of webhook subscriptions for a Shopify shop. Use when you need to view all configured webhook subscriptions or filter webhooks by specific criteria such as topic, address, or creation date. |
| `SHOPIFY_RETRIEVES_AN_ORDER_COUNT` | Retrieves an order count | 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.). |
| `SHOPIFY_RETRIEVES_A_SINGLE_LOCATION_BY_ITS_ID` | Retrieve a single location by its ID | 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. |
| `SHOPIFY_RETRIEVES_A_SINGLE_PRICE_RULE` | Retrieve Single Price Rule | 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. |
| `SHOPIFY_RETRIEVES_A_SINGLE_PRODUCT` | Retrieve a single product | 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. |
| `SHOPIFY_RETRIEVES_LIST_ALL_ARTICLE_TAGS_SPECIFIC_BLOG` | List article tags from blog | 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. |
| `SHOPIFY_RETRIEVES_LIST_DISCOUNT_CODES_DISCOUNT_CODE` | Retrieve Discount Codes for Batch Job | 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. |
| `SHOPIFY_RETRIEVES_LIST_STOREFRONT_ACCESS_TOKENS_THAT_HAVE` | Retrieve storefront access tokens | 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. |
| `SHOPIFY_RETRIEVE_SPECIFIC_FULFILLMENT_ORDER` | Retrieve specific fulfillment order | 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. |
| `SHOPIFY_RETRIEVES_THE_SHOP_S_CONFIGURATION` | Retrieve Shop Configuration | 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. |
| `SHOPIFY_REVOKE_APP_ACCESS_SCOPES` | Revoke app access scopes | 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. |
| `SHOPIFY_RUN_BULK_MUTATION_OPERATION` | Run bulk mutation operation | 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). |
| `SHOPIFY_RUN_BULK_OPERATION_QUERY` | Run Shopify bulk operation query | 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. |
| `SHOPIFY_SEARCHES_FOR_GIFT_CARDS` | Search Gift Cards | Search for gift cards that match a supplied query. Use when searching for gift cards by various indexed fields including created_at, updated_at, disabled_at, balance, initial_value, amount_spent, email, and last_characters. Supports cursor-based pagination via Link headers. |
| `SHOPIFY_SEND_CUSTOMER_ACCOUNT_INVITE` | Send Account Invite to Customer | 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. |
| `SHOPIFY_SEND_CUSTOMER_INVITE` | Send Customer Account Invite | Sends an account invitation email to a customer, allowing them to create or activate their Shopify account. The invitation includes a link for the customer to set up their account credentials. This action is useful when you want customers to have direct access to their order history and account details. You can customize the invitation with a personalized message and subject line, or use the store's default invitation template. Note: Requires the 'write_customers' scope. The customer must not already have an active account to receive an invitation. |
| `SHOPIFY_SEND_INVOICE` | Send an invoice | 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. |
| `SHOPIFY_SET_DEFAULT_CUSTOMER_ADDRESS` | Set Default Customer Address | 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. |
| `SHOPIFY_SET_FULFILLMENT_ORDERS_DEADLINE` | Set Fulfillment Orders Deadline | Set the latest fulfillment deadline for multiple fulfillment orders. Use when you need to update deadline for one or more fulfillment orders. |
| `SHOPIFY_SET_INVENTORY_LEVEL` | Set inventory level | 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. |
| `SHOPIFY_SET_METAFIELDS` | Set metafields | 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. |
| `SHOPIFY_TRIGGER_SHOPIFY_FLOW` | Trigger Shopify Flow | 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. |
| `SHOPIFY_UPDATE_APP_SUBSCRIPTION_LINE_ITEM` | Update app subscription line item capped amount | 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. |
| `SHOPIFY_UPDATE_ARTICLE` | Update Article | Update an existing article in a Shopify blog. Use when you need to modify article properties such as title, content, tags, or publication status. |
| `SHOPIFY_UPDATE_BLOG` | Modify an existing blog | 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. |
| `SHOPIFY_UPDATE_COMMENT` | Update Comment | 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. |
| `SHOPIFY_UPDATE_CUSTOM_COLLECTION` | Update custom collection | 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. |
| `SHOPIFY_UPDATE_CUSTOMER` | Update Customer | 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. |
| `SHOPIFY_UPDATE_CUSTOMER_ADDRESS` | Update Customer Address | 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 |
| `SHOPIFY_UPDATE_CUSTOMERS_PARAM_CUSTOMER_ID_ADDRESSES_SET` | Bulk delete customer addresses | 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. |
| `SHOPIFY_UPDATE_DRAFT_ORDER` | Modify an existing draft order | 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. |
| `SHOPIFY_UPDATE_FULFILLMENT_TRACKING` | Update Fulfillment Tracking | 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. |
| `SHOPIFY_UPDATE_GIFT_CARD` | Update an Existing Gift Card | 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. |
| `SHOPIFY_UPDATE_INVENTORY_ITEM` | Update inventory item | 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. |
| `SHOPIFY_UPDATE_MARKETING_EVENT` | Update Marketing Event | Updates an existing marketing event in Shopify. UPDATABLE FIELDS: remote_id, budget, currency, budget_type, started_at, ended_at, scheduled_to_end_at. READ-ONLY FIELDS (cannot be changed after creation): event_type, marketing_channel, referring_domain, utm_campaign, utm_source, utm_medium, description, manage_url, preview_url, paid. This action validates and rejects requests that attempt to update read-only fields to prevent confusion. |
| `SHOPIFY_UPDATE_METAFIELD` | Update blog metafield | Update an existing metafield for a blog. Use when you need to modify metafield properties like value, type, or description for a blog resource. |
| `SHOPIFY_UPDATE_METAFIELD_BY_ID` | Update metafield by ID | Update an existing Shopify metafield by its ID. Use when you need to modify metafield properties like value, type, or description. |
| `SHOPIFY_UPDATE_METAFIELD_DEFINITION` | Update metafield definition | 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. |
| `SHOPIFY_UPDATE_METAFIELD_GENERIC` | Update a metafield | Update an existing metafield for any Shopify resource type. Use when you need to modify metafield properties like value, type, or description for products, customers, orders, collections, or other resources. |
| `SHOPIFY_UPDATE_METAFIELD_RESOURCE` | Update a metafield | 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. |
| `SHOPIFY_UPDATE_ORDER` | Update Order | Updates the phone number for an existing Shopify order, identified by its ID; pass `phone=None` to remove the current phone number. |
| `SHOPIFY_UPDATE_PAGE` | Update Page | 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. |
| `SHOPIFY_UPDATE_PRICE_RULE` | Update Price Rule | Update an existing price rule (discount) in Shopify. Use when you need to modify price rule properties like title, value, dates, or prerequisites. Only fields provided in the request will be updated; omitted fields remain unchanged. |
| `SHOPIFY_UPDATE_PRODUCT_IMAGE` | Update Product Image | Modify an existing product image. Use when you need to update image properties such as position, alt text, or variant associations. |
| `SHOPIFY_UPDATE_PRODUCT_METAFIELD` | Update product metafield | Updates an existing metafield for a specific Shopify product. |
| `SHOPIFY_UPDATE_PUB_SUB_WEBHOOK_SUBSCRIPTION` | Update Pub/Sub webhook subscription | 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. |
| `SHOPIFY_UPDATE_REDIRECT` | Update redirect | 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. |
| `SHOPIFY_UPDATE_REDIRECT_ALT` | Update redirect | Update an existing Shopify redirect. Use when you need to modify the path or target of a redirect. |
| `SHOPIFY_UPDATES_AN_EXISTING_DISCOUNT_CODE` | Updates An Existing Discount Code | 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. |
| `SHOPIFY_UPDATES_A_PRODUCT` | Update a product | Updates a product and its variants and images. Use when modifying existing product details, pricing, variants, images, or SEO information. |
| `SHOPIFY_UPDATE_SCRIPT_TAG` | Update Script Tag | Modify an existing script tag in Shopify. Use when you need to update script properties like the source URL, display scope, or caching behavior. |
| `SHOPIFY_UPDATE_SHOP_METAFIELD` | Update a metafield | Update an existing shop-level metafield's value and type. Use when you need to modify metafield data attached to the shop itself (not product, customer, or other resource metafields). |
| `SHOPIFY_UPDATE_SMART_COLLECTION` | Update Smart Collection | Update an existing smart collection. Use when you need to modify a smart collection's properties, rules, or settings. |
| `SHOPIFY_UPDATE_SMART_COLLECTION_ALT` | Update smart collection | Update an existing smart collection. Use when you need to modify smart collection properties like title, rules, or settings. |
| `SHOPIFY_UPDATE_SMART_COLLECTION_ORDER` | Update smart collection product order | Updates the display order of products in a smart collection with manual sorting enabled. Use this action to customize the sequence products appear in a collection. This only works when the collection's sort_order field is set to 'manual'. If the collection uses automatic sorting (e.g., 'best-selling', 'price-asc'), this operation will have no effect. Requirements: - Collection must have sort_order='manual' - Product IDs must belong to products already in the collection - Requires 'write_products' scope Returns an empty response on success (HTTP 200 indicates successful reordering). |
| `SHOPIFY_UPDATE_THEME` | Modify existing theme | 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. |
| `SHOPIFY_UPDATE_WEBHOOK_SUBSCRIPTION` | Update webhook subscription | Update a webhook subscription's configuration in Shopify. Use when you need to modify the endpoint URL, event filters, included fields, or metafield namespaces without recreating the subscription. You can switch between endpoint types (HTTP, Pub/Sub, EventBridge) by providing a different URI format in callback_url. Updates apply atomically without interrupting webhook delivery. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Shopify MCP server connects Claude Cowork to your Shopify account through Composio. Once connected, Cowork can use the available Shopify tools and triggers to complete tasks on your behalf.

## Complete Code

None listed.

## How to build Shopify MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/shopify/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/shopify/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/shopify/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/shopify/framework/claude-code)
- [Codex](https://composio.dev/toolkits/shopify/framework/codex)
- [Cursor](https://composio.dev/toolkits/shopify/framework/cursor)
- [VS Code](https://composio.dev/toolkits/shopify/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/shopify/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/shopify/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/shopify/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/shopify/framework/cli)
- [Google ADK](https://composio.dev/toolkits/shopify/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/shopify/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/shopify/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/shopify/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/shopify/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/shopify/framework/crew-ai)

## Related Toolkits

- [Addresszen](https://composio.dev/toolkits/addresszen) - Addresszen is a real-time address autocomplete and verification service. It helps capture accurate, deliverable addresses with instant suggestions and validation.
- [Asin data api](https://composio.dev/toolkits/asin_data_api) - Asin data api gives you detailed, real-time product data from Amazon, including price, rank, and reviews. Perfect for e-commerce pros and data-driven marketers who need instant marketplace insights.
- [Baselinker](https://composio.dev/toolkits/baselinker) - BaseLinker is an all-in-one e-commerce management platform connecting stores, marketplaces, carriers, and more. It streamlines order processing, inventory control, and automates your sales operations.
- [Bestbuy](https://composio.dev/toolkits/bestbuy) - Best Buy is a leading retailer offering APIs for product, store, and recommendation data. Instantly access up-to-date retail insights for smarter shopping and decision-making.
- [Btcpay server](https://composio.dev/toolkits/btcpay_server) - BTCPay Server is a free, open-source, self-hosted Bitcoin payment processor. It lets merchants accept Bitcoin payments directly, cutting out middlemen and boosting privacy.
- [Cdr platform](https://composio.dev/toolkits/cdr_platform) - Cdr platform is an API for purchasing carbon dioxide removal services. It enables businesses to offset emissions by accessing verified carbon removal projects.
- [Cloudcart](https://composio.dev/toolkits/cloudcart) - CloudCart is an e-commerce platform for building and managing online stores. It helps businesses streamline product listings, orders, and customer engagement.
- [Countdown api](https://composio.dev/toolkits/countdown_api) - Countdown API gives you real-time, structured eBay product data, reviews, and seller feedback. Perfect for powering price monitoring, product research, or marketplace analytics workflows.
- [Dpd2](https://composio.dev/toolkits/dpd2) - Dpd2 is a robust email management platform for handling, sorting, and automating email workflows. Streamline your communications and boost productivity with advanced sorting, labeling, and response tools.
- [Finerworks](https://composio.dev/toolkits/finerworks) - FinerWorks is an online platform for fine art and photo printing services. Artists and photographers use it to order custom prints and manage print inventory efficiently.
- [Fingertip](https://composio.dev/toolkits/fingertip) - Fingertip is a business management platform for selling, booking, and customer engagement—all from a single link. It helps businesses streamline operations and connect with customers across social channels.
- [Fraudlabs pro](https://composio.dev/toolkits/fraudlabs_pro) - FraudLabs Pro is an online payment fraud detection service for e-commerce and merchants. It helps minimize chargebacks and revenue loss by detecting and preventing fraudulent transactions.
- [Gift up](https://composio.dev/toolkits/gift_up) - Gift Up! is a digital platform for selling, managing, and redeeming gift cards online. It streamlines promotions and gift card transactions for businesses and their customers.
- [Goody](https://composio.dev/toolkits/goody) - Goody is a gifting platform that lets users send gifts and physical products without handling logistics. It streamlines gifting by managing delivery, fulfillment, and recipient experience.
- [Gumroad](https://composio.dev/toolkits/gumroad) - Gumroad is a platform for selling digital products, physical goods, and memberships with a simple checkout and marketing tools. It streamlines creator payouts and helps you grow your audience effortlessly.
- [Instacart](https://composio.dev/toolkits/instacart) - Instacart is an online grocery delivery and pickup service platform. It lets you discover local retailers and create shoppable lists and recipes with ease.
- [Junglescout](https://composio.dev/toolkits/junglescout) - Junglescout is an Amazon product research and analytics platform for sellers. It delivers sales estimates, competitive insights, and optimization tools to boost your Amazon business.
- [Ko fi](https://composio.dev/toolkits/ko_fi) - Ko-fi is a platform that lets creators receive donations, memberships, and sales from fans. It helps creators monetize their work and grow their audience with minimal friction.
- [Lemon squeezy](https://composio.dev/toolkits/lemon_squeezy) - Lemon Squeezy is a payments and subscription platform built for software companies. It makes managing payments, taxes, and customer subscriptions effortless.
- [Loyverse](https://composio.dev/toolkits/loyverse) - Loyverse is a point-of-sale (POS) platform for small businesses, offering tools for sales, inventory, and customer loyalty. It helps streamline retail operations and boost customer engagement.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Shopify MCP?

With a standalone Shopify MCP server, the agents and LLMs can only access a fixed set of Shopify tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Shopify and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Claude Cowork?

Yes, you can. Claude Cowork fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Shopify tools.

### Can I manage the permissions and scopes for Shopify while using Tool Router?

Yes, absolutely. You can configure which Shopify scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Shopify data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
