Manage Shopify orders, customers, and fulfillments using the GraphQL Admin API. Use when querying orders, processing fulfillments, managing customers, or building order management integrations. Trigger with phrases like "shopify orders", "shopify customers", "shopify fulfillment", "process shopify order", "shopify checkout".
Secondary core workflow: manage orders, customers, and fulfillments. Query order data, process fulfillments, and handle customer records through the GraphQL Admin API.
shopify-install-auth setupread_orders, write_orders, read_customers, write_customers, read_fulfillments, write_fulfillmentsshopify-core-workflow-a (products)Query orders with financial/fulfillment status filters, line items, customer data, and shipping addresses. Uses Shopify query syntax (financial_status:paid, fulfillment_status:unfulfilled, name:#1001, etc.).
See Query Orders for the complete query with pagination and query syntax examples.
Create draft orders with variant line items, custom line items, discounts, shipping addresses, and customer assignment.
See Draft Order Create for the complete mutation and variables.
Two-step process: first query fulfillment orders for an order to get line item IDs, then create the fulfillment with tracking information and customer notification.
See Fulfillment Processing for both queries and the complete workflow.
Search customers by email, order count, total spent, tags, and state. Returns addresses and metafields.
See Customer Search Query for the complete query and syntax examples.
| Error | Cause | Solution |
|---|---|---|
Access denied for orders | Missing read_orders scope | Add scope and re-auth |
Fulfillment order not found | Wrong fulfillment order ID | Query fulfillment orders first |
Cannot fulfill: already fulfilled | Order already shipped | Check remainingQuantity > 0 |
Customer not found | Invalid customer GID | Verify GID format gid://shopify/Customer/1234567890 (numeric ID) |
Order is not editable | Order already archived | Only draft/open orders are editable |
THROTTLED | Rate limit exceeded | Implement backoff -- see shopify-rate-limits |
// Get order count and revenue for a date range
const ORDER_ANALYTICS = `
query orderAnalytics {
ordersCount(query: "created_at:>2024-01-01 AND created_at:<2024-02-01") {
count
}
orders(first: 1, query: "created_at:>2024-01-01", sortKey: TOTAL_PRICE, reverse: true) {
edges {
node {
name
totalPriceSet { shopMoney { amount currencyCode } }
}
}
}
}
`;
Create a refund with line item restock and customer notification.
See Refund Create for the complete mutation and variables.