# Map — Shopify Headless Commerce The wayfinder map for moving mozimo.in from *displaying* Shopify products to *selling* them. The destination, the phase spine and its gates live in [`plan.md`](./plan.md). The evidence behind them lives in [`docs/research/`](../../docs/research/) and [`docs/shopify-catalog-inventory.md`](../../docs/shopify-catalog-inventory.md). ## Destination A Storefront on which a buyer can assemble a Cart, review it, and complete a purchase — with `shop.mozimo.in` reduced to the Checkout domain and its storefront pages retired. ## Notes **Vocabulary:** [`CONTEXT.md`](../../CONTEXT.md). Use **Storefront**, **Theme store**, **Cart** and **Checkout** as defined there; the Cart/Bag and Storefront/Theme-store distinctions matter in every ticket. **Skills for every session:** `grilling` and `domain-modeling`. For Shopify API shapes, the official skill bundle is installed at `.agents/skills/shopify-storefront-graphql/` but is **not registered** with the harness — `skill` will not load it. Its `scripts/search_docs.js` works when run directly and is the fastest way to check a mutation's real field names; its `assets/` schema snapshot is `2026-01`. **Decisions settled before this map was charted** — the destination, the spine and gates, the verified store constraints, and what is out of scope — are recorded in [`plan.md`](./plan.md), not here. This map tracks what is still open. **Shopify docs method:** appending `.md` to a `shopify.dev` URL returns the untruncated raw Markdown, and the same trick on `help.shopify.com` — with an `/en/` locale prefix — bypasses its 403 bot challenge. Use those rather than reading HTML. **Standing preference:** plan, don't build. Tickets resolve decisions; implementation is a later, separately scoped effort per phase. ## Decisions so far ## Not yet specified - Whether the Storefront needs a returns or refunds surface of its own. The store's self-serve returns toggle is off, so this may stay a policy page. - What transactional email looks like once buying moves: Shopify sends order confirmations, but they currently carry the Theme store's branding. - Where the 46 products absent from the Editorial catalog should sit in the Storefront's merchandising, once the full catalogue is surfaced. - Whether the 16 live collections need a new URL shape on the Storefront, and what that costs in SEO. - Cart edge cases beyond the documented limits: what a buyer sees when a Cart expires mid-session, and how quantity ceilings are communicated. - Post-purchase order tracking on mozimo.in, which may belong with Phase 4. ## Out of scope - **Fully on-domain checkout.** Plus-only; revisit only via a plan upgrade. See [ADR-0001](../../docs/adr/0001-checkout-stays-shopify-hosted.md). - **Multi-currency and Shopify Markets.** One currency (INR), one country (IN). - **Subscriptions and selling plans.** No product requires one. - **Gift cards.** None exist in the store, and none are queryable on the Storefront API. - **Inventory and stock display.** Explicitly not tracked and not wanted; sold-out is not a reachable state. - **Customer account migration.** The store almost certainly uses new customer accounts — self-serve returns and store credit are both present, and the account URL is on `shopify.com`. A single admin check confirms it, and either way no migration is in scope.