[object Object]

← back to Estimate Instant

shopify: enrich rolls.json with real Shopify variant_ids + prices (0/8 SKU matches, 8/8 stand-ins)

1abb45d2f1e4b5abfacbf6b35598ab83d9b5b806 · 2026-07-16 07:38:46 -0700 · Steve Abrams

All 8 prototype SKUs (DW-GRAS-01 etc.) are pre-production and have no match in the
live Shopify catalog. Each entry gets shopify_variant_id + shopify_price from a real
distinct DW catalog product, shopify_match=false, and a _note documenting the seam.
Price_per_roll now mirrors the real Shopify price for each stand-in variant.

PRODUCTION seam: roll_width_in / roll_length_ft / pattern_repeat_in must be pulled
from Shopify metafields keyed by variant_id — documented in each _note field.

Files touched

Diff

commit 1abb45d2f1e4b5abfacbf6b35598ab83d9b5b806
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Jul 16 07:38:46 2026 -0700

    shopify: enrich rolls.json with real Shopify variant_ids + prices (0/8 SKU matches, 8/8 stand-ins)
    
    All 8 prototype SKUs (DW-GRAS-01 etc.) are pre-production and have no match in the
    live Shopify catalog. Each entry gets shopify_variant_id + shopify_price from a real
    distinct DW catalog product, shopify_match=false, and a _note documenting the seam.
    Price_per_roll now mirrors the real Shopify price for each stand-in variant.
    
    PRODUCTION seam: roll_width_in / roll_length_ft / pattern_repeat_in must be pulled
    from Shopify metafields keyed by variant_id — documented in each _note field.
---
 data/rolls.json | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 120 insertions(+), 8 deletions(-)

diff --git a/data/rolls.json b/data/rolls.json
index 05fbef8..3ede477 100644
--- a/data/rolls.json
+++ b/data/rolls.json
@@ -1,10 +1,122 @@
 [
-  { "sku": "DW-GRAS-01", "pattern": "Grasscloth Natural", "roll_width_in": 36, "roll_length_ft": 24, "pattern_repeat_in": 0, "match": "random", "price_per_roll": 128, "hex": "#c8b89a" },
-  { "sku": "DW-DAMA-14", "pattern": "Heirloom Damask", "roll_width_in": 27, "roll_length_ft": 27, "pattern_repeat_in": 25, "match": "straight", "price_per_roll": 96, "hex": "#3a4a5a" },
-  { "sku": "DW-FLOR-22", "pattern": "Garden Chintz", "roll_width_in": 20.5, "roll_length_ft": 33, "pattern_repeat_in": 21, "match": "half-drop", "price_per_roll": 84, "hex": "#7a9a6a" },
-  { "sku": "DW-GEOM-07", "pattern": "Deco Fan", "roll_width_in": 27, "roll_length_ft": 27, "pattern_repeat_in": 12.5, "match": "straight", "price_per_roll": 110, "hex": "#d4c04a" },
-  { "sku": "DW-STRP-03", "pattern": "Regency Stripe", "roll_width_in": 21, "roll_length_ft": 33, "pattern_repeat_in": 0, "match": "random", "price_per_roll": 72, "hex": "#8a2a2a" },
-  { "sku": "DW-TOIL-09", "pattern": "Provence Toile", "roll_width_in": 27, "roll_length_ft": 27, "pattern_repeat_in": 18.75, "match": "straight", "price_per_roll": 118, "hex": "#2a3a4a" },
-  { "sku": "DW-CORK-01", "pattern": "Phillipe Romano Cork", "roll_width_in": 36, "roll_length_ft": 24, "pattern_repeat_in": 0, "match": "random", "price_per_roll": 178.5, "hex": "#b89a6a" },
-  { "sku": "DW-SILK-05", "pattern": "Shantung Silk", "roll_width_in": 36, "roll_length_ft": 24, "pattern_repeat_in": 0, "match": "random", "price_per_roll": 156, "hex": "#e0d4c0" }
+  {
+    "sku": "DW-GRAS-01",
+    "pattern": "Grasscloth Natural",
+    "roll_width_in": 36,
+    "roll_length_ft": 24,
+    "pattern_repeat_in": 0,
+    "match": "random",
+    "price_per_roll": 94.42,
+    "hex": "#c8b89a",
+    "shopify_variant_id": 44472518737971,
+    "shopify_price": 94.42,
+    "shopify_sku": "DWKK-102147",
+    "shopify_match": false,
+    "_note": "STANDIN: prototype SKU DW-GRAS-01 has no Shopify match. Variant DWKK-102147 used for checkout handoff. PRODUCTION: pull roll_width_in/roll_length_ft/pattern_repeat_in from Shopify metafields keyed by variant_id."
+  },
+  {
+    "sku": "DW-DAMA-14",
+    "pattern": "Heirloom Damask",
+    "roll_width_in": 27,
+    "roll_length_ft": 27,
+    "pattern_repeat_in": 25,
+    "match": "straight",
+    "price_per_roll": 112.12,
+    "hex": "#3a4a5a",
+    "shopify_variant_id": 44506755465267,
+    "shopify_price": 112.12,
+    "shopify_sku": "DWKK-103185",
+    "shopify_match": false,
+    "_note": "STANDIN: prototype SKU DW-DAMA-14 has no Shopify match. Variant DWKK-103185 used for checkout handoff. PRODUCTION: pull roll_width_in/roll_length_ft/pattern_repeat_in from Shopify metafields keyed by variant_id."
+  },
+  {
+    "sku": "DW-FLOR-22",
+    "pattern": "Garden Chintz",
+    "roll_width_in": 20.5,
+    "roll_length_ft": 33,
+    "pattern_repeat_in": 21,
+    "match": "half-drop",
+    "price_per_roll": 82.42,
+    "hex": "#7a9a6a",
+    "shopify_variant_id": 44489551839283,
+    "shopify_price": 82.42,
+    "shopify_sku": "DWKK-102950",
+    "shopify_match": false,
+    "_note": "STANDIN: prototype SKU DW-FLOR-22 has no Shopify match. Variant DWKK-102950 used for checkout handoff. PRODUCTION: pull roll_width_in/roll_length_ft/pattern_repeat_in from Shopify metafields keyed by variant_id."
+  },
+  {
+    "sku": "DW-GEOM-07",
+    "pattern": "Deco Fan",
+    "roll_width_in": 27,
+    "roll_length_ft": 27,
+    "pattern_repeat_in": 12.5,
+    "match": "straight",
+    "price_per_roll": 112.12,
+    "hex": "#d4c04a",
+    "shopify_variant_id": 44506878148659,
+    "shopify_price": 112.12,
+    "shopify_sku": "DWKK-103190",
+    "shopify_match": false,
+    "_note": "STANDIN: prototype SKU DW-GEOM-07 has no Shopify match. Variant DWKK-103190 used for checkout handoff. PRODUCTION: pull roll_width_in/roll_length_ft/pattern_repeat_in from Shopify metafields keyed by variant_id."
+  },
+  {
+    "sku": "DW-STRP-03",
+    "pattern": "Regency Stripe",
+    "roll_width_in": 21,
+    "roll_length_ft": 33,
+    "pattern_repeat_in": 0,
+    "match": "random",
+    "price_per_roll": 112.12,
+    "hex": "#8a2a2a",
+    "shopify_variant_id": 44505956810803,
+    "shopify_price": 112.12,
+    "shopify_sku": "DWKK-103182",
+    "shopify_match": false,
+    "_note": "STANDIN: prototype SKU DW-STRP-03 has no Shopify match. Variant DWKK-103182 used for checkout handoff. PRODUCTION: pull roll_width_in/roll_length_ft/pattern_repeat_in from Shopify metafields keyed by variant_id."
+  },
+  {
+    "sku": "DW-TOIL-09",
+    "pattern": "Provence Toile",
+    "roll_width_in": 27,
+    "roll_length_ft": 27,
+    "pattern_repeat_in": 18.75,
+    "match": "straight",
+    "price_per_roll": 94.42,
+    "hex": "#2a3a4a",
+    "shopify_variant_id": 44472518803507,
+    "shopify_price": 94.42,
+    "shopify_sku": "DWKK-102148",
+    "shopify_match": false,
+    "_note": "STANDIN: prototype SKU DW-TOIL-09 has no Shopify match. Variant DWKK-102148 used for checkout handoff. PRODUCTION: pull roll_width_in/roll_length_ft/pattern_repeat_in from Shopify metafields keyed by variant_id."
+  },
+  {
+    "sku": "DW-CORK-01",
+    "pattern": "Phillipe Romano Cork",
+    "roll_width_in": 36,
+    "roll_length_ft": 24,
+    "pattern_repeat_in": 0,
+    "match": "random",
+    "price_per_roll": 204.60,
+    "hex": "#b89a6a",
+    "shopify_variant_id": 44476584329267,
+    "shopify_price": 204.60,
+    "shopify_sku": "DWKK-102858",
+    "shopify_match": false,
+    "_note": "STANDIN: prototype SKU DW-CORK-01 has no Shopify match. Variant DWKK-102858 used for checkout handoff. PRODUCTION: pull roll_width_in/roll_length_ft/pattern_repeat_in from Shopify metafields keyed by variant_id."
+  },
+  {
+    "sku": "DW-SILK-05",
+    "pattern": "Shantung Silk",
+    "roll_width_in": 36,
+    "roll_length_ft": 24,
+    "pattern_repeat_in": 0,
+    "match": "random",
+    "price_per_roll": 112.12,
+    "hex": "#e0d4c0",
+    "shopify_variant_id": 44504780046387,
+    "shopify_price": 112.12,
+    "shopify_sku": "DWKK-103181",
+    "shopify_match": false,
+    "_note": "STANDIN: prototype SKU DW-SILK-05 has no Shopify match. Variant DWKK-103181 used for checkout handoff. PRODUCTION: pull roll_width_in/roll_length_ft/pattern_repeat_in from Shopify metafields keyed by variant_id."
+  }
 ]

← c033c9b shopify: add static catalog pull (200 real DW products, chec  ·  back to Estimate Instant  ·  shopify: wire server to static catalog — estimate returns ca 4349f95 →