query_orders
List individual orders matching filters: date range, financial status, customerId, min/max order total, order tags — sortable by date or total. Returns one row per order with name, status, fulfillment, orderTotal (formatted), items count, country, tags, and date. Use for 'show me recent orders', 'orders over $500', 'this customer's pending orders', 'orders tagged wholesale'. DISAMBIGUATION: for AGGREGATE order analytics (counts/revenue by status, country, or product) use get_orders; to look up ONE known order by its #name or ID with line items, use get_order.
Notes
Returns at most 50 orders per call. For larger sets, page with
_offset(the response sets_pagination.hasMore).statusfilters Shopify financial status; omit it to include all statuses.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Filter to orders carrying these Shopify order tags. Matching is case-insensitive. By default an order matches if it has ANY of the tags (see tagMatch). E.g. ['wholesale'] or ['gift','vip']. | |
| limit | No | Number of results (default: 20, max: 50) | |
| offset | No | Pagination offset | |
| sortBy | No | Sort field (default: processedAt) | |
| status | No | Filter by financial status | |
| _offset | No | Pagination offset. If a response includes _pagination.hasMore=true, use _offset to fetch the next page. | |
| endDate | No | End date (YYYY-MM-DD). Defaults to yesterday. | |
| maxTotal | No | Maximum order total in dollars | |
| minTotal | No | Minimum order total in dollars | |
| tagMatch | No | How to match multiple tags: 'any' (default, order has at least one) or 'all' (order has every listed tag). | |
| sortOrder | No | Sort order (default: desc) | |
| startDate | No | Start date (YYYY-MM-DD). Defaults to a 30-day window ending yesterday. | |
| customerId | No | Filter to orders for a specific customer (Shopify customer ID) |