Files
mozimo.in/.scratch/shopify-headless-commerce/map.md
T
tanshu de0553d0d4 Wayfinder: chart the Shopify headless commerce map
The route from "mozimo.in displays Shopify products" to "mozimo.in sells them",
as a plan with a phase spine and gates, plus the open decision tickets that
still shape it and the evidence they rest on.

- .scratch/shopify-headless-commerce/: plan.md (phases and gates), map.md (the
  wayfinder map), 10 open decision tickets
- CONTEXT.md: Storefront / Theme store / Cart / Parity vocabulary
- docs/adr/0001-0003: Checkout stays Shopify-hosted, one Variant per product,
  the checkout domain stays shop.mozimo.in
- docs/research/ and docs/shopify-catalog-inventory.md: verified store facts,
  the Cart API probe, and the catalogue inventory

Raw Shopify doc scrapes under .scratch/shopify-research/ are ignored: they are
working material, not record.
2026-10-14 09:00:42 +05:30

3.4 KiB

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. The evidence behind them lives in docs/research/ and 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. 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, 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.
  • 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.