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.
1.1 KiB
1.1 KiB
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
ShopProductcarries 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.