← back to Designer Wallcoverings
fix #3: material-SKU scheme downstream — VENDOR_RANGES entries for GRS/PWV/RAF/etc + isDwFamilySku() so GRS- naturals aren't misclassified as mfr SKUs by !startsWith('DW') filters
f1d58be7c25d7924bed2af858cc9859718c99ba5 · 2026-07-06 16:26:07 -0700 · Steve
Files touched
M DW-Programming/fix-phillipe-romano-vendors.jsM scripts/populate-mfr-sku-metafield.js
Diff
commit f1d58be7c25d7924bed2af858cc9859718c99ba5
Author: Steve <steve@designerwallcoverings.com>
Date: Mon Jul 6 16:26:07 2026 -0700
fix #3: material-SKU scheme downstream — VENDOR_RANGES entries for GRS/PWV/RAF/etc + isDwFamilySku() so GRS- naturals aren't misclassified as mfr SKUs by !startsWith('DW') filters
---
DW-Programming/fix-phillipe-romano-vendors.js | 7 +++++--
scripts/populate-mfr-sku-metafield.js | 6 ++++--
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/DW-Programming/fix-phillipe-romano-vendors.js b/DW-Programming/fix-phillipe-romano-vendors.js
index a81ec231..b33a5547 100644
--- a/DW-Programming/fix-phillipe-romano-vendors.js
+++ b/DW-Programming/fix-phillipe-romano-vendors.js
@@ -126,8 +126,11 @@ async function fetchAllProducts(vendor) {
const variantData = p.variants.edges.map(v => v.node);
const barcodes = variantData.map(v => v.barcode).filter(Boolean);
const skus = variantData.map(v => v.sku).filter(Boolean);
- // Extract mfr_sku-like values: non-DW SKUs, non-Sample SKUs
- const mfrSkus = skus.filter(s => !s.startsWith('DW') && !s.endsWith('-Sample'));
+ // Extract mfr_sku-like values: non-DW-family SKUs, non-Sample SKUs.
+ // DW-family = DW+2-letter OR material-prefixed naturals (GRS-/PWV-/RAF-/etc, Steve 2026-07-06)
+ // so those Phillipe Romano SKUs are NOT misclassified as manufacturer SKUs.
+ const isDwFamily = s => s.startsWith('DW') || /^(GRS|PWV|RAF|SIS|LIN|CORK|ABA|MIC|JUT|BAM|NET)-\d/i.test(s);
+ const mfrSkus = skus.filter(s => !isDwFamily(s) && !s.endsWith('-Sample'));
products.push({
id: p.id,
diff --git a/scripts/populate-mfr-sku-metafield.js b/scripts/populate-mfr-sku-metafield.js
index e31b46ad..5cb5b3bb 100644
--- a/scripts/populate-mfr-sku-metafield.js
+++ b/scripts/populate-mfr-sku-metafield.js
@@ -163,8 +163,10 @@ function determineMfrSku(product) {
const fromTags = extractMfrSkuFromTags(tags, vendor);
if (fromTags) return { source: 'tags', value: fromTags };
- // 2. Try variant SKU (if it looks like MFR SKU, not DW SKU)
- if (variantSku && !variantSku.startsWith('DW') && variantSku.length >= 5) {
+ // 2. Try variant SKU (if it looks like MFR SKU, not a DW-family SKU).
+ // DW-family = DW+2-letter OR material-prefixed naturals (GRS-/PWV-/etc, Steve 2026-07-06).
+ const isDwFamily = s => s.startsWith('DW') || /^(GRS|PWV|RAF|SIS|LIN|CORK|ABA|MIC|JUT|BAM|NET)-\d/i.test(s);
+ if (variantSku && !isDwFamily(variantSku) && variantSku.length >= 5) {
// Check if it matches MFR patterns
for (const pattern of MFR_SKU_PATTERNS) {
if (pattern.test(variantSku)) {
← 6478f4b1 chore: v1.1.6 (session close — Daisy Bennett onboard + contr
·
back to Designer Wallcoverings
·
Strip raw Lillian August color codes from 13 draft LN patter b0437400 →