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.
44 lines
3.4 KiB
Markdown
44 lines
3.4 KiB
Markdown
# 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
|
|
|
|
<!-- one line per closed ticket, enough to judge relevance, then the link -->
|
|
|
|
## 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.
|