Skip to Content
SimulatorsShopify changelog

Simulators

Shopify changelog

What changed in each Shopify simulator release, newest first.

v0.0.1 — 2026-11-06

  1. A local Shopify store for the code that runs a shop and sells from it. The first release of the Shopify simulator: Shopify’s Admin and Storefront GraphQL APIs at version 2026-10, served at /admin/api/2026-10/graphql.json and /api/2026-10/graphql.json on one port. Point @shopify/admin-api-client, the shopify_api gem or any GraphQL client at it with a placeholder access token, or boot it with --intercept and run your program under rystic exec to route every *.myshopify.com host to it. A request with no Admin token gets Shopify’s 401 answer, and no email, payment, webhook or app callback is ever sent.

  2. Bulk operations and background jobs. bulkOperationRunQuery starts a bulk query that finishes on the simulator’s clock and serves its result as JSONL from the simulator itself, and bulkOperationCancel cancels one still running. collectionReorderProducts returns a job that job(id:) reads until it is done.

  3. Online Store content and custom data. Create pages, blogs, articles, menus and URL redirects on the Admin API, and read what is published on the Storefront API. A menu item that links a product, collection, page, blog or article keeps its store path, and the Storefront API returns it as a full URL. Read metafield definitions, metaobjects and their definitions.

  4. Orders, customers and fulfillment to read. Read orders with their line items, payment transactions, price sets, fulfillment orders, fulfillments, returns and refunds, and customers with what they have spent and the segments they fall in. An Admin token without the read_all_orders grant sees only the last 60 days of orders, as on Shopify, and you can bind grants to a token to widen it.

  5. Five scenarios to boot straight into. shopify_apparel_storefront (a lived-in apparel store with products, collections, customers, orders, content and a live cart), shopify_fulfillment_desk (five orders in five fulfillment states), shopify_inventory_ledger (one catalog spread over three locations), shopify_custom_data_lab (a store shaped by metafields and metaobjects) and shopify_fresh_store (a store on its first day). --scenario boots one, and POST /_rystic/scenario loads one without a restart. The same requests from the same reset give the same ids and bodies.

  6. The Storefront catalog, search and carts. Read the published catalog, collections with their own products, and recommendations, and search them with search, predictiveSearch and products(query:) in Shopify’s search syntax. Build a shopper’s cart with cartCreate: add, change and remove lines, set a note, attributes, a buyer identity, discount codes, delivery addresses and metafields, and read the cart back by its id.

  7. Tested against a live Shopify store. The newest full measurement, of 2026-11-06, matched 255 of the 275 tests that compare the simulator with Shopify (92.7%), and 4 of those tests gave no verdict. The simulator’s page lists, under Limitations, the differences this release ships with.

  8. The catalog and its inventory. Create and update products with their variants, options and media, or set a whole product at once with productSet; group products in collections and reorder them; and publish them to the store’s Online Store, Shop and Point of Sale channels, after which the Storefront API shows them. Track stock across locations with inventorySetQuantities, inventoryAdjustQuantities and inventoryMoveQuantities, which check changeFromQuantity as Shopify does. The query: argument filters the product, variant, collection, customer, order and inventory item lists, and the product and order counts, in Shopify’s search syntax; the customer, variant and collection counts ignore it.

Last updated on