[object Object]

← back to Sanderson Onboard

TK-10873: fix — Ebru II ships at VERIFIED $342, not the stale $230 scrape (verified-price override)

01e2bc043f6d76fee0cf52b5431744bddc7afd88 · 2026-08-31 01:53:17 -0700 · steve@designerwallcoverings.com

Files touched

Diff

commit 01e2bc043f6d76fee0cf52b5431744bddc7afd88
Author: steve@designerwallcoverings.com <steve@designerwallcoverings.com>
Date:   Mon Aug 31 01:53:17 2026 -0700

    TK-10873: fix — Ebru II ships at VERIFIED $342, not the stale $230 scrape (verified-price override)
---
 tk10873/build_v4_promotions.mjs                            | 14 +++++++++++---
 tk10873/zoffany_optionA_promotions_v4.json                 |  6 +++---
 tk10873/zoffany_optionA_promotions_v4.live_plan.json       |  4 ++--
 .../zoffany_optionA_promotions_v4.restore_map.preview.json |  2 +-
 4 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/tk10873/build_v4_promotions.mjs b/tk10873/build_v4_promotions.mjs
index 55a60f3..064239c 100644
--- a/tk10873/build_v4_promotions.mjs
+++ b/tk10873/build_v4_promotions.mjs
@@ -31,6 +31,10 @@ const v3 = JSON.parse(fs.readFileSync(`${DIR}zoffany_optionA_draft_v3.json`, 'ut
 // Darnley-collection per-colorway price-confirm follow-up. Do NOT launder Ebru II's evidence onto Mitford.
 const HOLD_PATTERNS = /^(Darnley|Mitford Damask)$/i;
 const DROP_SKUS = new Set(['ZEND313098']); // Domino Paper
+// Ebru II's harvested us_retail is the STALE below-list scrape ($230). It ships at the web-VERIFIED
+// current US list ($342, direct product-page pin) — NOT the wrong scraped number. Any promoted row
+// whose scrape was below-list MUST use its verified price here, never the stale us_retail.
+const VERIFIED_PRICE = { ZDAR312865: 342.00 }; // Ebru II (Snow), decoratorsbest.com
 
 const rows = [];
 // verified 11yd-roll harvested rows (PROPOSE + PROPOSE_LOW_CONF, exactly 11yd single roll, priced)
@@ -39,12 +43,16 @@ for (const r of props) {
   if (r.unit !== '11yd-roll' || r.us_retail == null) continue;            // exactly single 11yd roll (drops double-roll)
   if (DROP_SKUS.has(r.mfr_sku)) continue;                                  // Domino Paper
   if (HOLD_PATTERNS.test(r.pattern || '')) continue;                       // below-list patterns → held
+  const price = VERIFIED_PRICE[r.mfr_sku] ?? Number(r.us_retail);          // verified override wins over stale scrape
+  const verified = r.mfr_sku in VERIFIED_PRICE;
   rows.push({
     mfr_sku: r.mfr_sku, action: 'REPRICE',
-    proposed_sellable_price: Number(Number(r.us_retail).toFixed(2)),
+    proposed_sellable_price: Number(Number(price).toFixed(2)),
     price_trade: null, // harvested market retail — no DW trade cost, so no cost floor
-    price_source: `harvest_us_retail:${r.source} (${r.confidence}, US-list-verified)`,
-    unit: r.unit, note: `${r.pattern} — harvested US retail, web-confirmed current list`,
+    price_source: verified
+      ? `web_verified_us_list:${VERIFIED_PRICE[r.mfr_sku]} (corrected from stale scrape $${r.us_retail})`
+      : `harvest_us_retail:${r.source} (${r.confidence}, US-list-verified)`,
+    unit: r.unit, note: `${r.pattern} — ${verified ? 'web-verified current US list (scrape was below-list)' : 'harvested US retail, web-confirmed current list'}`,
   });
 }
 const harvested = rows.length;
diff --git a/tk10873/zoffany_optionA_promotions_v4.json b/tk10873/zoffany_optionA_promotions_v4.json
index b651c40..93ca07f 100644
--- a/tk10873/zoffany_optionA_promotions_v4.json
+++ b/tk10873/zoffany_optionA_promotions_v4.json
@@ -11,11 +11,11 @@
   {
     "mfr_sku": "ZDAR312865",
     "action": "REPRICE",
-    "proposed_sellable_price": 230,
+    "proposed_sellable_price": 342,
     "price_trade": null,
-    "price_source": "harvest_us_retail:morriswallpaper.com (high, US-list-verified)",
+    "price_source": "web_verified_us_list:342 (corrected from stale scrape $230)",
     "unit": "11yd-roll",
-    "note": "Ebru II — harvested US retail, web-confirmed current list"
+    "note": "Ebru II — web-verified current US list (scrape was below-list)"
   },
   {
     "mfr_sku": "ZCOT313026",
diff --git a/tk10873/zoffany_optionA_promotions_v4.live_plan.json b/tk10873/zoffany_optionA_promotions_v4.live_plan.json
index a9532c7..bfae6bb 100644
--- a/tk10873/zoffany_optionA_promotions_v4.live_plan.json
+++ b/tk10873/zoffany_optionA_promotions_v4.live_plan.json
@@ -14,9 +14,9 @@
     "product_id": "gid://shopify/Product/7866101694515",
     "sellable_sku": "DWZF-187038",
     "cached_variant_id": null,
-    "new_price": 230,
+    "new_price": 342,
     "old_price": "<LIVE-READ-REQUIRED before write>",
-    "price_source": "harvest_us_retail:morriswallpaper.com (high, US-list-verified)",
+    "price_source": "web_verified_us_list:342 (corrected from stale scrape $230)",
     "sanity": "PASS"
   },
   {
diff --git a/tk10873/zoffany_optionA_promotions_v4.restore_map.preview.json b/tk10873/zoffany_optionA_promotions_v4.restore_map.preview.json
index 367587d..e8854ac 100644
--- a/tk10873/zoffany_optionA_promotions_v4.restore_map.preview.json
+++ b/tk10873/zoffany_optionA_promotions_v4.restore_map.preview.json
@@ -14,7 +14,7 @@
     "sellable_sku": "DWZF-187038",
     "variant_id": "<LIVE-GET-REQUIRED>",
     "old_price": "<LIVE-READ-REQUIRED>",
-    "new_price": 230,
+    "new_price": 342,
     "_note": "PREVIEW only — the live --apply run materializes old_price + variant_id from a live read BEFORE any write."
   },
   {

← 7e2cada TK-10873: DTD+Cody refine — ship Ebru II (pinned) into v4 (4  ·  back to Sanderson Onboard  ·  TK-10873: decisions doc — 42 ship / 2 hold after DTD refine 35b8a8b →