- vinyl-config route + data file for shape/font/pricing config - CatalogItem: vinylEnabled, vinylPromo fields - ItemOverride: vinylEnabled, vinylPromo fields - catalog route: applies vinylEnabled/vinylPromo overrides - ColorPicker: full vinyl configurator UI (shape picker, text/font, pricing) - CartContext: vinyl cart fields (vinylText, vinylFontId, vinylShape, etc.) - CartDrawer: vinyl line items flatMap (shape balloon + custom vinyl service) - admin/items route: synced more-complete version from balloons-shop - admin page: vinyl configurator and promo note checkboxes in ItemEditor Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
23 lines
1.2 KiB
JSON
23 lines
1.2 KiB
JSON
{
|
|
"vinylItemId": "7RLHYXSCI3QBXXCSZHZHVEMG",
|
|
"vinylVariationId": "6BORBAGKFLW3A6BREWMV3CB6",
|
|
"pricePerLetterCents": 65,
|
|
"maxCharacters": 30,
|
|
"shapeItemId": "46JGZU6MYPMQL7M6USGL3KKB",
|
|
"shapes": [
|
|
{ "name": "Heart", "variationId": "OOR23NGE53SDQY6UQRE2X353", "priceCents": 450 },
|
|
{ "name": "Star", "variationId": "7GQY7OXJ6HGNPD2PS7EMP7SM", "priceCents": 450 },
|
|
{ "name": "Circle", "variationId": "EVI4L5I5ZT3RRONMXXZ3KQ3U", "priceCents": 450 }
|
|
],
|
|
"fonts": [
|
|
{ "id": "HY4DFCCRUHIV5HLUBUNAFGQY", "name": "Anton", "family": "Anton" },
|
|
{ "id": "KMUNDFS4G6QFWCOS5KOBCKHL", "name": "Montserrat", "family": "Montserrat" },
|
|
{ "id": "TH7LNXBNV2NKJG5DOSJDOF4K", "name": "Indie Flower", "family": "Indie Flower" },
|
|
{ "id": "56CZ2GXWZU3OBBXMGS4FECNX", "name": "Pacifico", "family": "Pacifico" },
|
|
{ "id": "JVYX3XCQI2FRB23MOS3PXBJX", "name": "Style Script", "family": "Style Script" },
|
|
{ "id": "5I7ICFBD2KUJFH7J3SHU4HX3", "name": "MedievalSharp", "family": "MedievalSharp" },
|
|
{ "id": "73RT5RUWTAP4OKLCZZJHV47J", "name": "Luckiest Guy", "family": "Luckiest Guy" },
|
|
{ "id": "ST3M6TDB6PRN2JMJXA6EBEZ4", "name": "Playfair Display","family": "Playfair Display" }
|
|
]
|
|
}
|