Shopify Block
Manage products and orders in Shopify
List and create products, and list and retrieve orders from your Shopify store through the Shopify Admin API. Authenticate with an Admin API access token and your store domain. Reach for this block whenever a workflow needs to read your product catalog, place or inspect orders, or push new listings into Shopify without leaving the Zelaxy canvas.
Overview
| Property | Value |
|---|---|
| Type | shopify |
| Category | tools |
| Color | #95BF47 |
When to Use
- Fetch a paginated list of products to feed downstream enrichment or reporting blocks.
- Create new products programmatically from data generated by an AI or upstream workflow step.
- Pull a filtered list of orders (e.g. only
openorders) to trigger fulfillment workflows. - Retrieve a single order by ID for status checks, customer service lookups, or notification flows.
- Combine with a Router or Condition block to branch on order status values returned from Shopify.
- Automate product catalog synchronisation between Shopify and another data source.
Configuration
Operation
Selects which Shopify Admin API action the block performs. This dropdown is always visible and determines which additional fields appear.
| Label | ID |
|---|---|
| List products | shopify_list_products |
| Create product | shopify_create_product |
| List orders | shopify_list_orders |
| Get order | shopify_get_order |
Title (shown when Operation = Create product)
- Sub-block id:
title - Type: short-input
- Placeholder:
My Product - The product title sent to the Shopify
POST /products.jsonendpoint. Required by the Create product operation.
Description (HTML) (shown when Operation = Create product)
- Sub-block id:
body_html - Type: long-input
- Placeholder:
<p>Product description</p> - HTML body for the product description. Optional for the Create product operation.
Order ID (shown when Operation = Get order)
- Sub-block id:
orderId - Type: short-input
- Placeholder:
450789469 - The numeric Shopify order ID to fetch. Required by the Get order operation.
Status (shown when Operation = List orders)
- Sub-block id:
status - Type: short-input
- Placeholder:
any - Filters orders by status. Accepted values:
open,closed,cancelled,any. Defaults toanywhen omitted.
Limit (shown when Operation = List products or List orders)
- Sub-block id:
limit - Type: short-input
- Placeholder:
50 - Maximum number of records to return. Shopify allows up to 250 per request; defaults to 50.
Store Domain (always visible, required)
- Sub-block id:
storeDomain - Type: short-input
- Placeholder:
mystore.myshopify.com - Your Shopify store domain, e.g.
mystore.myshopify.com. Used to build the API base URL for every request.
Admin API Access Token (always visible, required)
- Sub-block id:
apiKey - Type: short-input (password)
- Placeholder:
shpat_... - A Shopify Admin API access token (
shpat_...). Store this value as a secret and reference it with{{SHOPIFY_API_KEY}}rather than entering the raw token in the canvas.
Inputs & Outputs
Inputs
| Input | Type | Description |
|---|---|---|
operation | string | Operation to perform — one of the four tool IDs (shopify_list_products, shopify_create_product, shopify_list_orders, shopify_get_order) |
apiKey | string | Shopify Admin API access token |
storeDomain | string | Shopify store domain (e.g. mystore.myshopify.com) |
title | string | Product title (Create product only) |
body_html | string | Product description in HTML (Create product only, optional) |
orderId | string | Order ID to fetch (Get order only) |
status | string | Order status filter (List orders only, optional) |
limit | number | Maximum records to return (List products and List orders, optional) |
Outputs
| Output | Type | Description |
|---|---|---|
data | json | Result object or array from Shopify. For list operations this is an array of product or order objects; for single-record operations it is the product or order object. |
metadata | json | Response metadata. For list operations: { count: number }. For single-record operations: { id: string }. |
Tools
Shopify List Products (shopify_list_products) — Sends a GET request to /admin/api/2024-01/products.json and returns up to limit product objects from the store. Requires apiKey and storeDomain; limit is optional (default 50, max 250).
Shopify Create Product (shopify_create_product) — Sends a POST request to /admin/api/2024-01/products.json to create a new product. Requires apiKey, storeDomain, and title; body_html is optional. Returns the created product object and its id in metadata.
Shopify List Orders (shopify_list_orders) — Sends a GET request to /admin/api/2024-01/orders.json filtered by status (defaults to any) and returns up to limit order objects. Requires apiKey and storeDomain; status and limit are optional.
Shopify Get Order (shopify_get_order) — Sends a GET request to /admin/api/2024-01/orders/{orderId}.json and returns a single order object. Requires apiKey, storeDomain, and orderId.
YAML Example
shopify_1:
type: shopify
name: "List Open Orders"
inputs:
operation: "shopify_list_orders"
storeDomain: "{{SHOPIFY_STORE_DOMAIN}}"
apiKey: "{{SHOPIFY_API_KEY}}"
status: "open"
limit: 100
connections:
outgoing:
- target: process_orders_block