Files
khalid@traclabs.com aba2dbedfb v0.6: template-manager owns the product catalog
The host no longer carries a runtime product catalog. products.js
shrinks to a legacy single-product stub; the canonical catalog lives in
template-manager's productsStore, seeded ONCE on first boot from the
new seedProducts.js (after that the store under templates/ is
authoritative and the seed is ignored — intentional, so restarts never
rewrite an admin-managed catalog). phoneModels.js and
templateCategories.js are the supporting constant sets, and
docs/template-schema.md documents the v4 schema.

templates/ is the admin-managed store itself (_products_index.json +
products/<id>/product.json, JSON only) — committed so the configured
catalog (sizes, pricing, options built up in the admin UI) survives a
fresh checkout rather than regressing to the seed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 23:28:48 -05:00

36 lines
920 B
JSON

{
"id": "f5cbb673-8696-4dad-a63c-3a802ba53fd3",
"slug": "phone-case",
"label": "Phone Case",
"description": "Slim flexible case with edge-to-edge print.",
"category": "Accessories",
"options": [],
"sizes": [
{
"id": "4be821c2-8ba5-4dd1-ad0b-1a188dd89796",
"slug": "generic",
"label": "Generic Wrap",
"physical": {
"width": 2.7,
"height": 5.4,
"unit": "in"
},
"canvas": {
"width": 270,
"height": 540
},
"printZone": {
"x": 27,
"y": 54,
"width": 216,
"height": 432
},
"silhouettePath": "M27,0 L243,0 A27,27 0 0 1 270,27 L270,513 A27,27 0 0 1 243,540 L27,540 A27,27 0 0 1 0,513 L0,27 A27,27 0 0 1 27,0 Z",
"mockupFallbackColor": "#e0e7ff",
"basePriceCents": 2200
}
],
"createdAt": "2026-05-25T12:31:21.563Z",
"updatedAt": "2026-05-25T12:31:21.563Z"
}