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.
This commit is contained in:
1 parent
bb0c78fec5
commit
de0553d0d4
21 files changed
+3483
No files matched your search
@@ -0,0 +1,11 @@
|
||||
# One Variant per product; sizes are separate products
|
||||
|
||||
Every product in the Shopify catalog has exactly one Variant, with a single option named `Title`. Size and weight families are modelled as separate products with their own handles rather than as variants — Carnival Celebration S/M/L and Celestial S/L are five products, not two products with options.
|
||||
|
||||
We are keeping that model rather than re-modelling the catalogue. It is verified across all 61 products, and it materially simplifies the Cart work: there is no variant selector to design and no product needs an option-picking UI.
|
||||
|
||||
## Consequences
|
||||
|
||||
- The Cart still needs each product's Variant GID as its merchandise ID, because that is what the Cart API takes. The current `ShopProduct` carries none.
|
||||
- A future engineer will assume a headless cart requires variant selectors. It does not here. Re-modelling sizes into variants later would be a catalogue migration across both storefronts, not a UI change.
|
||||
- Weight is carried in the Variant title (`60gm`, `200gm`) rather than in structured options, so any code needing weight must read it from there.
|
||||
Reference in new issue
Block a user