← back to Dw Domain Fleet
microsite catalog: exclude showroom-tagged products from CLEAN grids (TK-11307)
42bf6b71b8ff742dcc3cbdea032ef2cc603eff02 · 2026-09-08 15:38:06 -0700 · steve
CLEAN now filters isShowroomProduct (vendor-on-list OR 'Showroom' tag), making the
MDC exclusion rule-based instead of relying on the incidental display_variant junk
rule. Sellable Phillipe Romano products (no Showroom tag) still served.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JDeaFL4eeREBZX79tc4cnr
Files touched
Diff
commit 42bf6b71b8ff742dcc3cbdea032ef2cc603eff02
Author: steve <steve@designerwallcoverings.com>
Date: Tue Sep 8 15:38:06 2026 -0700
microsite catalog: exclude showroom-tagged products from CLEAN grids (TK-11307)
CLEAN now filters isShowroomProduct (vendor-on-list OR 'Showroom' tag), making the
MDC exclusion rule-based instead of relying on the incidental display_variant junk
rule. Sellable Phillipe Romano products (no Showroom tag) still served.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JDeaFL4eeREBZX79tc4cnr
---
shared/catalog.js | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/shared/catalog.js b/shared/catalog.js
index b5d6a05..208a8a4 100644
--- a/shared/catalog.js
+++ b/shared/catalog.js
@@ -39,7 +39,25 @@ function isShowroomVendor(p) {
return SHOWROOM_VENDORS.includes(String(p.vendor).trim().toLowerCase());
}
-const CLEAN = RAW.filter(p => !isJunk(p) && !isShowroomVendor(p));
+// Product-level showroom TAG (TK-11307). A shared-vendor showroom line (MDC under the
+// shared "Phillipe Romano" label, which also carries SELLABLE lines) is hidden from
+// microsite grids by its "Showroom" tag, WITHOUT hiding the vendor's sellable products.
+// Until now MDC was excluded only incidentally via the display_variant junk rule — this
+// makes the exclusion rule-based. Mirrors fix-live-board's isShowroomProduct, kept local
+// so the deployed fleet stays self-contained.
+function isShowroomTagged(p) {
+ const tags = p.tags;
+ const arr = Array.isArray(tags) ? tags : (typeof tags === 'string' ? tags.split(',') : []);
+ return arr.some(t => String(t).trim().toLowerCase() === 'showroom');
+}
+
+// A product is showroom-only (addressable-but-not-discoverable) if its vendor is on the
+// list OR it carries the Showroom tag.
+function isShowroomProduct(p) {
+ return isShowroomVendor(p) || isShowroomTagged(p);
+}
+
+const CLEAN = RAW.filter(p => !isJunk(p) && !isShowroomProduct(p));
// --- product-type normalization ---
function normType(t) {
@@ -89,4 +107,4 @@ function siteExtras(slug) {
} catch { return []; }
}
-module.exports = { RAW, CLEAN, isJunk, isShowroomVendor, normType, nicheSlice, siteExtras, count: CLEAN.length };
+module.exports = { RAW, CLEAN, isJunk, isShowroomVendor, isShowroomTagged, isShowroomProduct, normType, nicheSlice, siteExtras, count: CLEAN.length };
← ddc73f9 add .trim() to isShowroomVendor vendor string comparison (TK
·
back to Dw Domain Fleet
·
auto-data-snapshot: 2026-09-09T08:26:36 (1 data files) — dat 8d99c6c →