Overview
Add Shopify to any ModuleX agent or workflow. E-commerce platform integration for managing products, orders, customers, collections, blogs, pages, metafields, metaobjects, fulfillments, and inventory via the Shopify Admin GraphQL API ({shop_id}.myshopify.com/admin/api/2025-01/graphql.json).
Authentication
Shopify OAuth Access Token
Authenticate using a Shopify OAuth access token and shop ID. Shopify uses shop-specific OAuth URLs which require custom auth handling.Required Credentials
| Field | Description | Required | Format |
|---|---|---|---|
| Shop ID | Your Shopify store subdomain (e.g. ‘my-store’ from my-store.myshopify.com) | Yes | my-store |
| Access Token | Shopify Admin API access token (from a custom app or OAuth flow) | Yes | shpat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
Available Actions
add_product_to_custom_collection — Add one or more products to a custom collection
add_product_to_custom_collection — Add one or more products to a custom collection
add_tags — Add tags to a Shopify resource (Product, Customer, Order, DraftOrder, or Article)
add_tags — Add tags to a Shopify resource (Product, Customer, Order, DraftOrder, or Article)
create_article — Create a new blog article
create_article — Create a new blog article
Parameters
Response
create_blog — Create a new blog
create_blog — Create a new blog
create_custom_collection — Create a new custom collection
create_custom_collection — Create a new custom collection
Parameters
Response
create_metafield — Create a metafield definition belonging to a resource
create_metafield — Create a metafield definition belonging to a resource
Parameters
false)Response
create_metaobject — Create a metaobject
create_metaobject — Create a metaobject
create_page — Create a new page
create_page — Create a new page
create_product — Create a new product
create_product — Create a new product
Parameters
Response
create_product_variant — Create a new product variant
create_product_variant — Create a new product variant
Parameters
Response
create_smart_collection — Create a smart collection with automated rules
create_smart_collection — Create a smart collection with automated rules
Parameters
false)Response
delete_article — Delete an existing blog article
delete_article — Delete an existing blog article
delete_blog — Delete an existing blog
delete_blog — Delete an existing blog
delete_metafield — Delete a metafield belonging to a resource
delete_metafield — Delete a metafield belonging to a resource
delete_page — Delete an existing page
delete_page — Delete an existing page
get_articles — Retrieve a list of articles from a blog
get_articles — Retrieve a list of articles from a blog
get_assigned_fulfillment_orders — Retrieve fulfillment orders assigned to a merchant location
get_assigned_fulfillment_orders — Retrieve fulfillment orders assigned to a merchant location
get_customer — Retrieve a single customer by ID
get_customer — Retrieve a single customer by ID
get_customers — Retrieve a list of customers
get_customers — Retrieve a list of customers
Parameters
100)Response
get_draft_order — Retrieve a single draft order by ID
get_draft_order — Retrieve a single draft order by ID
get_draft_orders — Retrieve a list of draft orders
get_draft_orders — Retrieve a list of draft orders
get_fulfillment — Retrieve a fulfillment by ID including tracking info and status
get_fulfillment — Retrieve a fulfillment by ID including tracking info and status
get_fulfillment_order — Retrieve a single fulfillment order by ID
get_fulfillment_order — Retrieve a single fulfillment order by ID
get_fulfillment_orders — Retrieve a list of fulfillment orders
get_fulfillment_orders — Retrieve a list of fulfillment orders
get_metafields — Retrieve metafields belonging to a resource
get_metafields — Retrieve metafields belonging to a resource
Parameters
Response
get_metaobjects — Retrieve a list of metaobjects by type
get_metaobjects — Retrieve a list of metaobjects by type
get_pages — Retrieve a list of all pages
get_pages — Retrieve a list of all pages
search_custom_collection_by_name — Search for a custom collection by name or title
search_custom_collection_by_name — Search for a custom collection by name or title
Parameters
false)100)Response
search_orders — Search for orders
search_orders — Search for orders
Parameters
Response
search_product_variant — Search for a product variant by ID or title, optionally creating if not found
search_product_variant — Search for a product variant by ID or title, optionally creating if not found
Parameters
false)Response
search_products — Search for products
search_products — Search for products
Parameters
false)100)Response
update_article — Update a blog article
update_article — Update a blog article
Parameters
Response
update_inventory_level — Set the inventory level for an inventory item at a location
update_inventory_level — Set the inventory level for an inventory item at a location
Parameters
Response
update_metafield — Update a metafield belonging to a resource
update_metafield — Update a metafield belonging to a resource
update_metaobject — Update a metaobject
update_metaobject — Update a metaobject
update_order — Update an existing order
update_order — Update an existing order
Parameters
Response
update_page — Update an existing page
update_page — Update an existing page
update_product — Update an existing product
update_product — Update an existing product
Parameters
Response
update_product_variant — Update an existing product variant
update_product_variant — Update an existing product variant
Parameters
Response
Limits & Quotas
- Standard Shopify API rate limit: 50 points per second for the GraphQL Admin API (each query/mutation costs 1+ points depending on complexity).
- Throttling: Shopify returns
THROTTLEDerrors in the GraphQL response extensions when the limit is exceeded. Retry after a short delay. - Pagination: List actions are capped at 250 items per request via the GraphQL
firstargument. For larger datasets, implement cursor-based pagination. - Error model: GraphQL
userErrorsarrays are returned inline assuccess=False+errorwith the first error message. HTTP-level errors (network, auth) are caught and returned assuccess=False+error.