← back to All Designerwallcoverings
Kravet dash→dot W-code match: Shopify stores wallcovering codes dash-form (W3909-50), price file dot-form (W3909.50.0) — add the conversion to kravet-db candidateKeys + coverage counter. Kravet resolvable 840→2250 (32%→86%), ~1,410 more SKUs priced $0
1e3c12ac29107f071a459b19a4e02cda9c347809 · 2026-07-16 16:36:07 -0700 · Steve Abrams
Files touched
M scripts/adapters/kravet-db.jsM scripts/build-coverage.js
Diff
commit 1e3c12ac29107f071a459b19a4e02cda9c347809
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Jul 16 16:36:07 2026 -0700
Kravet dash→dot W-code match: Shopify stores wallcovering codes dash-form (W3909-50), price file dot-form (W3909.50.0) — add the conversion to kravet-db candidateKeys + coverage counter. Kravet resolvable 840→2250 (32%→86%), ~1,410 more SKUs priced $0
---
scripts/adapters/kravet-db.js | 4 ++++
scripts/build-coverage.js | 5 ++++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/scripts/adapters/kravet-db.js b/scripts/adapters/kravet-db.js
index 79fbcca..82f008a 100644
--- a/scripts/adapters/kravet-db.js
+++ b/scripts/adapters/kravet-db.js
@@ -23,6 +23,10 @@ function candidateKeys(raw) {
keys.add(s);
// ±trailing ".0" — shopify rows usually carry it, but tolerate either side missing it.
if (s.endsWith('.0')) keys.add(s.slice(0, -2)); else keys.add(s + '.0');
+ // DASH→DOT: Kravet WALLCOVERING codes are stored dash-form in Shopify ("W3909-50") but the
+ // price file carries them dot-form with a ".0" tail ("W3909.50.0"). Without this, ~1,247 of
+ // the ~1,382 unmatched Kravet actives (the whole wallcovering line) silently miss the file.
+ if (s.includes('-')) { const dot = s.replace(/-/g, '.'); keys.add(dot); keys.add(dot + '.0'); }
// leading pattern code (mirrors resolve.js's compound-SKU extraction — dash AND dot shapes).
const lead = s.match(/^[A-Z]*[0-9]+[-.][0-9A-Z]+/);
if (lead && lead[0] !== s) { keys.add(lead[0]); keys.add(lead[0] + '.0'); }
diff --git a/scripts/build-coverage.js b/scripts/build-coverage.js
index 23711eb..4808067 100644
--- a/scripts/build-coverage.js
+++ b/scripts/build-coverage.js
@@ -403,7 +403,10 @@ async function main() {
SELECT 1 FROM kravet_authoritative_pricing k
WHERE upper(k.mfr_sku)=upper(${mfr})
OR upper(k.mfr_sku)=upper(${mfr})||'.0'
- OR upper(k.mfr_sku)||'.0'=upper(${mfr})))::int AS resolvable
+ OR upper(k.mfr_sku)||'.0'=upper(${mfr})
+ -- dash→dot: Shopify "W3909-50" ↔ price-file "W3909.50.0" (wallcovering codes)
+ OR (position('-' in upper(${mfr}))>0
+ AND upper(k.mfr_sku)=replace(upper(${mfr}),'-','.')||'.0')))::int AS resolvable
FROM shopify_products s ${join} WHERE s.vendor = $1`, [vendor]);
return rows[0];
} catch { return { active: 0, resolvable: 0 }; }
← fc6f2ba all-dw: add schumacher to BANNED regex (internal-only vendor
·
back to All Designerwallcoverings
·
auto-save: 2026-07-16T16:43:46 (1 files) — data/live-stock-c c3f43e4 →