# Shopify
URL: /reference/blocks/shopify-manage
Type: reference
Description: Look up products, orders, and customers in your Shopify store — including a customer's full order history — or run a raw GraphQL query
Keywords: shopify, shopify/manage, integrations, block, workflow builder
`shopify/manage` — Look up products, orders, and customers in your Shopify store — including a customer's full order history — or run a raw GraphQL query.

Where it appears [#where-it-appears]

The **Shopify** block lives in the **Integrations** group of the Workflow Builder. Connect the Shopify integration before adding it.

Fields [#fields]

| Field            | Type                       | Required | Default   | Description                                                                                                                                                                       |
| ---------------- | -------------------------- | -------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `storeKey`       | integration-store-select   | Yes      | —         | Which connected Shopify store this block runs against. Populated from the selected connection's configured stores.                                                                |
| `resource`       | select                     | Yes      | `product` | Which Shopify resource to work with. Options: `product`, `order`, `customer`, `advanced`.                                                                                         |
| `operation`      | select                     | Yes      | —         | Which action to perform on the selected resource.                                                                                                                                 |
| `productId`      | text (supports references) | No       | —         | The product to fetch.                                                                                                                                                             |
| `orderId`        | text (supports references) | No       | —         | The order to fetch.                                                                                                                                                               |
| `customerId`     | text (supports references) | No       | —         | The customer to fetch.                                                                                                                                                            |
| `customerLookup` | text (supports references) | No       | —         | The customer to look up. An email (contains @) is resolved to the customer automatically; otherwise it's treated as a customer ID. Returns the customer plus their recent orders. |
| `customerQuery`  | text                       | No       | —         | Shopify customer search syntax, e.g. email:[jane@example.com](mailto:jane@example.com), phone:+15551234567, or a name.                                                            |
| `productStatus`  | select                     | No       | `any`     | Only return products with this status. Options: `any`, `active`, `draft`, `archived`.                                                                                             |
| `orderStatus`    | select                     | No       | `open`    | Only return orders with this status. Options: `open`, `closed`, `cancelled`, `any`.                                                                                               |
| `returnAll`      | toggle                     | No       | `false`   | Fetch every matching record by paginating automatically. When on, Limit is ignored.                                                                                               |
| `limit`          | number                     | No       | `50`      | Maximum number of records to return (for Customer Context, how many recent orders). Ignored when Return All is on.                                                                |
| `query`          | code                       | No       | —         | Raw Shopify Admin GraphQL query.                                                                                                                                                  |
| `variables`      | code                       | No       | —         | Optional variables for the GraphQL query.                                                                                                                                         |

Inputs and outputs [#inputs-and-outputs]

Inputs are the configurable fields above. The block produces these outputs:

**Outputs**

Reference an output downstream with `<Shopify.field>`.

| Name            | Type    | Description                                                                                                                                                                                                                                                                       |
| --------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `success`       | boolean | Operation success status                                                                                                                                                                                                                                                          |
| `product`       | json    | Single product (Get Product) (object — fields: `id`, `title`, `handle`, `status`, `vendor`, `product_type`, `tags`, `variants`, `images`, `created_at`, `updated_at`)                                                                                                             |
| `products`      | array   | Products (List Products)                                                                                                                                                                                                                                                          |
| `order`         | json    | Single order (Get Order) (object — fields: `id`, `name`, `email`, `financial_status`, `fulfillment_status`, `total_price`, `currency`, `line_items`, `note`, `tags`, `created_at`, `updated_at`)                                                                                  |
| `orders`        | array   | Orders (List Orders, or recent orders in Customer Context). Shopify only returns orders from the last 60 days unless the app holds the read\_all\_orders scope — check ordersSummary to know whether older orders were omitted.                                                   |
| `ordersSummary` | json    | Coverage for the returned orders (Customer Context). Flags when older orders are hidden by Shopify's 60-day window or capped by the Limit, so agents don't mistake a truncated list for 'no orders.' (object — fields: `returned`, `lifetimeCount`, `complete`, `note`, `reason`) |
| `customer`      | json    | Single customer (Get Customer / Customer Context) (object — fields: `id`, `email`, `first_name`, `last_name`, `phone`, `orders_count`, `total_spent`, `last_order_id`, `last_order_name`, `tags`, `note`, `created_at`, `updated_at`)                                             |
| `customers`     | array   | Matching customers (Search Customers)                                                                                                                                                                                                                                             |
| `error`         | string  | Error message if failed                                                                                                                                                                                                                                                           |

Example [#example]

A minimal configuration for this block:

```json
{
  "type": "shopify/manage",
  "config": {
    "storeKey": "...",
    "resource": "product",
    "operation": "...",
    "productStatus": "any",
    "orderStatus": "open",
    "returnAll": false,
    "limit": 50
  }
}
```

Limits and failure modes [#limits-and-failure-modes]

* Requires a connected Shopify integration. Calls fail if that integration is disconnected or its authorization has expired.
* Required fields (`storeKey`, `resource`, `operation`) must be set, or the block fails validation before it runs.
* On failure the `error` output is populated; downstream blocks that reference other outputs may not receive values.

Related [#related]

* [All workflow blocks](/reference/blocks)
* [Workflow Builder overview](/workflow-builder-overview)
* [Integrations](/integrations)