[object Object]

← back to Designerwallcoverings

theme (source): showroom tag is 'ShowroomOnly' (TK-11307) Steve ruled 2026-09-10: the MDC showroom tag is 'ShowroomOnly', not 'Showroom'.

7f519c7818e6700a45f070b4e76be642e0fcc33d · 2026-09-10 08:55:26 -0700 · Steve Abrams

A pre-existing 'Showroom Line' tag sits on 18,518+ ACTIVE SELLABLE products
(Kravet 1969, China Seas 1775, sellable Phillipe Romano 1753, Scalamandre 913,
Osborne & Little 616, Designers Guild 559, ...). Shopify/Boost `tag:` queries are
PREFIX/TOKEN matchers and quoting does not help — measured live, `tag:Showroom`
and `tag:"Showroom"` each return 10,000+ ACTIVE of which a sampled 100/100 carry
'Showroom Line' and 0/100 carry the exact tag. 'ShowroomOnly' measures 0
collisions, so it is safe in code AND in a Shopify/Boost tag query (which makes
the Boost index rule usable and un-traps applier verification).

Verified: all 5 consumers (canonical primitive, hasShowroomTag, microsite
isShowroomTagged, theme Liquid render-skip, theme JS backstop) agree 7/7 on real
tag strings — MDC's new tag matches everywhere, every 'Showroom Line' sellable
case is false everywhere, and the old 'Showroom' tag no longer matches. Phillip
Jeffries stays suppressed via the untouched vendor path.

Applier must stamp 'ShowroomOnly'. Theme PUSH and fleet deploy remain Steve-gated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Files touched

Diff

commit 7f519c7818e6700a45f070b4e76be642e0fcc33d
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Sep 10 08:55:26 2026 -0700

    theme (source): showroom tag is 'ShowroomOnly' (TK-11307)
    Steve ruled 2026-09-10: the MDC showroom tag is 'ShowroomOnly', not 'Showroom'.
    
    A pre-existing 'Showroom Line' tag sits on 18,518+ ACTIVE SELLABLE products
    (Kravet 1969, China Seas 1775, sellable Phillipe Romano 1753, Scalamandre 913,
    Osborne & Little 616, Designers Guild 559, ...). Shopify/Boost `tag:` queries are
    PREFIX/TOKEN matchers and quoting does not help — measured live, `tag:Showroom`
    and `tag:"Showroom"` each return 10,000+ ACTIVE of which a sampled 100/100 carry
    'Showroom Line' and 0/100 carry the exact tag. 'ShowroomOnly' measures 0
    collisions, so it is safe in code AND in a Shopify/Boost tag query (which makes
    the Boost index rule usable and un-traps applier verification).
    
    Verified: all 5 consumers (canonical primitive, hasShowroomTag, microsite
    isShowroomTagged, theme Liquid render-skip, theme JS backstop) agree 7/7 on real
    tag strings — MDC's new tag matches everywhere, every 'Showroom Line' sellable
    case is false everywhere, and the old 'Showroom' tag no longer matches. Phillip
    Jeffries stays suppressed via the untouched vendor path.
    
    Applier must stamp 'ShowroomOnly'. Theme PUSH and fleet deploy remain Steve-gated.
    
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---
 .../tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid | 4 ++--
 .../tk11186-showroom-hide/theme-deploy/product-list-item.liquid  | 9 ++++++---
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid b/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid
index f3bd81a..46fe421 100644
--- a/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid
+++ b/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid
@@ -54,7 +54,7 @@
     document.querySelectorAll('[data-vendor]').forEach(function(el){
       if (HIDDEN.indexOf(String(el.getAttribute('data-vendor')||'').trim().toLowerCase()) > -1){ el.style.display = 'none'; }
     });
-    // TK-11307: hide any card whose product tags include the EXACT 'Showroom' tag.
+    // TK-11307: hide any card whose product tags include the EXACT 'ShowroomOnly' tag.
     // Split on COMMAS ONLY, then trim + compare whole tags — mirrors the canonical
     // hasShowroomTag() in fix-live-board/config/showroom-vendor.cjs. A whitespace split
     // here was a live landmine: the pre-existing 'Showroom Line' tag sits on 18,500+
@@ -64,7 +64,7 @@
     // NOTE: no card currently emits data-tags, so this backstop selects nothing today;
     // Boost/AJAX coverage is NOT delivered by this hook (see the gated deploy note).
     document.querySelectorAll('[data-tags]').forEach(function(el){
-      if (String(el.getAttribute('data-tags')||'').split(',').map(function(t){ return t.trim().toLowerCase(); }).indexOf('showroom') > -1){
+      if (String(el.getAttribute('data-tags')||'').split(',').map(function(t){ return t.trim().toLowerCase(); }).indexOf('showroomonly') > -1){
         var c = el.closest(CARD_SEL) || el; if (c && c.style.display !== 'none') c.style.display = 'none';
       }
     });
diff --git a/scripts/tk11186-showroom-hide/theme-deploy/product-list-item.liquid b/scripts/tk11186-showroom-hide/theme-deploy/product-list-item.liquid
index 21b9a83..c771b5a 100644
--- a/scripts/tk11186-showroom-hide/theme-deploy/product-list-item.liquid
+++ b/scripts/tk11186-showroom-hide/theme-deploy/product-list-item.liquid
@@ -24,12 +24,15 @@
       assign is_showroom_vendor = true
     endif
   endfor
-  # TK-11307: product-level 'Showroom' TAG is an ADDITIONAL, shared-vendor-safe key.
+  # TK-11307: product-level 'ShowroomOnly' TAG is an ADDITIONAL, shared-vendor-safe key.
+  # NOT 'Showroom': a pre-existing 'Showroom Line' tag is on 18,518+ ACTIVE SELLABLE
+  # products. Liquid `contains` on an ARRAY is exact-element membership, so this is a
+  # whole-tag match, never a substring. (Steve, 2026-09-10.)
   # A showroom line under a SHARED private label (MDC under 'Phillipe Romano', which also
   # carries sellable lines) is suppressed by its own tag WITHOUT hiding the vendor. The
-  # tag applier stamps 'Showroom' on exactly the showroom products; sellable siblings keep
+  # tag applier stamps 'ShowroomOnly' on exactly the showroom products; sellable siblings keep
   # rendering. Case-insensitive: check both 'Showroom' and 'showroom'.
-  if product.tags contains 'Showroom' or product.tags contains 'showroom'
+  if product.tags contains 'ShowroomOnly' or product.tags contains 'showroomonly' or product.tags contains 'Showroomonly'
     assign is_showroom_vendor = true
   endif
 -%}

← 2f5e49f auto-data-snapshot: 2026-09-10T08:12:39 (5 data files) — scr  ·  back to Designerwallcoverings  ·  auto-data-snapshot: 2026-09-10T09:22:46 (3 data files) — scr 46d265e →