Shopify
live · conformance passing
Models the Shopify store an ecommerce agent actually calls — products with option-bound variants and decimal-string prices, inventory as the four quantity names across two locations with the arithmetic Shopify enforces between them, orders whose financial and fulfillment statuses are derived from their transactions, fulfillments and refunds rather than stored, an order left partially fulfilled with one line item shipped and the other open, refunds that restock or do not and one refused for the maximum still refundable, and returns that are requested before they are approved — with global ids whose type segment is load-bearing, money as MoneyBag in two currencies, all three of Shopify's error channels in the channel Shopify uses for each, calculated query cost measured against Shopify's own endpoint so THROTTLED arrives at HTTP 200 with a truthful throttleStatus, and a schema pinned from Shopify's own so no field name is invented.
- Category
- Ecommerce
- Environment key
- shpat_…
- Verified against
- ShopifyAPI 12.7.0, shopify.dev/admin-graphql-direct-proxy 2026-07
- Replaces
- A shared Shopify development store, or testing against a live shop
What it models
Records your code can read, write and edit for the life of the environment. A route the twin does not model returns a provider-shaped refusal rather than a plausible response.
- shop
- locations
- products
- variants
- collections
- inventory_levels
- customers
- draft_orders
- orders
- line_items
- fulfillment_orders
- fulfillments
- refunds
- returns
- discounts
- metafields
- webhook_subscriptions
- bulk_operations
Verified in CI against
- pythonShopifyAPI12.7.0
- graphqlshopify.dev/admin-graphql-direct-proxy2026-07