← back to Dw Unbuyable Recovery Pilot
TK-10978 Donghia add-roll recovery tooling: plan builder (152 clean, mfr_sku identity join, trade/0.65/0.85) + reused executor; dry-run 152/0/0 clean live-verified
a12fffcd8ba757e0be3451ec2192662724b30d3d · 2026-08-31 11:00:24 -0700 · Steve Abrams
Files touched
A tk10978-donghia/build-plan.mjsA tk10978-donghia/data/excluded.jsonA tk10978-donghia/data/plan.jsonA tk10978-donghia/data/skips.jsonA tk10978-donghia/repair.mjsA tk10978-donghia/rollback-all.mjs
Diff
commit a12fffcd8ba757e0be3451ec2192662724b30d3d
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Aug 31 11:00:24 2026 -0700
TK-10978 Donghia add-roll recovery tooling: plan builder (152 clean, mfr_sku identity join, trade/0.65/0.85) + reused executor; dry-run 152/0/0 clean live-verified
---
tk10978-donghia/build-plan.mjs | 65 ++
tk10978-donghia/data/excluded.json | 1 +
tk10978-donghia/data/plan.json | 1992 ++++++++++++++++++++++++++++++++++++
tk10978-donghia/data/skips.json | 1 +
tk10978-donghia/repair.mjs | 124 +++
tk10978-donghia/rollback-all.mjs | 27 +
6 files changed, 2210 insertions(+)
diff --git a/tk10978-donghia/build-plan.mjs b/tk10978-donghia/build-plan.mjs
new file mode 100644
index 0000000..407bbe1
--- /dev/null
+++ b/tk10978-donghia/build-plan.mjs
@@ -0,0 +1,65 @@
+#!/usr/bin/env node
+// TK-10978 — Donghia ADD-ROLL recovery plan builder (READ-ONLY).
+//
+// Donghia "unbuyable" = ACTIVE product with a single $4.25 Sample variant and
+// no sellable variant. Recovery = ADD a "Sold Per Roll" variant priced by the
+// DW-STANDARD formula price_trade/0.65/0.85 (identical to the approved WG +
+// Scalamandre batches), keeping the $4.25 Sample untouched.
+//
+// IDENTITY: direct mfr_sku join to donghia_catalog (price_trade>0). This is an
+// EXACT identity match (not Scalamandre's content-match), so matchOk=true by
+// construction. rollSku = variant_sku with the trailing '-Sample' stripped.
+//
+// HARD EXCLUSIONS: no price_trade>0 catalog row; missing/!-Sample variant_sku;
+// retail out of sane range (10 < r < 10000). No writes — psql read-only.
+import { writeFileSync, mkdirSync } from 'node:fs';
+import { execSync } from 'node:child_process';
+
+const HERE = new URL('.', import.meta.url).pathname;
+mkdirSync(`${HERE}data`, { recursive: true });
+
+const SQL = `
+BEGIN READ ONLY;
+SELECT json_agg(t) FROM (
+ SELECT DISTINCT ON (sp.shopify_id)
+ regexp_replace(sp.shopify_id, '.*/', '') AS pid,
+ sp.title, sp.variant_sku AS sample_sku, sp.mfr_sku,
+ c.dw_sku AS catalog_dw_sku, c.pattern_name, c.color_name,
+ c.price_trade,
+ round(c.price_trade/0.65/0.85, 2) AS roll_retail
+ FROM shopify_products sp
+ JOIN donghia_catalog c ON upper(c.mfr_sku)=upper(sp.mfr_sku)
+ WHERE sp.vendor='Donghia' AND sp.status='ACTIVE'
+ AND NOT coalesce(sp.has_product_variant,false)
+ AND sp.variant_sku ILIKE '%-Sample'
+ AND c.price_trade > 0
+ ORDER BY sp.shopify_id, c.price_trade DESC
+) t;
+ROLLBACK;
+`;
+const out = execSync('psql -h /tmp -d dw_unified -tA -v ON_ERROR_STOP=1', { input: SQL, encoding: 'utf8', maxBuffer: 64*1024*1024 });
+const _s=out.slice(out.indexOf('['), out.lastIndexOf(']')+1); const rows = _s ? JSON.parse(_s) : [];
+
+const plan = [], excluded = [];
+for (const r of rows) {
+ const rollRetail = Number(r.roll_retail);
+ if (!(rollRetail > 10 && rollRetail < 10000)) { excluded.push({ pid:r.pid, title:r.title, reason:`retail_range ${rollRetail}` }); continue; }
+ const rollSku = String(r.sample_sku).replace(/-Sample$/i, '');
+ plan.push({
+ pid: r.pid, title: r.title,
+ sampleSku: r.sample_sku, rollSku,
+ catalog_dw_sku: r.catalog_dw_sku, mfr_sku: r.mfr_sku,
+ price_trade: Number(r.price_trade), rollRetail,
+ cat_pattern: r.pattern_name, cat_color: r.color_name,
+ matchOk: true, // direct mfr_sku identity join
+ });
+}
+const report = { ticket:'TK-10978', vendor:'Donghia', generated_at:new Date().toISOString(),
+ mode:'READ-ONLY plan builder', formula:'price_trade/0.65/0.85 (DW standard, matches WG+Scalamandre)',
+ raw_rows:rows.length, clean_actionable:plan.length, excluded:excluded.length,
+ retail_min: plan.length?Math.min(...plan.map(p=>p.rollRetail)):null,
+ retail_max: plan.length?Math.max(...plan.map(p=>p.rollRetail)):null };
+console.log(JSON.stringify(report,null,2));
+writeFileSync(`${HERE}data/plan.json`, JSON.stringify({ report, plan }, null, 2));
+writeFileSync(`${HERE}data/excluded.json`, JSON.stringify(excluded, null, 2));
+console.log(`\nplan.json: ${plan.length} products; excluded: ${excluded.length}`);
diff --git a/tk10978-donghia/data/excluded.json b/tk10978-donghia/data/excluded.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/tk10978-donghia/data/excluded.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tk10978-donghia/data/plan.json b/tk10978-donghia/data/plan.json
new file mode 100644
index 0000000..deb5dc1
--- /dev/null
+++ b/tk10978-donghia/data/plan.json
@@ -0,0 +1,1992 @@
+{
+ "report": {
+ "ticket": "TK-10978",
+ "vendor": "Donghia",
+ "generated_at": "2026-08-31T17:59:04.195Z",
+ "mode": "READ-ONLY plan builder",
+ "formula": "price_trade/0.65/0.85 (DW standard, matches WG+Scalamandre)",
+ "raw_rows": 152,
+ "clean_actionable": 152,
+ "excluded": 0,
+ "retail_min": 19.82,
+ "retail_max": 3252.49
+ },
+ "plan": [
+ {
+ "pid": "7793932042291",
+ "title": "Bronze Age - Bronze wallcovering | Donghia",
+ "sampleSku": "DWDH-188001-Sample",
+ "rollSku": "DWDH-188001",
+ "catalog_dw_sku": "DWDH-188001",
+ "mfr_sku": "P6021104.411",
+ "price_trade": 52.95,
+ "rollRetail": 95.84,
+ "cat_pattern": "Bronze Age",
+ "cat_color": "Bronze",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932107827",
+ "title": "Looks Like Grass - Driftwood wallcovering | Donghia",
+ "sampleSku": "DWDH-188002-Sample",
+ "rollSku": "DWDH-188002",
+ "catalog_dw_sku": "DWDH-188002",
+ "mfr_sku": "DG-09720.009",
+ "price_trade": 44,
+ "rollRetail": 79.64,
+ "cat_pattern": "Looks Like Grass",
+ "cat_color": "Driftwood",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932173363",
+ "title": "Silvern - Patina wallcovering | Donghia",
+ "sampleSku": "DWDH-188003-Sample",
+ "rollSku": "DWDH-188003",
+ "catalog_dw_sku": "DWDH-188003",
+ "mfr_sku": "P6021117.411",
+ "price_trade": 385,
+ "rollRetail": 696.83,
+ "cat_pattern": "Silvern",
+ "cat_color": "Patina",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932206131",
+ "title": "Karats - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188004-Sample",
+ "rollSku": "DWDH-188004",
+ "catalog_dw_sku": "DWDH-188004",
+ "mfr_sku": "P6021119.40",
+ "price_trade": 52.95,
+ "rollRetail": 95.84,
+ "cat_pattern": "Karats",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932238899",
+ "title": "Nugget - Brass wallcovering | Donghia",
+ "sampleSku": "DWDH-188005-Sample",
+ "rollSku": "DWDH-188005",
+ "catalog_dw_sku": "DWDH-188005",
+ "mfr_sku": "P6021103.040",
+ "price_trade": 52.95,
+ "rollRetail": 95.84,
+ "cat_pattern": "Nugget",
+ "cat_color": "Brass",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932304435",
+ "title": "Chrysta - Nickel wallcovering | Donghia",
+ "sampleSku": "DWDH-188006-Sample",
+ "rollSku": "DWDH-188006",
+ "catalog_dw_sku": "DWDH-188006",
+ "mfr_sku": "P6021105.11",
+ "price_trade": 52.95,
+ "rollRetail": 95.84,
+ "cat_pattern": "Chrysta",
+ "cat_color": "Nickel",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932337203",
+ "title": "Desert Grass - Blue Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188007-Sample",
+ "rollSku": "DWDH-188007",
+ "catalog_dw_sku": "DWDH-188007",
+ "mfr_sku": "DG-20056.012",
+ "price_trade": 79,
+ "rollRetail": 142.99,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "Blue Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932369971",
+ "title": "Jumbo - Green wallcovering | Donghia",
+ "sampleSku": "DWDH-188008-Sample",
+ "rollSku": "DWDH-188008",
+ "catalog_dw_sku": "DWDH-188008",
+ "mfr_sku": "DG-20059.004",
+ "price_trade": 59.9,
+ "rollRetail": 108.42,
+ "cat_pattern": "Jumbo",
+ "cat_color": "Green",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932402739",
+ "title": "Opaline Walls - Sky wallcovering | Donghia",
+ "sampleSku": "DWDH-188009-Sample",
+ "rollSku": "DWDH-188009",
+ "catalog_dw_sku": "DWDH-188009",
+ "mfr_sku": "DG-20046.002",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Opaline Walls",
+ "cat_color": "Sky",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932435507",
+ "title": "Amalgam - Patina wallcovering | Donghia",
+ "sampleSku": "DWDH-188010-Sample",
+ "rollSku": "DWDH-188010",
+ "catalog_dw_sku": "DWDH-188010",
+ "mfr_sku": "P6021107.411",
+ "price_trade": 1540,
+ "rollRetail": 2787.33,
+ "cat_pattern": "Amalgam",
+ "cat_color": "Patina",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932468275",
+ "title": "Looks Like Grass - Blanched Almond wallcovering | Donghia",
+ "sampleSku": "DWDH-188011-Sample",
+ "rollSku": "DWDH-188011",
+ "catalog_dw_sku": "DWDH-188011",
+ "mfr_sku": "DG-09720.020",
+ "price_trade": 44,
+ "rollRetail": 79.64,
+ "cat_pattern": "Looks Like Grass",
+ "cat_color": "Blanched Almond",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932501043",
+ "title": "Looks Like Grass - Cane wallcovering | Donghia",
+ "sampleSku": "DWDH-188012-Sample",
+ "rollSku": "DWDH-188012",
+ "catalog_dw_sku": "DWDH-188012",
+ "mfr_sku": "DG-09720.010",
+ "price_trade": 21.95,
+ "rollRetail": 39.73,
+ "cat_pattern": "Looks Like Grass",
+ "cat_color": "Cane",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932533811",
+ "title": "Looks Like Etching - Gold Bullion wallcovering | Donghia",
+ "sampleSku": "DWDH-188013-Sample",
+ "rollSku": "DWDH-188013",
+ "catalog_dw_sku": "DWDH-188013",
+ "mfr_sku": "DG-20023.003",
+ "price_trade": 52,
+ "rollRetail": 94.12,
+ "cat_pattern": "Looks Like Etching",
+ "cat_color": "Gold Bullion",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932566579",
+ "title": "Opaline Walls - Rust wallcovering | Donghia",
+ "sampleSku": "DWDH-188014-Sample",
+ "rollSku": "DWDH-188014",
+ "catalog_dw_sku": "DWDH-188014",
+ "mfr_sku": "DG-20046.005",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Opaline Walls",
+ "cat_color": "Rust",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932599347",
+ "title": "Bamboozle - Sky wallcovering | Donghia",
+ "sampleSku": "DWDH-188015-Sample",
+ "rollSku": "DWDH-188015",
+ "catalog_dw_sku": "DWDH-188015",
+ "mfr_sku": "DG-20057.002",
+ "price_trade": 49.5,
+ "rollRetail": 89.59,
+ "cat_pattern": "Bamboozle",
+ "cat_color": "Sky",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932632115",
+ "title": "Metropolis - Platinum wallcovering | Donghia",
+ "sampleSku": "DWDH-188016-Sample",
+ "rollSku": "DWDH-188016",
+ "catalog_dw_sku": "DWDH-188016",
+ "mfr_sku": "P6021124.11",
+ "price_trade": 269,
+ "rollRetail": 486.88,
+ "cat_pattern": "Metropolis",
+ "cat_color": "Platinum",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932664883",
+ "title": "Looks Like Raffia - Garden-Sage wallcovering | Donghia",
+ "sampleSku": "DWDH-188017-Sample",
+ "rollSku": "DWDH-188017",
+ "catalog_dw_sku": "DWDH-188017",
+ "mfr_sku": "DG-0W425.004",
+ "price_trade": 19.95,
+ "rollRetail": 36.11,
+ "cat_pattern": "Looks Like Raffia",
+ "cat_color": "Garden-Sage",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932697651",
+ "title": "Opaline Walls - Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188018-Sample",
+ "rollSku": "DWDH-188018",
+ "catalog_dw_sku": "DWDH-188018",
+ "mfr_sku": "DG-20046.009",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Opaline Walls",
+ "cat_color": "Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932730419",
+ "title": "Enamelled - Gloss Black wallcovering | Donghia",
+ "sampleSku": "DWDH-188019-Sample",
+ "rollSku": "DWDH-188019",
+ "catalog_dw_sku": "DWDH-188019",
+ "mfr_sku": "P6021116.8",
+ "price_trade": 54.95,
+ "rollRetail": 99.46,
+ "cat_pattern": "Enamelled",
+ "cat_color": "Gloss Black",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932763187",
+ "title": "Bamboozle - Green wallcovering | Donghia",
+ "sampleSku": "DWDH-188020-Sample",
+ "rollSku": "DWDH-188020",
+ "catalog_dw_sku": "DWDH-188020",
+ "mfr_sku": "DG-20057.004",
+ "price_trade": 49.5,
+ "rollRetail": 89.59,
+ "cat_pattern": "Bamboozle",
+ "cat_color": "Green",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932828723",
+ "title": "Looks Like Raffia - Art Deco Gray wallcovering | Donghia",
+ "sampleSku": "DWDH-188021-Sample",
+ "rollSku": "DWDH-188021",
+ "catalog_dw_sku": "DWDH-188021",
+ "mfr_sku": "DG-0W425.009",
+ "price_trade": 19.95,
+ "rollRetail": 36.11,
+ "cat_pattern": "Looks Like Raffia",
+ "cat_color": "Art Deco Gray",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932861491",
+ "title": "Looks Like Grass - Gingko wallcovering | Donghia",
+ "sampleSku": "DWDH-188022-Sample",
+ "rollSku": "DWDH-188022",
+ "catalog_dw_sku": "DWDH-188022",
+ "mfr_sku": "DG-09720.014",
+ "price_trade": 21.95,
+ "rollRetail": 39.73,
+ "cat_pattern": "Looks Like Grass",
+ "cat_color": "Gingko",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932894259",
+ "title": "Aurora Walls - Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188023-Sample",
+ "rollSku": "DWDH-188023",
+ "catalog_dw_sku": "DWDH-188023",
+ "mfr_sku": "DG-20047.009",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Aurora Walls",
+ "cat_color": "Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932927027",
+ "title": "Aurora Walls - Rust wallcovering | Donghia",
+ "sampleSku": "DWDH-188024-Sample",
+ "rollSku": "DWDH-188024",
+ "catalog_dw_sku": "DWDH-188024",
+ "mfr_sku": "DG-20047.005",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Aurora Walls",
+ "cat_color": "Rust",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932959795",
+ "title": "Opaline Walls - Pearl wallcovering | Donghia",
+ "sampleSku": "DWDH-188025-Sample",
+ "rollSku": "DWDH-188025",
+ "catalog_dw_sku": "DWDH-188025",
+ "mfr_sku": "DG-20046.010",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Opaline Walls",
+ "cat_color": "Pearl",
+ "matchOk": true
+ },
+ {
+ "pid": "7793932992563",
+ "title": "Jumbo - Charcoal wallcovering | Donghia",
+ "sampleSku": "DWDH-188026-Sample",
+ "rollSku": "DWDH-188026",
+ "catalog_dw_sku": "DWDH-188026",
+ "mfr_sku": "DG-20059.029",
+ "price_trade": 59.9,
+ "rollRetail": 108.42,
+ "cat_pattern": "Jumbo",
+ "cat_color": "Charcoal",
+ "matchOk": true
+ },
+ {
+ "pid": "7793933189171",
+ "title": "Bullion - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188027-Sample",
+ "rollSku": "DWDH-188027",
+ "catalog_dw_sku": "DWDH-188027",
+ "mfr_sku": "P6021113.40",
+ "price_trade": 1079,
+ "rollRetail": 1952.94,
+ "cat_pattern": "Bullion",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793933353011",
+ "title": "Looks Like Raffia - Picnic Basket Straw wallcovering | Donghia",
+ "sampleSku": "DWDH-188028-Sample",
+ "rollSku": "DWDH-188028",
+ "catalog_dw_sku": "DWDH-188028",
+ "mfr_sku": "DG-0W425.008",
+ "price_trade": 40,
+ "rollRetail": 72.4,
+ "cat_pattern": "Looks Like Raffia",
+ "cat_color": "Picnic Basket Straw",
+ "matchOk": true
+ },
+ {
+ "pid": "7793933582387",
+ "title": "Blockbuster - Quartz wallcovering | Donghia",
+ "sampleSku": "DWDH-188029-Sample",
+ "rollSku": "DWDH-188029",
+ "catalog_dw_sku": "DWDH-188029",
+ "mfr_sku": "P6021121.116",
+ "price_trade": 269,
+ "rollRetail": 486.88,
+ "cat_pattern": "Blockbuster",
+ "cat_color": "Quartz",
+ "matchOk": true
+ },
+ {
+ "pid": "7793933910067",
+ "title": "Moonrise - Gilver wallcovering | Donghia",
+ "sampleSku": "DWDH-188030-Sample",
+ "rollSku": "DWDH-188030",
+ "catalog_dw_sku": "DWDH-188030",
+ "mfr_sku": "P6021120.4",
+ "price_trade": 1598,
+ "rollRetail": 2892.31,
+ "cat_pattern": "Moonrise",
+ "cat_color": "Gilver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934073907",
+ "title": "Desert Grass - White Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188031-Sample",
+ "rollSku": "DWDH-188031",
+ "catalog_dw_sku": "DWDH-188031",
+ "mfr_sku": "DG-20056.030",
+ "price_trade": 79,
+ "rollRetail": 142.99,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "White Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934139443",
+ "title": "Bamboozle - Oyster wallcovering | Donghia",
+ "sampleSku": "DWDH-188032-Sample",
+ "rollSku": "DWDH-188032",
+ "catalog_dw_sku": "DWDH-188032",
+ "mfr_sku": "DG-20057.009",
+ "price_trade": 49.5,
+ "rollRetail": 89.59,
+ "cat_pattern": "Bamboozle",
+ "cat_color": "Oyster",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934237747",
+ "title": "Courreges - Gloss White wallcovering | Donghia",
+ "sampleSku": "DWDH-188033-Sample",
+ "rollSku": "DWDH-188033",
+ "catalog_dw_sku": "DWDH-188033",
+ "mfr_sku": "P6021118.1",
+ "price_trade": 52.95,
+ "rollRetail": 95.84,
+ "cat_pattern": "Courreges",
+ "cat_color": "Gloss White",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934368819",
+ "title": "Aurora Walls - Pearl wallcovering | Donghia",
+ "sampleSku": "DWDH-188035-Sample",
+ "rollSku": "DWDH-188035",
+ "catalog_dw_sku": "DWDH-188035",
+ "mfr_sku": "DG-20047.010",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Aurora Walls",
+ "cat_color": "Pearl",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934434355",
+ "title": "Bamboozle Metallic - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188036-Sample",
+ "rollSku": "DWDH-188036",
+ "catalog_dw_sku": "DWDH-188036",
+ "mfr_sku": "DG-20058.003",
+ "price_trade": 29.95,
+ "rollRetail": 54.21,
+ "cat_pattern": "Bamboozle Metallic",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934499891",
+ "title": "W-Bark Cloth - Cloud wallcovering | Donghia",
+ "sampleSku": "DWDH-188037-Sample",
+ "rollSku": "DWDH-188037",
+ "catalog_dw_sku": "DWDH-188037",
+ "mfr_sku": "P6021100.11",
+ "price_trade": 798,
+ "rollRetail": 1444.34,
+ "cat_pattern": "W-Bark Cloth",
+ "cat_color": "Cloud",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934565427",
+ "title": "Opaline Walls - Latte wallcovering | Donghia",
+ "sampleSku": "DWDH-188038-Sample",
+ "rollSku": "DWDH-188038",
+ "catalog_dw_sku": "DWDH-188038",
+ "mfr_sku": "DG-20046.008",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Opaline Walls",
+ "cat_color": "Latte",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934630963",
+ "title": "Looks Like Raffia - Icebox Cream wallcovering | Donghia",
+ "sampleSku": "DWDH-188039-Sample",
+ "rollSku": "DWDH-188039",
+ "catalog_dw_sku": "DWDH-188039",
+ "mfr_sku": "DG-0W425.010",
+ "price_trade": 40,
+ "rollRetail": 72.4,
+ "cat_pattern": "Looks Like Raffia",
+ "cat_color": "Icebox Cream",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934696499",
+ "title": "Looks Like Grass - Beech wallcovering | Donghia",
+ "sampleSku": "DWDH-188040-Sample",
+ "rollSku": "DWDH-188040",
+ "catalog_dw_sku": "DWDH-188040",
+ "mfr_sku": "DG-09720.008",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Looks Like Grass",
+ "cat_color": "Beech",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934762035",
+ "title": "Linen Texture I - Natural wallcovering | Donghia",
+ "sampleSku": "DWDH-188041-Sample",
+ "rollSku": "DWDH-188041",
+ "catalog_dw_sku": "DWDH-188041",
+ "mfr_sku": "DG-09704.008",
+ "price_trade": 34.95,
+ "rollRetail": 63.26,
+ "cat_pattern": "Linen Texture I",
+ "cat_color": "Natural",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934794803",
+ "title": "Aurora Walls - Sky wallcovering | Donghia",
+ "sampleSku": "DWDH-188042-Sample",
+ "rollSku": "DWDH-188042",
+ "catalog_dw_sku": "DWDH-188042",
+ "mfr_sku": "DG-20047.002",
+ "price_trade": 15.95,
+ "rollRetail": 28.87,
+ "cat_pattern": "Aurora Walls",
+ "cat_color": "Sky",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934893107",
+ "title": "W-Bark Cloth - Noir wallcovering | Donghia",
+ "sampleSku": "DWDH-188043-Sample",
+ "rollSku": "DWDH-188043",
+ "catalog_dw_sku": "DWDH-188043",
+ "mfr_sku": "P6021100.81",
+ "price_trade": 798,
+ "rollRetail": 1444.34,
+ "cat_pattern": "W-Bark Cloth",
+ "cat_color": "Noir",
+ "matchOk": true
+ },
+ {
+ "pid": "7793934991411",
+ "title": "Reflector - Aluminum wallcovering | Donghia",
+ "sampleSku": "DWDH-188044-Sample",
+ "rollSku": "DWDH-188044",
+ "catalog_dw_sku": "DWDH-188044",
+ "mfr_sku": "P6021115.11",
+ "price_trade": 54.95,
+ "rollRetail": 99.46,
+ "cat_pattern": "Reflector",
+ "cat_color": "Aluminum",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935056947",
+ "title": "Opaline Walls - Cafe wallcovering | Donghia",
+ "sampleSku": "DWDH-188045-Sample",
+ "rollSku": "DWDH-188045",
+ "catalog_dw_sku": "DWDH-188045",
+ "mfr_sku": "DG-20046.018",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Opaline Walls",
+ "cat_color": "Cafe",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935122483",
+ "title": "Assay - Patina wallcovering | Donghia",
+ "sampleSku": "DWDH-188046-Sample",
+ "rollSku": "DWDH-188046",
+ "catalog_dw_sku": "DWDH-188046",
+ "mfr_sku": "P6021109.411",
+ "price_trade": 1571,
+ "rollRetail": 2843.44,
+ "cat_pattern": "Assay",
+ "cat_color": "Patina",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935188019",
+ "title": "Looks Like Tea Paper - Pyrite wallcovering | Donghia",
+ "sampleSku": "DWDH-188047-Sample",
+ "rollSku": "DWDH-188047",
+ "catalog_dw_sku": "DWDH-188047",
+ "mfr_sku": "DG-09716.013",
+ "price_trade": 54,
+ "rollRetail": 97.74,
+ "cat_pattern": "Looks Like Tea Paper",
+ "cat_color": "Pyrite",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935253555",
+ "title": "Metropolis - Bronze wallcovering | Donghia",
+ "sampleSku": "DWDH-188048-Sample",
+ "rollSku": "DWDH-188048",
+ "catalog_dw_sku": "DWDH-188048",
+ "mfr_sku": "P6021124.311",
+ "price_trade": 269,
+ "rollRetail": 486.88,
+ "cat_pattern": "Metropolis",
+ "cat_color": "Bronze",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935351859",
+ "title": "Blockbuster - Graphite wallcovering | Donghia",
+ "sampleSku": "DWDH-188049-Sample",
+ "rollSku": "DWDH-188049",
+ "catalog_dw_sku": "DWDH-188049",
+ "mfr_sku": "P6021121.21",
+ "price_trade": 269,
+ "rollRetail": 486.88,
+ "cat_pattern": "Blockbuster",
+ "cat_color": "Graphite",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935482931",
+ "title": "D Or - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188051-Sample",
+ "rollSku": "DWDH-188051",
+ "catalog_dw_sku": "DWDH-188051",
+ "mfr_sku": "P6021110.40",
+ "price_trade": 1571,
+ "rollRetail": 2843.44,
+ "cat_pattern": "D Or",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935548467",
+ "title": "Looks Like Etching - Mercury wallcovering | Donghia",
+ "sampleSku": "DWDH-188052-Sample",
+ "rollSku": "DWDH-188052",
+ "catalog_dw_sku": "DWDH-188052",
+ "mfr_sku": "DG-20023.009",
+ "price_trade": 52,
+ "rollRetail": 94.12,
+ "cat_pattern": "Looks Like Etching",
+ "cat_color": "Mercury",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935646771",
+ "title": "Prospector - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188053-Sample",
+ "rollSku": "DWDH-188053",
+ "catalog_dw_sku": "DWDH-188053",
+ "mfr_sku": "P6021112.40",
+ "price_trade": 1571,
+ "rollRetail": 2843.44,
+ "cat_pattern": "Prospector",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935712307",
+ "title": "Smoke And Mirrors - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188054-Sample",
+ "rollSku": "DWDH-188054",
+ "catalog_dw_sku": "DWDH-188054",
+ "mfr_sku": "DG-20060.003",
+ "price_trade": 49,
+ "rollRetail": 88.69,
+ "cat_pattern": "Smoke And Mirrors",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935777843",
+ "title": "Bamboozle Metallic - Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188055-Sample",
+ "rollSku": "DWDH-188055",
+ "catalog_dw_sku": "DWDH-188055",
+ "mfr_sku": "DG-20058.009",
+ "price_trade": 57,
+ "rollRetail": 103.17,
+ "cat_pattern": "Bamboozle Metallic",
+ "cat_color": "Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935843379",
+ "title": "Metropolis - Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188056-Sample",
+ "rollSku": "DWDH-188056",
+ "catalog_dw_sku": "DWDH-188056",
+ "mfr_sku": "P6021124.21",
+ "price_trade": 269,
+ "rollRetail": 486.88,
+ "cat_pattern": "Metropolis",
+ "cat_color": "Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935908915",
+ "title": "Blockbuster - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188057-Sample",
+ "rollSku": "DWDH-188057",
+ "catalog_dw_sku": "DWDH-188057",
+ "mfr_sku": "P6021121.4",
+ "price_trade": 269,
+ "rollRetail": 486.88,
+ "cat_pattern": "Blockbuster",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793935974451",
+ "title": "Looks Like Raffia - Wicker Brown wallcovering | Donghia",
+ "sampleSku": "DWDH-188058-Sample",
+ "rollSku": "DWDH-188058",
+ "catalog_dw_sku": "DWDH-188058",
+ "mfr_sku": "DG-0W425.018",
+ "price_trade": 40,
+ "rollRetail": 72.4,
+ "cat_pattern": "Looks Like Raffia",
+ "cat_color": "Wicker Brown",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936105523",
+ "title": "Desert Grass - Natural Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188060-Sample",
+ "rollSku": "DWDH-188060",
+ "catalog_dw_sku": "DWDH-188060",
+ "mfr_sku": "DG-20056.010",
+ "price_trade": 30.95,
+ "rollRetail": 56.02,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "Natural Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936138291",
+ "title": "Jumbo - Metallic wallcovering | Donghia",
+ "sampleSku": "DWDH-188061-Sample",
+ "rollSku": "DWDH-188061",
+ "catalog_dw_sku": "DWDH-188061",
+ "mfr_sku": "DG-20059.003",
+ "price_trade": 59.9,
+ "rollRetail": 108.42,
+ "cat_pattern": "Jumbo",
+ "cat_color": "Metallic",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936171059",
+ "title": "Aurora Walls - Bronze wallcovering | Donghia",
+ "sampleSku": "DWDH-188062-Sample",
+ "rollSku": "DWDH-188062",
+ "catalog_dw_sku": "DWDH-188062",
+ "mfr_sku": "DG-20047.028",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Aurora Walls",
+ "cat_color": "Bronze",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936203827",
+ "title": "W-Bark Cloth - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188063-Sample",
+ "rollSku": "DWDH-188063",
+ "catalog_dw_sku": "DWDH-188063",
+ "mfr_sku": "P6021100.4",
+ "price_trade": 798,
+ "rollRetail": 1444.34,
+ "cat_pattern": "W-Bark Cloth",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936236595",
+ "title": "Aurora Walls - Graphite wallcovering | Donghia",
+ "sampleSku": "DWDH-188064-Sample",
+ "rollSku": "DWDH-188064",
+ "catalog_dw_sku": "DWDH-188064",
+ "mfr_sku": "DG-20047.019",
+ "price_trade": 41,
+ "rollRetail": 74.21,
+ "cat_pattern": "Aurora Walls",
+ "cat_color": "Graphite",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936269363",
+ "title": "Desert Grass - Charcoal Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188065-Sample",
+ "rollSku": "DWDH-188065",
+ "catalog_dw_sku": "DWDH-188065",
+ "mfr_sku": "DG-20056.049",
+ "price_trade": 79,
+ "rollRetail": 142.99,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "Charcoal Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936302131",
+ "title": "Smoke And Mirrors - Oyster wallcovering | Donghia",
+ "sampleSku": "DWDH-188066-Sample",
+ "rollSku": "DWDH-188066",
+ "catalog_dw_sku": "DWDH-188066",
+ "mfr_sku": "DG-20060.019",
+ "price_trade": 10.95,
+ "rollRetail": 19.82,
+ "cat_pattern": "Smoke And Mirrors",
+ "cat_color": "Oyster",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936334899",
+ "title": "Desert Grass - Grey Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188067-Sample",
+ "rollSku": "DWDH-188067",
+ "catalog_dw_sku": "DWDH-188067",
+ "mfr_sku": "DG-20056.019",
+ "price_trade": 79,
+ "rollRetail": 142.99,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "Grey Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936367667",
+ "title": "Zerrin - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188068-Sample",
+ "rollSku": "DWDH-188068",
+ "catalog_dw_sku": "DWDH-188068",
+ "mfr_sku": "P6021111.40",
+ "price_trade": 1525,
+ "rollRetail": 2760.18,
+ "cat_pattern": "Zerrin",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936400435",
+ "title": "Summer Wall - Linen wallcovering | Donghia",
+ "sampleSku": "DWDH-188069-Sample",
+ "rollSku": "DWDH-188069",
+ "catalog_dw_sku": "DWDH-188069",
+ "mfr_sku": "DG-09700.018",
+ "price_trade": 34.95,
+ "rollRetail": 63.26,
+ "cat_pattern": "Summer Wall",
+ "cat_color": "Linen",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936465971",
+ "title": "Blockbuster - Mica wallcovering | Donghia",
+ "sampleSku": "DWDH-188070-Sample",
+ "rollSku": "DWDH-188070",
+ "catalog_dw_sku": "DWDH-188070",
+ "mfr_sku": "P6021121.11",
+ "price_trade": 269,
+ "rollRetail": 486.88,
+ "cat_pattern": "Blockbuster",
+ "cat_color": "Mica",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936531507",
+ "title": "Asset - Patina wallcovering | Donghia",
+ "sampleSku": "DWDH-188071-Sample",
+ "rollSku": "DWDH-188071",
+ "catalog_dw_sku": "DWDH-188071",
+ "mfr_sku": "P6021108.411",
+ "price_trade": 1797,
+ "rollRetail": 3252.49,
+ "cat_pattern": "Asset",
+ "cat_color": "Patina",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936597043",
+ "title": "Smoke And Mirrors - Blue wallcovering | Donghia",
+ "sampleSku": "DWDH-188072-Sample",
+ "rollSku": "DWDH-188072",
+ "catalog_dw_sku": "DWDH-188072",
+ "mfr_sku": "DG-20060.002",
+ "price_trade": 49,
+ "rollRetail": 88.69,
+ "cat_pattern": "Smoke And Mirrors",
+ "cat_color": "Blue",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936662579",
+ "title": "Desert Grass - Brown Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188073-Sample",
+ "rollSku": "DWDH-188073",
+ "catalog_dw_sku": "DWDH-188073",
+ "mfr_sku": "DG-20056.018",
+ "price_trade": 30.95,
+ "rollRetail": 56.02,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "Brown Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936760883",
+ "title": "Smoke And Mirrors - Blush wallcovering | Donghia",
+ "sampleSku": "DWDH-188075-Sample",
+ "rollSku": "DWDH-188075",
+ "catalog_dw_sku": "DWDH-188075",
+ "mfr_sku": "DG-20060.006",
+ "price_trade": 49,
+ "rollRetail": 88.69,
+ "cat_pattern": "Smoke And Mirrors",
+ "cat_color": "Blush",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936826419",
+ "title": "Outshine - Titanium wallcovering | Donghia",
+ "sampleSku": "DWDH-188076-Sample",
+ "rollSku": "DWDH-188076",
+ "catalog_dw_sku": "DWDH-188076",
+ "mfr_sku": "P6021102.011",
+ "price_trade": 52.95,
+ "rollRetail": 95.84,
+ "cat_pattern": "Outshine",
+ "cat_color": "Titanium",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936924723",
+ "title": "Marbleous - Bone wallcovering | Donghia",
+ "sampleSku": "DWDH-188077-Sample",
+ "rollSku": "DWDH-188077",
+ "catalog_dw_sku": "DWDH-188077",
+ "mfr_sku": "P6021122.11",
+ "price_trade": 193,
+ "rollRetail": 349.32,
+ "cat_pattern": "Marbleous",
+ "cat_color": "Bone",
+ "matchOk": true
+ },
+ {
+ "pid": "7793936990259",
+ "title": "W-Bark Cloth - Stone wallcovering | Donghia",
+ "sampleSku": "DWDH-188078-Sample",
+ "rollSku": "DWDH-188078",
+ "catalog_dw_sku": "DWDH-188078",
+ "mfr_sku": "P6021100.111",
+ "price_trade": 798,
+ "rollRetail": 1444.34,
+ "cat_pattern": "W-Bark Cloth",
+ "cat_color": "Stone",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937088563",
+ "title": "Smoke And Mirrors - Black&White wallcovering | Donghia",
+ "sampleSku": "DWDH-188079-Sample",
+ "rollSku": "DWDH-188079",
+ "catalog_dw_sku": "DWDH-188079",
+ "mfr_sku": "DG-20060.009",
+ "price_trade": 49,
+ "rollRetail": 88.69,
+ "cat_pattern": "Smoke And Mirrors",
+ "cat_color": "Black&White",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937121331",
+ "title": "Smoke And Mirrors - Grey wallcovering | Donghia",
+ "sampleSku": "DWDH-188080-Sample",
+ "rollSku": "DWDH-188080",
+ "catalog_dw_sku": "DWDH-188080",
+ "mfr_sku": "DG-20060.039",
+ "price_trade": 49,
+ "rollRetail": 88.69,
+ "cat_pattern": "Smoke And Mirrors",
+ "cat_color": "Grey",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937186867",
+ "title": "Silk Texture Ii - Natural wallcovering | Donghia",
+ "sampleSku": "DWDH-188081-Sample",
+ "rollSku": "DWDH-188081",
+ "catalog_dw_sku": "DWDH-188081",
+ "mfr_sku": "DG-09715.008",
+ "price_trade": 96,
+ "rollRetail": 173.76,
+ "cat_pattern": "Silk Texture Ii",
+ "cat_color": "Natural",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937252403",
+ "title": "Glow Up - Pearl wallcovering | Donghia",
+ "sampleSku": "DWDH-188082-Sample",
+ "rollSku": "DWDH-188082",
+ "catalog_dw_sku": "DWDH-188082",
+ "mfr_sku": "P6021123.1",
+ "price_trade": 265,
+ "rollRetail": 479.64,
+ "cat_pattern": "Glow Up",
+ "cat_color": "Pearl",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937416243",
+ "title": "Smoke And Mirrors - Green wallcovering | Donghia",
+ "sampleSku": "DWDH-188084-Sample",
+ "rollSku": "DWDH-188084",
+ "catalog_dw_sku": "DWDH-188084",
+ "mfr_sku": "DG-20060.004",
+ "price_trade": 49,
+ "rollRetail": 88.69,
+ "cat_pattern": "Smoke And Mirrors",
+ "cat_color": "Green",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937481779",
+ "title": "Looks Like Tea Paper - Gold Bullion wallcovering | Donghia",
+ "sampleSku": "DWDH-188085-Sample",
+ "rollSku": "DWDH-188085",
+ "catalog_dw_sku": "DWDH-188085",
+ "mfr_sku": "DG-09716.003",
+ "price_trade": 54,
+ "rollRetail": 97.74,
+ "cat_pattern": "Looks Like Tea Paper",
+ "cat_color": "Gold Bullion",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937547315",
+ "title": "Smoke And Mirrors - Heather Grey wallcovering | Donghia",
+ "sampleSku": "DWDH-188086-Sample",
+ "rollSku": "DWDH-188086",
+ "catalog_dw_sku": "DWDH-188086",
+ "mfr_sku": "DG-20060.029",
+ "price_trade": 11.95,
+ "rollRetail": 21.63,
+ "cat_pattern": "Smoke And Mirrors",
+ "cat_color": "Heather Grey",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937612851",
+ "title": "Jumbo - Platinum wallcovering | Donghia",
+ "sampleSku": "DWDH-188087-Sample",
+ "rollSku": "DWDH-188087",
+ "catalog_dw_sku": "DWDH-188087",
+ "mfr_sku": "DG-20059.009",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Jumbo",
+ "cat_color": "Platinum",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937678387",
+ "title": "Linen Texture Ix - Natural wallcovering | Donghia",
+ "sampleSku": "DWDH-188088-Sample",
+ "rollSku": "DWDH-188088",
+ "catalog_dw_sku": "DWDH-188088",
+ "mfr_sku": "DG-09712.008",
+ "price_trade": 49.95,
+ "rollRetail": 90.41,
+ "cat_pattern": "Linen Texture Ix",
+ "cat_color": "Natural",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937743923",
+ "title": "Desert Grass - Natural Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188089-Sample",
+ "rollSku": "DWDH-188089",
+ "catalog_dw_sku": "DWDH-188089",
+ "mfr_sku": "DG-20056.020",
+ "price_trade": 39.95,
+ "rollRetail": 72.31,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "Natural Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937809459",
+ "title": "Bamboozle - White wallcovering | Donghia",
+ "sampleSku": "DWDH-188090-Sample",
+ "rollSku": "DWDH-188090",
+ "catalog_dw_sku": "DWDH-188090",
+ "mfr_sku": "DG-20057.010",
+ "price_trade": 15.95,
+ "rollRetail": 28.87,
+ "cat_pattern": "Bamboozle",
+ "cat_color": "White",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937874995",
+ "title": "Desert Grass - Red Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188091-Sample",
+ "rollSku": "DWDH-188091",
+ "catalog_dw_sku": "DWDH-188091",
+ "mfr_sku": "DG-20056.001",
+ "price_trade": 30.95,
+ "rollRetail": 56.02,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "Red Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937907763",
+ "title": "Bamboozle - Tan wallcovering | Donghia",
+ "sampleSku": "DWDH-188092-Sample",
+ "rollSku": "DWDH-188092",
+ "catalog_dw_sku": "DWDH-188092",
+ "mfr_sku": "DG-20057.008",
+ "price_trade": 49.5,
+ "rollRetail": 89.59,
+ "cat_pattern": "Bamboozle",
+ "cat_color": "Tan",
+ "matchOk": true
+ },
+ {
+ "pid": "7793937973299",
+ "title": "Desert Grass - Blush Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188093-Sample",
+ "rollSku": "DWDH-188093",
+ "catalog_dw_sku": "DWDH-188093",
+ "mfr_sku": "DG-20056.016",
+ "price_trade": 39.95,
+ "rollRetail": 72.31,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "Blush Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938006067",
+ "title": "Cavalry Walls - Lee wallcovering | Donghia",
+ "sampleSku": "DWDH-188094-Sample",
+ "rollSku": "DWDH-188094",
+ "catalog_dw_sku": "DWDH-188094",
+ "mfr_sku": "DG-20030.010",
+ "price_trade": 54.95,
+ "rollRetail": 99.46,
+ "cat_pattern": "Cavalry Walls",
+ "cat_color": "Lee",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938038835",
+ "title": "Desert Grass - White Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188095-Sample",
+ "rollSku": "DWDH-188095",
+ "catalog_dw_sku": "DWDH-188095",
+ "mfr_sku": "DG-20056.040",
+ "price_trade": 39.95,
+ "rollRetail": 72.31,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "White Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938071603",
+ "title": "Marbleous - Fossil wallcovering | Donghia",
+ "sampleSku": "DWDH-188096-Sample",
+ "rollSku": "DWDH-188096",
+ "catalog_dw_sku": "DWDH-188096",
+ "mfr_sku": "P6021122.16",
+ "price_trade": 193,
+ "rollRetail": 349.32,
+ "cat_pattern": "Marbleous",
+ "cat_color": "Fossil",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938104371",
+ "title": "Glow Up - Dove wallcovering | Donghia",
+ "sampleSku": "DWDH-188097-Sample",
+ "rollSku": "DWDH-188097",
+ "catalog_dw_sku": "DWDH-188097",
+ "mfr_sku": "P6021123.106",
+ "price_trade": 265,
+ "rollRetail": 479.64,
+ "cat_pattern": "Glow Up",
+ "cat_color": "Dove",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938169907",
+ "title": "Marbleous - Mineral wallcovering | Donghia",
+ "sampleSku": "DWDH-188098-Sample",
+ "rollSku": "DWDH-188098",
+ "catalog_dw_sku": "DWDH-188098",
+ "mfr_sku": "P6021122.21",
+ "price_trade": 193,
+ "rollRetail": 349.32,
+ "cat_pattern": "Marbleous",
+ "cat_color": "Mineral",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938235443",
+ "title": "Glow Up - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188099-Sample",
+ "rollSku": "DWDH-188099",
+ "catalog_dw_sku": "DWDH-188099",
+ "mfr_sku": "P6021123.4",
+ "price_trade": 265,
+ "rollRetail": 479.64,
+ "cat_pattern": "Glow Up",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938268211",
+ "title": "Looks Like Tea Paper - Opaline wallcovering | Donghia",
+ "sampleSku": "DWDH-188100-Sample",
+ "rollSku": "DWDH-188100",
+ "catalog_dw_sku": "DWDH-188100",
+ "mfr_sku": "DG-09716.010",
+ "price_trade": 54,
+ "rollRetail": 97.74,
+ "cat_pattern": "Looks Like Tea Paper",
+ "cat_color": "Opaline",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938300979",
+ "title": "Shimmer Walls - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188101-Sample",
+ "rollSku": "DWDH-188101",
+ "catalog_dw_sku": "DWDH-188101",
+ "mfr_sku": "DG-20012.003",
+ "price_trade": 49.95,
+ "rollRetail": 90.41,
+ "cat_pattern": "Shimmer Walls",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938366515",
+ "title": "Linen Texture Viii - Bleached wallcovering | Donghia",
+ "sampleSku": "DWDH-188102-Sample",
+ "rollSku": "DWDH-188102",
+ "catalog_dw_sku": "DWDH-188102",
+ "mfr_sku": "DG-09711.010",
+ "price_trade": 49.95,
+ "rollRetail": 90.41,
+ "cat_pattern": "Linen Texture Viii",
+ "cat_color": "Bleached",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938432051",
+ "title": "Glow Up - Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188103-Sample",
+ "rollSku": "DWDH-188103",
+ "catalog_dw_sku": "DWDH-188103",
+ "mfr_sku": "P6021123.11",
+ "price_trade": 265,
+ "rollRetail": 479.64,
+ "cat_pattern": "Glow Up",
+ "cat_color": "Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938497587",
+ "title": "Shimmer Walls - Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188104-Sample",
+ "rollSku": "DWDH-188104",
+ "catalog_dw_sku": "DWDH-188104",
+ "mfr_sku": "DG-20012.009",
+ "price_trade": 49.95,
+ "rollRetail": 90.41,
+ "cat_pattern": "Shimmer Walls",
+ "cat_color": "Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938563123",
+ "title": "Glow Up - Flint wallcovering | Donghia",
+ "sampleSku": "DWDH-188105-Sample",
+ "rollSku": "DWDH-188105",
+ "catalog_dw_sku": "DWDH-188105",
+ "mfr_sku": "P6021123.21",
+ "price_trade": 265,
+ "rollRetail": 479.64,
+ "cat_pattern": "Glow Up",
+ "cat_color": "Flint",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938628659",
+ "title": "Bamboozle - Taupe wallcovering | Donghia",
+ "sampleSku": "DWDH-188106-Sample",
+ "rollSku": "DWDH-188106",
+ "catalog_dw_sku": "DWDH-188106",
+ "mfr_sku": "DG-20057.018",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Bamboozle",
+ "cat_color": "Taupe",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938694195",
+ "title": "Opaline Walls - Charcoal wallcovering | Donghia",
+ "sampleSku": "DWDH-188107-Sample",
+ "rollSku": "DWDH-188107",
+ "catalog_dw_sku": "DWDH-188107",
+ "mfr_sku": "DG-20046.019",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Opaline Walls",
+ "cat_color": "Charcoal",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938726963",
+ "title": "Cavalry Walls - Grant wallcovering | Donghia",
+ "sampleSku": "DWDH-188108-Sample",
+ "rollSku": "DWDH-188108",
+ "catalog_dw_sku": "DWDH-188108",
+ "mfr_sku": "DG-20030.002",
+ "price_trade": 79.95,
+ "rollRetail": 144.71,
+ "cat_pattern": "Cavalry Walls",
+ "cat_color": "Grant",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938792499",
+ "title": "Museum Walls - Natural wallcovering | Donghia",
+ "sampleSku": "DWDH-188109-Sample",
+ "rollSku": "DWDH-188109",
+ "catalog_dw_sku": "DWDH-188109",
+ "mfr_sku": "DG-09702.008",
+ "price_trade": 44.95,
+ "rollRetail": 81.36,
+ "cat_pattern": "Museum Walls",
+ "cat_color": "Natural",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938858035",
+ "title": "Looks Like Metal - Titanium wallcovering | Donghia",
+ "sampleSku": "DWDH-188110-Sample",
+ "rollSku": "DWDH-188110",
+ "catalog_dw_sku": "DWDH-188110",
+ "mfr_sku": "DG-20024.019",
+ "price_trade": 24.45,
+ "rollRetail": 44.25,
+ "cat_pattern": "Looks Like Metal",
+ "cat_color": "Titanium",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938923571",
+ "title": "Gidget - White wallcovering | Donghia",
+ "sampleSku": "DWDH-188111-Sample",
+ "rollSku": "DWDH-188111",
+ "catalog_dw_sku": "DWDH-188111",
+ "mfr_sku": "DG-20031.030",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "White",
+ "matchOk": true
+ },
+ {
+ "pid": "7793938989107",
+ "title": "Russian Roulette - Rose Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188112-Sample",
+ "rollSku": "DWDH-188112",
+ "catalog_dw_sku": "DWDH-188112",
+ "mfr_sku": "DG-20033.009",
+ "price_trade": 875,
+ "rollRetail": 1583.71,
+ "cat_pattern": "Russian Roulette",
+ "cat_color": "Rose Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939054643",
+ "title": "Summer Wall - Golden wallcovering | Donghia",
+ "sampleSku": "DWDH-188113-Sample",
+ "rollSku": "DWDH-188113",
+ "catalog_dw_sku": "DWDH-188113",
+ "mfr_sku": "DG-09700.003",
+ "price_trade": 34.95,
+ "rollRetail": 63.26,
+ "cat_pattern": "Summer Wall",
+ "cat_color": "Golden",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939120179",
+ "title": "Russian Roulette - White Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188114-Sample",
+ "rollSku": "DWDH-188114",
+ "catalog_dw_sku": "DWDH-188114",
+ "mfr_sku": "DG-20033.003",
+ "price_trade": 875,
+ "rollRetail": 1583.71,
+ "cat_pattern": "Russian Roulette",
+ "cat_color": "White Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939185715",
+ "title": "Linen Texture I - Bleached wallcovering | Donghia",
+ "sampleSku": "DWDH-188115-Sample",
+ "rollSku": "DWDH-188115",
+ "catalog_dw_sku": "DWDH-188115",
+ "mfr_sku": "DG-09704.010",
+ "price_trade": 54.95,
+ "rollRetail": 99.46,
+ "cat_pattern": "Linen Texture I",
+ "cat_color": "Bleached",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939218483",
+ "title": "Looks Like Grass - Nutmeg wallcovering | Donghia",
+ "sampleSku": "DWDH-188116-Sample",
+ "rollSku": "DWDH-188116",
+ "catalog_dw_sku": "DWDH-188116",
+ "mfr_sku": "DG-09720.018",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Looks Like Grass",
+ "cat_color": "Nutmeg",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939251251",
+ "title": "Russian Roulette - Bronze wallcovering | Donghia",
+ "sampleSku": "DWDH-188117-Sample",
+ "rollSku": "DWDH-188117",
+ "catalog_dw_sku": "DWDH-188117",
+ "mfr_sku": "DG-20033.008",
+ "price_trade": 875,
+ "rollRetail": 1583.71,
+ "cat_pattern": "Russian Roulette",
+ "cat_color": "Bronze",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939284019",
+ "title": "Maestro Walls - Robin wallcovering | Donghia",
+ "sampleSku": "DWDH-188118-Sample",
+ "rollSku": "DWDH-188118",
+ "catalog_dw_sku": "DWDH-188118",
+ "mfr_sku": "DG-20013.002",
+ "price_trade": 49.95,
+ "rollRetail": 90.41,
+ "cat_pattern": "Maestro Walls",
+ "cat_color": "Robin",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939316787",
+ "title": "Russian Roulette - Platinum wallcovering | Donghia",
+ "sampleSku": "DWDH-188119-Sample",
+ "rollSku": "DWDH-188119",
+ "catalog_dw_sku": "DWDH-188119",
+ "mfr_sku": "DG-20033.010",
+ "price_trade": 875,
+ "rollRetail": 1583.71,
+ "cat_pattern": "Russian Roulette",
+ "cat_color": "Platinum",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939349555",
+ "title": "Looks Like Grass - Laurel wallcovering | Donghia",
+ "sampleSku": "DWDH-188120-Sample",
+ "rollSku": "DWDH-188120",
+ "catalog_dw_sku": "DWDH-188120",
+ "mfr_sku": "DG-09720.004",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Looks Like Grass",
+ "cat_color": "Laurel",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939382323",
+ "title": "Gold Leaf - Gold wallcovering | Donghia",
+ "sampleSku": "DWDH-188122-Sample",
+ "rollSku": "DWDH-188122",
+ "catalog_dw_sku": "DWDH-188122",
+ "mfr_sku": "DG-0G905.003",
+ "price_trade": 399.95,
+ "rollRetail": 723.89,
+ "cat_pattern": "Gold Leaf",
+ "cat_color": "Gold",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939415091",
+ "title": "Gallery Walls - Hemp wallcovering | Donghia",
+ "sampleSku": "DWDH-188123-Sample",
+ "rollSku": "DWDH-188123",
+ "catalog_dw_sku": "DWDH-188123",
+ "mfr_sku": "DG-09703.008",
+ "price_trade": 44.95,
+ "rollRetail": 81.36,
+ "cat_pattern": "Gallery Walls",
+ "cat_color": "Hemp",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939447859",
+ "title": "Looks Like Tea Paper - Mercury wallcovering | Donghia",
+ "sampleSku": "DWDH-188124-Sample",
+ "rollSku": "DWDH-188124",
+ "catalog_dw_sku": "DWDH-188124",
+ "mfr_sku": "DG-09716.009",
+ "price_trade": 29.95,
+ "rollRetail": 54.21,
+ "cat_pattern": "Looks Like Tea Paper",
+ "cat_color": "Mercury",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939513395",
+ "title": "Looks Like Tea Paper - Antimonium wallcovering | Donghia",
+ "sampleSku": "DWDH-188125-Sample",
+ "rollSku": "DWDH-188125",
+ "catalog_dw_sku": "DWDH-188125",
+ "mfr_sku": "DG-09716.006",
+ "price_trade": 29.95,
+ "rollRetail": 54.21,
+ "cat_pattern": "Looks Like Tea Paper",
+ "cat_color": "Antimonium",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939546163",
+ "title": "Hemp Iii - Pale Green wallcovering | Donghia",
+ "sampleSku": "DWDH-188126-Sample",
+ "rollSku": "DWDH-188126",
+ "catalog_dw_sku": "DWDH-188126",
+ "mfr_sku": "DG-0G972.004",
+ "price_trade": 179.95,
+ "rollRetail": 325.7,
+ "cat_pattern": "Hemp Iii",
+ "cat_color": "Pale Green",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939578931",
+ "title": "Hemp Ii - Golden wallcovering | Donghia",
+ "sampleSku": "DWDH-188127-Sample",
+ "rollSku": "DWDH-188127",
+ "catalog_dw_sku": "DWDH-188127",
+ "mfr_sku": "DG-0G971.003",
+ "price_trade": 154.95,
+ "rollRetail": 280.45,
+ "cat_pattern": "Hemp Ii",
+ "cat_color": "Golden",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939611699",
+ "title": "Hemp Ii - Metallic Blue wallcovering | Donghia",
+ "sampleSku": "DWDH-188128-Sample",
+ "rollSku": "DWDH-188128",
+ "catalog_dw_sku": "DWDH-188128",
+ "mfr_sku": "DG-0G971.002",
+ "price_trade": 154.95,
+ "rollRetail": 280.45,
+ "cat_pattern": "Hemp Ii",
+ "cat_color": "Metallic Blue",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939677235",
+ "title": "Daybreak Walls - Wheat wallcovering | Donghia",
+ "sampleSku": "DWDH-188130-Sample",
+ "rollSku": "DWDH-188130",
+ "catalog_dw_sku": "DWDH-188130",
+ "mfr_sku": "DG-20048.003",
+ "price_trade": 135,
+ "rollRetail": 244.34,
+ "cat_pattern": "Daybreak Walls",
+ "cat_color": "Wheat",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939710003",
+ "title": "Hemp I - Spring Green wallcovering | Donghia",
+ "sampleSku": "DWDH-188131-Sample",
+ "rollSku": "DWDH-188131",
+ "catalog_dw_sku": "DWDH-188131",
+ "mfr_sku": "DG-0G970.014",
+ "price_trade": 154.95,
+ "rollRetail": 280.45,
+ "cat_pattern": "Hemp I",
+ "cat_color": "Spring Green",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939742771",
+ "title": "Beside You - Pewter wallcovering | Donghia",
+ "sampleSku": "DWDH-188132-Sample",
+ "rollSku": "DWDH-188132",
+ "catalog_dw_sku": "DWDH-188132",
+ "mfr_sku": "DG-20036.008",
+ "price_trade": 389.95,
+ "rollRetail": 705.79,
+ "cat_pattern": "Beside You",
+ "cat_color": "Pewter",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939808307",
+ "title": "Gidget - Dusk wallcovering | Donghia",
+ "sampleSku": "DWDH-188133-Sample",
+ "rollSku": "DWDH-188133",
+ "catalog_dw_sku": "DWDH-188133",
+ "mfr_sku": "DG-20031.032",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Dusk",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939873843",
+ "title": "Gidget - Cobalt wallcovering | Donghia",
+ "sampleSku": "DWDH-188134-Sample",
+ "rollSku": "DWDH-188134",
+ "catalog_dw_sku": "DWDH-188134",
+ "mfr_sku": "DG-20031.022",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Cobalt",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939939379",
+ "title": "Maestro Walls - Paprika wallcovering | Donghia",
+ "sampleSku": "DWDH-188135-Sample",
+ "rollSku": "DWDH-188135",
+ "catalog_dw_sku": "DWDH-188135",
+ "mfr_sku": "DG-20013.001",
+ "price_trade": 49.95,
+ "rollRetail": 90.41,
+ "cat_pattern": "Maestro Walls",
+ "cat_color": "Paprika",
+ "matchOk": true
+ },
+ {
+ "pid": "7793939972147",
+ "title": "Linen Texture V - Bleached wallcovering | Donghia",
+ "sampleSku": "DWDH-188136-Sample",
+ "rollSku": "DWDH-188136",
+ "catalog_dw_sku": "DWDH-188136",
+ "mfr_sku": "DG-09708.010",
+ "price_trade": 59.95,
+ "rollRetail": 108.51,
+ "cat_pattern": "Linen Texture V",
+ "cat_color": "Bleached",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940037683",
+ "title": "Linen Texture Iv - Bleached wallcovering | Donghia",
+ "sampleSku": "DWDH-188137-Sample",
+ "rollSku": "DWDH-188137",
+ "catalog_dw_sku": "DWDH-188137",
+ "mfr_sku": "DG-09707.010",
+ "price_trade": 64.95,
+ "rollRetail": 117.56,
+ "cat_pattern": "Linen Texture Iv",
+ "cat_color": "Bleached",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940103219",
+ "title": "Linen Texture Iv - Natural wallcovering | Donghia",
+ "sampleSku": "DWDH-188138-Sample",
+ "rollSku": "DWDH-188138",
+ "catalog_dw_sku": "DWDH-188138",
+ "mfr_sku": "DG-09707.008",
+ "price_trade": 64.95,
+ "rollRetail": 117.56,
+ "cat_pattern": "Linen Texture Iv",
+ "cat_color": "Natural",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940168755",
+ "title": "Linen Texture Ii - Natural wallcovering | Donghia",
+ "sampleSku": "DWDH-188139-Sample",
+ "rollSku": "DWDH-188139",
+ "catalog_dw_sku": "DWDH-188139",
+ "mfr_sku": "DG-09705.008",
+ "price_trade": 39.95,
+ "rollRetail": 72.31,
+ "cat_pattern": "Linen Texture Ii",
+ "cat_color": "Natural",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940234291",
+ "title": "Linen Texture Iii - Natural wallcovering | Donghia",
+ "sampleSku": "DWDH-188141-Sample",
+ "rollSku": "DWDH-188141",
+ "catalog_dw_sku": "DWDH-188141",
+ "mfr_sku": "DG-09706.008",
+ "price_trade": 34.95,
+ "rollRetail": 63.26,
+ "cat_pattern": "Linen Texture Iii",
+ "cat_color": "Natural",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940299827",
+ "title": "Effervescent Walls - White wallcovering | Donghia",
+ "sampleSku": "DWDH-188142-Sample",
+ "rollSku": "DWDH-188142",
+ "catalog_dw_sku": "DWDH-188142",
+ "mfr_sku": "DG-20051.010",
+ "price_trade": 835,
+ "rollRetail": 1511.31,
+ "cat_pattern": "Effervescent Walls",
+ "cat_color": "White",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940365363",
+ "title": "Precious Time - Titanium wallcovering | Donghia",
+ "sampleSku": "DWDH-188143-Sample",
+ "rollSku": "DWDH-188143",
+ "catalog_dw_sku": "DWDH-188143",
+ "mfr_sku": "DG-20034.018",
+ "price_trade": 349.95,
+ "rollRetail": 633.39,
+ "cat_pattern": "Precious Time",
+ "cat_color": "Titanium",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940463667",
+ "title": "Desert Grass - Fog Silver wallcovering | Donghia",
+ "sampleSku": "DWDH-188144-Sample",
+ "rollSku": "DWDH-188144",
+ "catalog_dw_sku": "DWDH-188144",
+ "mfr_sku": "DG-20056.050",
+ "price_trade": 39.95,
+ "rollRetail": 72.31,
+ "cat_pattern": "Desert Grass",
+ "cat_color": "Fog Silver",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940594739",
+ "title": "Hemp I - Khaki wallcovering | Donghia",
+ "sampleSku": "DWDH-188150-Sample",
+ "rollSku": "DWDH-188150",
+ "catalog_dw_sku": "DWDH-188150",
+ "mfr_sku": "DG-0G970.028",
+ "price_trade": 154.95,
+ "rollRetail": 280.45,
+ "cat_pattern": "Hemp I",
+ "cat_color": "Khaki",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940660275",
+ "title": "Hemp I - Sea Foam wallcovering | Donghia",
+ "sampleSku": "DWDH-188151-Sample",
+ "rollSku": "DWDH-188151",
+ "catalog_dw_sku": "DWDH-188151",
+ "mfr_sku": "DG-0G970.024",
+ "price_trade": 154.95,
+ "rollRetail": 280.45,
+ "cat_pattern": "Hemp I",
+ "cat_color": "Sea Foam",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940791347",
+ "title": "Hemp I - French Vanilla wallcovering | Donghia",
+ "sampleSku": "DWDH-188153-Sample",
+ "rollSku": "DWDH-188153",
+ "catalog_dw_sku": "DWDH-188153",
+ "mfr_sku": "DG-0G970.010",
+ "price_trade": 154.95,
+ "rollRetail": 280.45,
+ "cat_pattern": "Hemp I",
+ "cat_color": "French Vanilla",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940824115",
+ "title": "Hemp I - Apricot wallcovering | Donghia",
+ "sampleSku": "DWDH-188154-Sample",
+ "rollSku": "DWDH-188154",
+ "catalog_dw_sku": "DWDH-188154",
+ "mfr_sku": "DG-0G970.005",
+ "price_trade": 154.95,
+ "rollRetail": 280.45,
+ "cat_pattern": "Hemp I",
+ "cat_color": "Apricot",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940889651",
+ "title": "Hemp I - Red wallcovering | Donghia",
+ "sampleSku": "DWDH-188155-Sample",
+ "rollSku": "DWDH-188155",
+ "catalog_dw_sku": "DWDH-188155",
+ "mfr_sku": "DG-0G970.001",
+ "price_trade": 154.95,
+ "rollRetail": 280.45,
+ "cat_pattern": "Hemp I",
+ "cat_color": "Red",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940955187",
+ "title": "Cavalry Walls - Ashby wallcovering | Donghia",
+ "sampleSku": "DWDH-188156-Sample",
+ "rollSku": "DWDH-188156",
+ "catalog_dw_sku": "DWDH-188156",
+ "mfr_sku": "DG-20030.008",
+ "price_trade": 79.95,
+ "rollRetail": 144.71,
+ "cat_pattern": "Cavalry Walls",
+ "cat_color": "Ashby",
+ "matchOk": true
+ },
+ {
+ "pid": "7793940987955",
+ "title": "Gidget - Blue wallcovering | Donghia",
+ "sampleSku": "DWDH-188157-Sample",
+ "rollSku": "DWDH-188157",
+ "catalog_dw_sku": "DWDH-188157",
+ "mfr_sku": "DG-20031.052",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Blue",
+ "matchOk": true
+ },
+ {
+ "pid": "7793941053491",
+ "title": "Gidget - Sea wallcovering | Donghia",
+ "sampleSku": "DWDH-188158-Sample",
+ "rollSku": "DWDH-188158",
+ "catalog_dw_sku": "DWDH-188158",
+ "mfr_sku": "DG-20031.044",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Sea",
+ "matchOk": true
+ },
+ {
+ "pid": "7793941119027",
+ "title": "Gidget - Mint wallcovering | Donghia",
+ "sampleSku": "DWDH-188159-Sample",
+ "rollSku": "DWDH-188159",
+ "catalog_dw_sku": "DWDH-188159",
+ "mfr_sku": "DG-20031.034",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Mint",
+ "matchOk": true
+ },
+ {
+ "pid": "7793941217331",
+ "title": "Gidget - Turquoise wallcovering | Donghia",
+ "sampleSku": "DWDH-188160-Sample",
+ "rollSku": "DWDH-188160",
+ "catalog_dw_sku": "DWDH-188160",
+ "mfr_sku": "DG-20031.024",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Turquoise",
+ "matchOk": true
+ },
+ {
+ "pid": "7793941282867",
+ "title": "Gidget - Sand wallcovering | Donghia",
+ "sampleSku": "DWDH-188161-Sample",
+ "rollSku": "DWDH-188161",
+ "catalog_dw_sku": "DWDH-188161",
+ "mfr_sku": "DG-20031.020",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Sand",
+ "matchOk": true
+ },
+ {
+ "pid": "7793941348403",
+ "title": "Gidget - Cream wallcovering | Donghia",
+ "sampleSku": "DWDH-188162-Sample",
+ "rollSku": "DWDH-188162",
+ "catalog_dw_sku": "DWDH-188162",
+ "mfr_sku": "DG-20031.010",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Cream",
+ "matchOk": true
+ },
+ {
+ "pid": "7793941446707",
+ "title": "Gidget - Blush wallcovering | Donghia",
+ "sampleSku": "DWDH-188163-Sample",
+ "rollSku": "DWDH-188163",
+ "catalog_dw_sku": "DWDH-188163",
+ "mfr_sku": "DG-20031.006",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Blush",
+ "matchOk": true
+ },
+ {
+ "pid": "7793941512243",
+ "title": "Gidget - Sky wallcovering | Donghia",
+ "sampleSku": "DWDH-188164-Sample",
+ "rollSku": "DWDH-188164",
+ "catalog_dw_sku": "DWDH-188164",
+ "mfr_sku": "DG-20031.002",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Sky",
+ "matchOk": true
+ },
+ {
+ "pid": "7793941577779",
+ "title": "Gidget - Red wallcovering | Donghia",
+ "sampleSku": "DWDH-188165-Sample",
+ "rollSku": "DWDH-188165",
+ "catalog_dw_sku": "DWDH-188165",
+ "mfr_sku": "DG-20031.001",
+ "price_trade": 24.95,
+ "rollRetail": 45.16,
+ "cat_pattern": "Gidget",
+ "cat_color": "Red",
+ "matchOk": true
+ },
+ {
+ "pid": "7793941610547",
+ "title": "Gallery Walls - White wallcovering | Donghia",
+ "sampleSku": "DWDH-188166-Sample",
+ "rollSku": "DWDH-188166",
+ "catalog_dw_sku": "DWDH-188166",
+ "mfr_sku": "DG-09703.010",
+ "price_trade": 44.95,
+ "rollRetail": 81.36,
+ "cat_pattern": "Gallery Walls",
+ "cat_color": "White",
+ "matchOk": true
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tk10978-donghia/data/skips.json b/tk10978-donghia/data/skips.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/tk10978-donghia/data/skips.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/tk10978-donghia/repair.mjs b/tk10978-donghia/repair.mjs
new file mode 100644
index 0000000..4cb49ca
--- /dev/null
+++ b/tk10978-donghia/repair.mjs
@@ -0,0 +1,124 @@
+#!/usr/bin/env node
+// TK-10978 — Scalamandre ADD-ROLL recovery (customer-facing Shopify write).
+//
+// Scalamandre "unbuyable" products are GENUINELY sample-only: a single variant
+// option1='Sample' @ $4.25 (live-confirmed 3/3, then again here per product).
+// Recovery = ADD a sellable "Sold Per Roll" variant at reconciled retail, and
+// LEAVE the $4.25 Sample untouched. (Distinct from the WG RR-defect, which
+// RELABELED a mispriced lone Sample. Here we ADD — we never touch the sample.)
+//
+// VERIFY-BEFORE-ACT (per product, live, at write time — never trust the plan):
+// 1. GET product live; must be exactly 1 variant.
+// 2. lone variant option1 == 'Sample' (case-insensitive).
+// 3. lone variant price <= 4.50 (genuine sample; NOT the RR-defect).
+// 4. lone variant SKU == expected sampleSku from the plan (right product).
+// 5. derived rollSku not already present as any variant SKU (idempotent / no double-add).
+// 6. match sanity: plan row's matchOk true (title pattern+color == catalog).
+// 7. SANITY-RANGE on retail: 10 < rollRetail < 10000 (guard NULL/decimal mispricing).
+// Any guard fail -> SKIP + log; never a partial/ambiguous write.
+//
+// Recovery action: POST a new variant {option1:'Sold Per Roll', price:rollRetail,
+// sku:rollSku, inventory_policy:'deny', inventory_management:'shopify'}.
+// Reversibility FIRST: prestate.jsonl written BEFORE the write; undo = DELETE the
+// added roll variant (the sample is untouched). Ledgered per product.
+//
+// Usage: node repair.mjs [--only=<pid>] [--limit=N] [--live] default = dry-run.
+import { readFileSync, appendFileSync, writeFileSync, mkdirSync } from 'node:fs';
+import { execSync } from 'child_process';
+
+const TOKEN = execSync(`grep -E '^SHOPIFY_ADMIN_TOKEN=' ${process.env.HOME}/Projects/secrets-manager/.env|cut -d= -f2-`).toString().trim();
+const DOMAIN = 'designer-laboratory-sandbox.myshopify.com', API = '2024-10';
+const REST = `https://${DOMAIN}/admin/api/${API}`;
+const hdr = { 'X-Shopify-Access-Token': TOKEN, 'Content-Type': 'application/json' };
+const LIVE = process.argv.includes('--live');
+const ONLY = (process.argv.find(a => a.startsWith('--only=')) || '').split('=')[1];
+const LIMIT = Number((process.argv.find(a => a.startsWith('--limit=')) || '').split('=')[1] || 0);
+
+const dataDir = new URL('./data', import.meta.url).pathname; mkdirSync(dataDir, { recursive: true });
+const PRESTATE = `${dataDir}/prestate.jsonl`;
+const SKIPS = `${dataDir}/skips.json`;
+const LEDGER = `${process.env.HOME}/.claude/yolo-queue/executed-reversible/ledger.jsonl`;
+
+const { plan } = JSON.parse(readFileSync(`${dataDir}/plan.json`, 'utf8'));
+let list = plan;
+if (ONLY) list = list.filter(p => String(p.pid) === String(ONLY));
+if (LIMIT > 0) list = list.slice(0, LIMIT);
+
+const sleep = ms => new Promise(r => setTimeout(r, ms));
+async function api(path, opts = {}) {
+ for (let a = 0; a < 6; a++) {
+ const res = await fetch(`${REST}${path}`, { headers: hdr, ...opts });
+ if (res.status === 429) { await sleep(2500); continue; }
+ const t = await res.text(); let j; try { j = JSON.parse(t); } catch { j = { _raw: t }; }
+ return { status: res.status, json: j };
+ }
+ return { status: 429, json: {} };
+}
+
+let acted = 0, skipped = 0, failed = 0;
+const skips = [];
+for (const c of list) {
+ const pid = c.pid;
+
+ // GUARD 6 (from plan) + 7 (range) — cheap, before any network
+ if (!c.matchOk) { console.log('SKIP', pid, 'match-sanity false'); skips.push({ pid, reason: 'match_sanity_false', title: c.title }); skipped++; continue; }
+ if (!(c.rollRetail > 10 && c.rollRetail < 10000)) { console.log('SKIP', pid, `retail out of range ${c.rollRetail}`); skips.push({ pid, reason: `retail_range ${c.rollRetail}`, title: c.title }); skipped++; continue; }
+
+ // HARD re-read live + re-guard
+ const { status, json } = await api(`/products/${pid}.json`);
+ if (status !== 200 || !json.product) { console.log('SKIP', pid, 'fetch', status); skips.push({ pid, reason: `fetch ${status}` }); skipped++; continue; }
+ const p = json.product, vs = p.variants || [];
+
+ if (vs.length !== 1) { console.log('SKIP', pid, `nvars=${vs.length} (already restructured?)`); skips.push({ pid, reason: `nvars=${vs.length}`, title: p.title }); skipped++; continue; }
+ const v = vs[0];
+ const opt1 = (v.option1 || '').trim();
+ const sku = (v.sku || '').trim();
+ const price = parseFloat(v.price);
+ if (opt1.toLowerCase() !== 'sample') { console.log('SKIP', pid, `lone opt1='${opt1}' (not Sample)`); skips.push({ pid, reason: `opt1=${opt1}`, title: p.title }); skipped++; continue; }
+ if (!(price <= 4.5)) { console.log('SKIP', pid, `lone price=${price} (>4.50 = not genuine sample / RR-defect)`); skips.push({ pid, reason: `price=${price}`, title: p.title }); skipped++; continue; }
+ if (sku.toLowerCase() !== String(c.sampleSku).toLowerCase()) { console.log('SKIP', pid, `lone sku='${sku}' != expected '${c.sampleSku}'`); skips.push({ pid, reason: `sku_mismatch ${sku}`, title: p.title }); skipped++; continue; }
+ // GUARD 5: roll SKU must NOT already exist as a variant SKU (idempotent / no double-add)
+ if (vs.some(x => (x.sku || '').toLowerCase() === String(c.rollSku).toLowerCase())) { console.log('SKIP', pid, `roll sku ${c.rollSku} already present`); skips.push({ pid, reason: `roll_sku_present ${c.rollSku}`, title: p.title }); skipped++; continue; }
+
+ const rollSku = c.rollSku;
+ const rollPrice = c.rollRetail.toFixed(2);
+
+ if (!LIVE) {
+ console.log(`DRY ${pid} ${p.title}`);
+ console.log(` keep Sample[${v.id}] sku ${sku} $${v.price} (untouched)`);
+ console.log(` + ADD "Sold Per Roll" sku ${rollSku} $${rollPrice} (continue=buyable) [catalog ${c.catalog_dw_sku}, trade $${c.price_trade}]`);
+ acted++; continue;
+ }
+
+ // reversibility FIRST
+ const preRec = { ts: new Date().toISOString(), pid, title: p.title, sampleVariantId: v.id, sampleSku: sku, rollSku, rollPrice, catalog_dw_sku: c.catalog_dw_sku };
+ appendFileSync(PRESTATE, JSON.stringify(preRec) + '\n');
+
+ // ADD the "Sold Per Roll" variant. Preserve the option name the product uses.
+ // inventory_policy:'continue' => made-to-order roll is ALWAYS buyable (matches the live
+ // Elitis "Sold Per Roll" config). 'deny' + qty0 would leave it UNBUYABLE — the exact
+ // defect caught + patched in the pilot.
+ const post = await api(`/products/${pid}/variants.json`, { method: 'POST', body: JSON.stringify({ variant: {
+ option1: 'Sold Per Roll', price: rollPrice, sku: rollSku,
+ inventory_policy: 'continue', inventory_management: 'shopify',
+ taxable: v.taxable !== undefined ? v.taxable : true } }) });
+ if (post.status !== 201 && post.status !== 200) {
+ console.log('ERR', pid, 'roll-add', post.status, JSON.stringify(post.json).slice(0, 200));
+ skips.push({ pid, reason: `roll-add ${post.status}`, detail: JSON.stringify(post.json).slice(0, 200), title: p.title }); failed++; continue;
+ }
+ const nv = post.json.variant;
+
+ const undo = `# delete the added Sold Per Roll variant (the $4.25 Sample was left untouched)\n` +
+ `curl -s -X DELETE "${REST}/products/${pid}/variants/${nv.id}.json" -H "X-Shopify-Access-Token: $SHOPIFY_ADMIN_TOKEN"`;
+ appendFileSync(LEDGER, JSON.stringify({
+ ts: new Date().toISOString(), agent: 'vp-dw-commerce', ticket: 'TK-10978',
+ action: `add-roll Donghia ${pid} (${c.catalog_dw_sku}): ADD "Sold Per Roll" sku ${rollSku} $${rollPrice} (trade $${c.price_trade}); kept $4.25 Sample ${sku} untouched`,
+ product_id: pid, added_roll_variant_id: nv.id, sample_variant_id: v.id, blast_radius: 1,
+ undo_cmd: undo,
+ verify: `curl -s "${REST}/products/${pid}.json" -H "X-Shopify-Access-Token: $SHOPIFY_ADMIN_TOKEN"|jq '.product.variants[]|{sku,option1,price}'`,
+ }) + '\n');
+ acted++; console.log(`ACTED ${pid} + roll ${rollSku} $${rollPrice} (sample ${sku} kept)`);
+ await sleep(600); // ~2 req/sec (1 write/product + the GET)
+}
+writeFileSync(SKIPS, JSON.stringify(skips, null, 2));
+console.log(`\n${LIVE ? 'LIVE' : 'DRY'} — acted ${acted}, skipped ${skipped}, failed ${failed} (of ${list.length})`);
diff --git a/tk10978-donghia/rollback-all.mjs b/tk10978-donghia/rollback-all.mjs
new file mode 100644
index 0000000..6ee9b05
--- /dev/null
+++ b/tk10978-donghia/rollback-all.mjs
@@ -0,0 +1,27 @@
+#!/usr/bin/env node
+// Reverse the TK-10978 Scalamandre ADD-ROLL recovery: for each acted product,
+// DELETE the added "Sold Per Roll" variant. The $4.25 Sample variant was never
+// touched, so nothing else needs restoring. Reads data/prestate.jsonl.
+// Usage: node rollback-all.mjs [--live] default = dry-run (lists what it would delete).
+import { readFileSync } from 'node:fs';
+import { execSync } from 'child_process';
+const LIVE = process.argv.includes('--live');
+const T = execSync(`grep -E '^SHOPIFY_ADMIN_TOKEN=' ${process.env.HOME}/Projects/secrets-manager/.env|cut -d= -f2-`).toString().trim();
+const DOMAIN = 'designer-laboratory-sandbox.myshopify.com', API = '2024-10';
+const hdr = { 'X-Shopify-Access-Token': T, 'Content-Type': 'application/json' };
+const REST = `https://${DOMAIN}/admin/api/${API}`;
+const lines = readFileSync(new URL('./data/prestate.jsonl', import.meta.url).pathname, 'utf8').trim().split('\n').map(JSON.parse);
+const sleep = ms => new Promise(r => setTimeout(r, ms));
+async function api(path, opts) { const r = await fetch(`${REST}${path}`, { headers: hdr, ...opts }); return { status: r.status, json: await r.json().catch(() => ({})) }; }
+let n = 0;
+for (const l of lines) {
+ const { json } = await api(`/products/${l.pid}.json`, {});
+ const vs = json.product?.variants || [];
+ // the added roll variant: sku==rollSku, option1='Sold Per Roll', not the sample id
+ const added = vs.find(v => (v.sku || '').toLowerCase() === l.rollSku.toLowerCase() && v.id !== l.sampleVariantId);
+ if (!added) { console.log('skip', l.pid, 'no added roll variant found (already reverted?)'); continue; }
+ if (!LIVE) { console.log('WOULD DELETE', l.pid, 'variant', added.id, l.rollSku, '$' + added.price); continue; }
+ await api(`/products/${l.pid}/variants/${added.id}.json`, { method: 'DELETE' });
+ n++; console.log('deleted', l.pid, l.rollSku); await sleep(400);
+}
+console.log(LIVE ? `reverted ${n}` : 'dry-run complete');
← c686975 chore: lint + light refactor (session close)
·
back to Dw Unbuyable Recovery Pilot
·
TK-10978 Coordonné add-roll recovery tooling: 136 clean (mfr e430ce2 →