> ## Documentation Index
> Fetch the complete documentation index at: https://docs.asteragents.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Shopify Query

> Query Shopify store data without modifying records.

Requires a [Shopify connection](/integrations/shopify). Supply `query`, optional JSON `variables`, and optional `instance` (otherwise the organization's default store).

Use **Shopify Get Schema** to inspect types before building a query. Only one query operation is allowed. Named fragments are rejected; inline fragments (`... on DiscountCodeBasic`) are allowed. Mutations, subscriptions and `node`/`nodes` are rejected. Supported roots include shop, products, productVariants, collections, orders, draftOrders, abandonedCheckouts, customers, segments, inventoryItems, inventoryLevel, locations, fulfillmentOrders, return, discountNodes, markets, catalogs, priceLists, publications, companies, sellingPlanGroups, metaobjects, metafieldDefinitions, the `*Count` roots and shopifyqlQuery.

```graphql theme={null}
query PaidOrders($after: String) {
  orders(first: 50, after: $after, query: "created_at:>=2026-09-01 financial_status:paid", sortKey: CREATED_AT) {
    pageInfo { hasNextPage endCursor }
    nodes {
      name
      createdAt
      totalPriceSet { shopMoney { amount currencyCode } }
      lineItems(first: 50) {
        pageInfo { hasNextPage endCursor }
        nodes { sku quantity }
      }
    }
  }
}
```

Results include the resolved instance, the store domain, the data and Shopify's `cost` (including `throttleStatus`). Continue every connection using its cursor, since a page is not a total. `first` and `last` must be between 1 and 250. Select only the fields you need. `ACCESS_DENIED` errors name the access scope the Shopify app is missing.
