Reference · Tools
Shopify
Manage orders and products via the Shopify Admin REST API
The Shopify node manages orders and products through the Admin REST API, covering create, read, update and list with filters. A typical build is syncing new orders into a fulfilment system and writing product updates back when stock changes.
- Node type
- Action
- Parameters
- 24
- Outputs
- Output, Error
- Credentials
- Shopify API
Shopify
Manage Shopify orders and products
Overview
Shopify is an e-commerce platform that enables businesses to create online stores. This tool connects to the Shopify Admin REST API to manage orders (create, read, update, delete) and products (create, read, update, delete). It supports filtering, pagination, and all standard CRUD operations for both resources.
Category: Sales
Tool Name: shopify
Version: 1
Appearance: Icon: si-shopify | Color: #96bf48
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Shopify API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Order | order |
| Product | product |
Operations
Which operations are available depends on the selected resource — see the parameter subsections below.
| Operation | Value | Description |
|---|---|---|
| Create | create | Create an order or a product |
| Delete | delete | Delete an order or a product |
| Get | get | Get a single order or product |
| Get Many | getAll | Get many orders or products |
| Update | update | Update an order or a product |
Parameters
Order: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Line Items (limeItemsUi) | fixedCollection | No | {} | Line items for the order. At least one is required. |
— Product ID (productId) | string | No | — | The ID of the product. Find in Shopify Admin: Products > click product > ID is in the URL. |
| — Variant ID | string | No | — | The ID of the product variant. |
| — Title | string | No | — | The title of the product. |
| — Grams | string | No | — | The weight of the item in grams. |
| — Quantity | number | No | 1 | The number of items that were purchased. |
| — Price | string | No | — | The price of the line item. |
| Additional Fields | collection | No | {} | — |
| — Billing Address | fixedCollection | No | {} | — |
| — — First Name | string | No | — | — |
| — — Last Name | string | No | — | — |
| — — Company | string | No | — | — |
| — — Country | string | No | — | — |
| — — Address Line 1 | string | No | — | — |
| — — Address Line 2 | string | No | — | — |
| — — City | string | No | — | — |
| — — Province | string | No | — | — |
| — — Zip Code | string | No | — | — |
| — — Phone | string | No | — | — |
| — Discount Codes | fixedCollection | No | {} | — |
| — — Amount | string | No | — | The amount that’s deducted from the order total. |
| — — Code | string | No | — | The discount code. |
| — — Type | options | No | fixedAmount | The type of discount. |
Options: fixedAmount (applies amount as a unit of the store’s currency), percentage (applies a discount of amount as a percentage of the order total), shipping (applies a free shipping discount on orders that have a shipping rate less than or equal to amount) | ||||
string | No | — | The customer’s email address. | |
| — Fulfillment Status | options | No | — | The order’s status in terms of fulfilled line items. |
Options: fulfilled (every line item in the order has been fulfilled), null (none of the line items in the order have been fulfilled), partial (at least one line item in the order has been fulfilled), restocked (every line item in the order has been restocked and the order canceled) | ||||
| — Inventory Behaviour | options | No | bypass | The behaviour to use when updating inventory. |
Options: bypass (do not claim inventory), decrementIgnoringPolicy (ignore the product’s inventory policy and claim inventory), decrementObeyingPolicy (follow the product’s inventory policy and claim inventory, if possible) | ||||
| — Location ID | string | No | — | The ID of the physical location where the order was processed. Find in Shopify Admin: Settings > Locations. |
| — Note | string | No | — | An optional note that a shop owner can attach to the order. |
| — Send Fulfillment Receipt | boolean | No | false | Whether to send a shipping confirmation to the customer. |
| — Send Receipt | boolean | No | false | Whether to send an order confirmation to the customer. |
| — Shipping Address | fixedCollection | No | {} | — |
| — — First Name | string | No | — | — |
| — — Last Name | string | No | — | — |
| — — Company | string | No | — | — |
| — — Country | string | No | — | — |
| — — Address Line 1 | string | No | — | — |
| — — Address Line 2 | string | No | — | — |
| — — City | string | No | — | — |
| — — Province | string | No | — | — |
| — — Zip Code | string | No | — | — |
| — — Phone | string | No | — | — |
| — Source Name | string | No | — | Where the order originated. Can be set only during order creation, and is not writeable afterwards. |
| — Tags | string | No | — | Tags attached to the order, formatted as a string of comma-separated values. |
| — Test | boolean | No | false | Whether this is a test order. |
Order: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Order ID | string | Yes | — | — |
Order: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Order ID | string | Yes | — | — |
Options (options) | collection | No | {} | — |
| — Fields | string | No | — | Fields the order will return, formatted as a string of comma-separated values. By default all the fields are returned. |
Order: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
Options (options) | collection | No | {} | — |
| — Attribution App ID | string | No | — | Show orders attributed to a certain app, specified by the app ID. |
— Created At Min (createdAtMin) | string | No | — | Show orders created at or after date (ISO 8601). |
— Created At Max (createdAtMax) | string | No | — | Show orders created at or before date (ISO 8601). |
| — Financial Status | options | No | any | Filter orders by their financial status. |
Options: any, authorized, paid, partiallyPaid, partiallyRefunded, pending, refunded, unpaid, voided | ||||
| — Fulfillment Status | options | No | any | Filter orders by their fulfillment status. |
Options: any, partial, shipped, unfulfilled, unshipped | ||||
| — Fields | string | No | — | Fields the orders will return, formatted as a string of comma-separated values. |
| — IDs | string | No | — | Retrieve only orders specified by a comma-separated list of order IDs. |
| — Processed At Max | string | No | — | Show orders imported at or before date (ISO 8601). |
| — Processed At Min | string | No | — | Show orders imported at or after date (ISO 8601). |
| — Status | options | No | open | Filter orders by their status. |
Options: any, cancelled, closed, open | ||||
| — Since ID | string | No | — | Show orders after the specified ID. |
— Updated At Max (updatedAtMax) | string | No | — | Show orders last updated at or before date (ISO 8601). |
— Updated At Min (updatedAtMin) | string | No | — | Show orders last updated at or after date (ISO 8601). |
Order: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Order ID | string | Yes | — | — |
| Update Fields | collection | No | {} | — |
string | No | — | The customer’s email address. | |
| — Location ID | string | No | — | The ID of the physical location where the order was processed. Find in Shopify Admin: Settings > Locations. |
| — Note | string | No | — | An optional note that a shop owner can attach to the order. |
| — Shipping Address | fixedCollection | No | {} | — |
| — — First Name | string | No | — | — |
| — — Last Name | string | No | — | — |
| — — Company | string | No | — | — |
| — — Country | string | No | — | — |
| — — Address Line 1 | string | No | — | — |
| — — Address Line 2 | string | No | — | — |
| — — City | string | No | — | — |
| — — Province | string | No | — | — |
| — — Zip Code | string | No | — | — |
| — — Phone | string | No | — | — |
| — Source Name | string | No | — | Where the order originated. |
| — Tags | string | No | — | Tags attached to the order, formatted as a string of comma-separated values. |
Product: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Title | string | Yes | — | The name of the product. |
| Additional Fields | collection | No | {} | — |
| — Body HTML | string | No | — | A description of the product. Supports HTML formatting. |
| — Handle | string | No | — | A unique human-friendly string for the product. Automatically generated from the product’s title. |
| — Images | collection | No | {} | A list of product image objects. |
| — — Created At | string | No | — | — |
| — — ID | number | No | — | — |
| — — Position | number | No | — | — |
— — Product ID (product_id) | number | No | — | — |
| — — Source | string | No | — | Specifies the location of the product image URL. |
| — — Width | number | No | — | — |
| — — Height | number | No | — | — |
| — — Updated At | string | No | — | — |
— Options (productOptions) | fixedCollection | No | {} | The custom product property names like Size, Color, and Material. You can add up to 3 options of up to 255 characters each. |
| — — Name | string | No | — | Option’s name. |
| — — Value | string | No | — | Option’s values. |
| — Product Type | string | No | — | A categorization for the product used for filtering and searching products. |
| — Published At | string | No | — | The date and time (ISO 8601 format) when the product was published. |
| — Published Scope | options | No | — | — |
Options: global (published to both Online Store and Point of Sale), web (published to the Online Store only) | ||||
| — Tags | string | No | — | A string of comma-separated tags for filtering and search. |
| — Template Suffix | string | No | — | The suffix of the Liquid template used for the product page. |
| — Vendor | string | No | — | The name of the product’s vendor. |
Product: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Product ID (productId) | string | Yes | — | — |
Product: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Product ID (productId) | string | Yes | — | — |
| Additional Fields | collection | No | {} | — |
| — Fields | string | No | — | Fields the product will return, formatted as a string of comma-separated values. |
Product: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Additional Fields | collection | No | {} | — |
| — Collection ID | string | No | — | Filter results by product collection ID. |
— Created At Max (created_at_max) | string | No | — | Show products created before date (ISO 8601). |
— Created At Min (created_at_min) | string | No | — | Show products created after date (ISO 8601). |
| — Fields | string | No | — | Show only certain fields, specified by a comma-separated list of field names. |
| — Handle | string | No | — | Filter results by product handle. |
| — IDs | string | No | — | Return only products specified by a comma-separated list of product IDs. |
| — Presentment Currencies | string | No | — | Return presentment prices in only certain currencies (ISO 4217 codes, comma-separated). |
| — Product Type | string | No | — | Filter results by product type. |
| — Published At Max | string | No | — | Show products published before date (ISO 8601). |
| — Published At Min | string | No | — | Show products published after date (ISO 8601). |
| — Published Status | options | No | any | Return products by their published status. |
Options: any (show all products), published (show only published products), unpublished (show only unpublished products) | ||||
| — Title | string | No | — | Filter results by product title. |
— Updated At Max (updated_at_max) | string | No | — | Show products last updated before date (ISO 8601). |
— Updated At Min (updated_at_min) | string | No | — | Show products last updated after date (ISO 8601). |
| — Vendor | string | No | — | Filter results by product vendor. |
Product: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Product ID (productId) | string | Yes | — | — |
| Update Fields | collection | No | {} | — |
| — Body HTML | string | No | — | A description of the product. Supports HTML formatting. |
| — Handle | string | No | — | A unique human-friendly string for the product. |
| — Images | collection | No | {} | A list of product image objects. |
| — — Created At | string | No | — | — |
| — — ID | number | No | — | — |
| — — Position | number | No | — | — |
— — Product ID (product_id) | number | No | — | — |
| — — Source | string | No | — | Specifies the location of the product image URL. |
| — — Width | number | No | — | — |
| — — Height | number | No | — | — |
| — — Updated At | string | No | — | — |
— Options (productOptions) | fixedCollection | No | {} | The custom product property names like Size, Color, and Material. |
| — — Name | string | No | — | — |
| — — Value | string | No | — | — |
| — Product Type | string | No | — | A categorization for the product. |
| — Published At | string | No | — | The date and time (ISO 8601 format) when the product was published. |
| — Published Scope | options | No | — | — |
Options: global (published to both Online Store and Point of Sale), web (published to the Online Store only) | ||||
| — Tags | string | No | — | A string of comma-separated tags for filtering and search. |
| — Template Suffix | string | No | — | The suffix of the Liquid template used for the product page. |
| — Title | string | No | — | The name of the product. |
| — Vendor | string | No | — | The name of the product’s vendor. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
The Shopify response is merged onto the input item JSON — the incoming fields stay on the item, and any field whose name also appears in the Shopify record is overwritten by Shopify’s value. Binary data on the input item is forwarded unchanged.
- Create, Get and Update produce one output item per input item, carrying the order or product object exactly as Shopify returned it.
- Get Many fans out: one output item per record returned, each one a copy of the input item merged with that record. When the store returns nothing, a single item is emitted with
resultsset to an empty array instead. Turning Return All on follows Shopify’s pagination until every page has been read; leaving it off returns at most Limit records in one request. - Delete returns no body, so the item is merged with a fixed success flag:
{
"success": true
}
- Order: Create submits the order as a test order unless you add Test to Additional Fields and set it yourself — the created order then comes back with
testset totrue. Add Test and set it tofalseto create a live order.
The tool does not reshape the record it receives, so the available fields are whatever the Shopify Admin API returns for that resource:
| Resource / Operation | What lands on the output item |
|---|---|
| Order: Create, Get, Update | The order object returned by Shopify |
| Order: Get Many | One item per order, each carrying that order’s object |
| Order: Delete | success: true |
| Product: Create, Get, Update | The product object returned by Shopify |
| Product: Get Many | One item per product, each carrying that product’s object |
| Product: Delete | success: true |
When Fields is set, Shopify returns only the fields you asked for, so only those land on the item.
Reference the result downstream by expression, e.g. {{ $json.id }}.
Usage Examples
- Create a new order in Shopify with line items
- Get all open orders from a Shopify store
- Update product details in Shopify
- Delete a product from Shopify
Example Configuration
Create an order from an upstream item, with a shipping address and an order confirmation email:
{
"type": "shopify",
"parameters": {
"resource": "order",
"operation": "create",
"limeItemsUi": {
"lineItemValues": [
{
"variantId": "{{ $json.variantId }}",
"title": "{{ $json.productTitle }}",
"quantity": 2,
"price": "29.99"
}
]
},
"additionalFields": {
"email": "{{ $json.customerEmail }}",
"note": "Rush delivery",
"sendReceipt": true,
"test": false,
"shippingAddressUi": {
"shippingAddressValues": {
"firstName": "John",
"lastName": "Doe",
"address1": "123 Main St",
"city": "New York",
"province": "NY",
"zip": "10001",
"country": "United States"
}
}
}
}
}
List the 50 most recent open, paid orders and return only a few fields:
{
"type": "shopify",
"parameters": {
"resource": "order",
"operation": "getAll",
"returnAll": false,
"limit": 50,
"options": {
"status": "open",
"financialStatus": "paid",
"createdAtMin": "2024-01-01T00:00:00Z",
"fields": "id,email,total_price,created_at"
}
}
}
Update an existing order’s note, tags and contact email:
{
"type": "shopify",
"parameters": {
"resource": "order",
"operation": "update",
"orderId": "{{ $json.orderId }}",
"updateFields": {
"note": "Updated delivery instructions",
"tags": "priority,expedited",
"email": "{{ $json.email }}"
}
}
}
Create a product with a description, vendor and two custom options:
{
"type": "shopify",
"parameters": {
"resource": "product",
"operation": "create",
"title": "{{ $json.name }}",
"additionalFields": {
"body_html": "<p>{{ $json.description }}</p>",
"product_type": "Electronics",
"vendor": "Tech Corp",
"tags": "electronics,gadget,new",
"published_scope": "global",
"productOptions": {
"option": [
{ "name": "Color", "value": "Blue" },
{ "name": "Size", "value": "Large" }
]
}
}
}
}
Page through every published product from one vendor:
{
"type": "shopify",
"parameters": {
"resource": "product",
"operation": "getAll",
"returnAll": true,
"additionalFields": {
"product_type": "Electronics",
"vendor": "Tech Corp",
"published_status": "published",
"fields": "id,title,handle,product_type,created_at"
}
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Manage Shopify store orders and products (CRUD) via the Admin REST API.
Common Patterns
Basic Order Management
- Create Order: Set
resourceto"order",operationto"create", and providelimeItemsUi - Get Order: Use
operation"get"with specificorderId - List Orders: Use
operation"getAll"with appropriate filters inoptions - Update Order: Use
operation"update"withorderIdandupdateFields
Basic Product Management
- Create Product: Set
resourceto"product",operationto"create", and providetitle - Get Product: Use
operation"get"with specificproductId - List Products: Use
operation"getAll"with filters inadditionalFields - Update Product: Use
operation"update"withproductIdandupdateFields
Key Structure Rules
- fixedCollection types (like
limeItemsUi): Always use the documented groupKey - collection types (like
additionalFields,options,updateFields): Use flat object structure - Conditional parameters: Parameters are only available when their display conditions are met
- Required vs Optional:
limeItemsUiis required for order creation,titleis required for product creation
Frequently asked questions
What does creating an order need?
Line items — the order's contents are supplied through the line-items collection, since an order with nothing in it has no meaning.
How do I filter a product or order listing?
Through the options collection on getAll, which is where the API's filter parameters live rather than at the top level.
How do I react to store activity?
Use the Shopify Trigger, which fires on event topics such as orders/create and products/update with HMAC verification.
Which credential does it need?
A Shopify API credential for the store you are managing.
Build with the Shopify node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Shopify API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.