[object Object]

← back to Fix Live Board

showroom: rename tag to 'ShowroomOnly' — 'Showroom' collides with 'Showroom Line' (TK-11307) Steve ruled 2026-09-10: the MDC showroom tag is 'ShowroomOnly', not 'Showroom'.

d6185a72346d39162443b2723240459504fa49fe · 2026-09-10 08:55:25 -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 d6185a72346d39162443b2723240459504fa49fe
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Sep 10 08:55:25 2026 -0700

    showroom: rename tag to 'ShowroomOnly' — 'Showroom' collides with 'Showroom Line' (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>
---
 config/showroom-vendor.cjs | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/config/showroom-vendor.cjs b/config/showroom-vendor.cjs
index bca0411..2876996 100644
--- a/config/showroom-vendor.cjs
+++ b/config/showroom-vendor.cjs
@@ -51,7 +51,12 @@ function isShowroomVendor(vendor) {
 // Greenland/RIGO/Justin David) cannot be suppressed by vendor name without hiding that
 // vendor's sellable products. So a product is ALSO showroom-only if it carries this tag.
 // TK-11307.
-const SHOWROOM_TAG = 'showroom';
+// TK-11307 (Steve, 2026-09-10): the tag is 'ShowroomOnly', NOT 'Showroom'. A pre-existing
+// 'Showroom Line' tag sits on 18,518+ ACTIVE SELLABLE products, and Shopify/Boost `tag:`
+// queries are PREFIX/TOKEN matchers (quoting does not help) — `tag:Showroom` returns those
+// 18.5k sellable products and ZERO showroom products. 'ShowroomOnly' measures 0 collisions,
+// so it is safe in code AND in a Shopify/Boost tag query. Compared lowercased.
+const SHOWROOM_TAG = 'showroomonly';
 
 /** Case-insensitive check: does this product's tags array/string include the Showroom tag? */
 function hasShowroomTag(tags) {

← 2fe5fee showroom: add tag-aware isShowroomProduct primitive (TK-1130  ·  back to Fix Live Board  ·  chore: lint + refactor pass (session close) — TK-11307 34860f0 →