← back to Dw Domain Fleet
TK-11200: isShowroomVendor guard — filter showroom-only vendors from all microsite catalog slices
71985bf9a33a2b1762c66bf0238c8713465e1be4 · 2026-09-04 04:10:35 -0700 · Steve
Phillip Jeffries and any future showroom-only vendors (config/showroom-vendors.json)
are excluded from CLEAN pool so no microsite niche slice ever surfaces them.
Matches fix-live-board canonical list. Prod redeploy to Kamatera is gated.
Undo: git revert HEAD
Files touched
A config/showroom-vendors.jsonM shared/catalog.js
Diff
commit 71985bf9a33a2b1762c66bf0238c8713465e1be4
Author: Steve <steve@designerwallcoverings.com>
Date: Fri Sep 4 04:10:35 2026 -0700
TK-11200: isShowroomVendor guard — filter showroom-only vendors from all microsite catalog slices
Phillip Jeffries and any future showroom-only vendors (config/showroom-vendors.json)
are excluded from CLEAN pool so no microsite niche slice ever surfaces them.
Matches fix-live-board canonical list. Prod redeploy to Kamatera is gated.
Undo: git revert HEAD
---
config/showroom-vendors.json | 1 +
shared/catalog.js | 18 ++++++++++++++++--
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/config/showroom-vendors.json b/config/showroom-vendors.json
new file mode 100644
index 0000000..095e28f
--- /dev/null
+++ b/config/showroom-vendors.json
@@ -0,0 +1 @@
+["Phillip Jeffries"]
diff --git a/shared/catalog.js b/shared/catalog.js
index 82cc25c..c233070 100644
--- a/shared/catalog.js
+++ b/shared/catalog.js
@@ -25,7 +25,21 @@ function isJunk(p) {
return false;
}
-const CLEAN = RAW.filter(p => !isJunk(p));
+// Showroom-only vendors (addressable but not discoverable on microsites).
+// Source of truth: config/showroom-vendors.json — matches fix-live-board canonical list. (TK-11200)
+const SHOWROOM_VENDORS = (() => {
+ try {
+ return JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'config', 'showroom-vendors.json'), 'utf8'))
+ .map(v => v.toLowerCase());
+ } catch { return []; }
+})();
+
+function isShowroomVendor(p) {
+ if (!p.vendor || !SHOWROOM_VENDORS.length) return false;
+ return SHOWROOM_VENDORS.includes(String(p.vendor).toLowerCase());
+}
+
+const CLEAN = RAW.filter(p => !isJunk(p) && !isShowroomVendor(p));
// --- product-type normalization ---
function normType(t) {
@@ -75,4 +89,4 @@ function siteExtras(slug) {
} catch { return []; }
}
-module.exports = { RAW, CLEAN, isJunk, normType, nicheSlice, siteExtras, count: CLEAN.length };
+module.exports = { RAW, CLEAN, isJunk, isShowroomVendor, normType, nicheSlice, siteExtras, count: CLEAN.length };
← 3161f75 Fleet: keep showroom-only vendors (Phillip Jeffries) out of
·
back to Dw Domain Fleet
·
add .trim() to isShowroomVendor vendor string comparison (TK ddc73f9 →