[object Object]

← back to Designerwallcoverings

google-feed: exclude showroom-tagged products via isShowroomProduct (TK-11307)

bddd4d7557570c17e0b1cf7574cb95a159d4a95d · 2026-09-08 15:37:35 -0700 · steve

Hard-exclude any product with the 'Showroom' tag from the controlled Google feed,
not just showroom VENDORS. Covers MDC (shared 'Phillipe Romano' label) while
leaving that vendor's sellable lines (1048 Google-eligible) in the feed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JDeaFL4eeREBZX79tc4cnr

Files touched

Diff

commit bddd4d7557570c17e0b1cf7574cb95a159d4a95d
Author: steve <steve@designerwallcoverings.com>
Date:   Tue Sep 8 15:37:35 2026 -0700

    google-feed: exclude showroom-tagged products via isShowroomProduct (TK-11307)
    
    Hard-exclude any product with the 'Showroom' tag from the controlled Google feed,
    not just showroom VENDORS. Covers MDC (shared 'Phillipe Romano' label) while
    leaving that vendor's sellable lines (1048 Google-eligible) in the feed.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01JDeaFL4eeREBZX79tc4cnr
---
 scripts/google-feed/feed-eligibility.mjs | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/scripts/google-feed/feed-eligibility.mjs b/scripts/google-feed/feed-eligibility.mjs
index 4623b18..12befe0 100644
--- a/scripts/google-feed/feed-eligibility.mjs
+++ b/scripts/google-feed/feed-eligibility.mjs
@@ -25,7 +25,7 @@ import { createRequire } from 'node:module';
 // Canonical showroom-vendor primitive (list + logic live in fix-live-board/config).
 // Never hardcode a vendor name here — edit showroom-vendors.json to change the set. TK-11186.
 const require = createRequire(import.meta.url);
-const { isShowroomVendor } = require(process.env.HOME + '/Projects/fix-live-board/config/showroom-vendor.cjs');
+const { isShowroomVendor, isShowroomProduct } = require(process.env.HOME + '/Projects/fix-live-board/config/showroom-vendor.cjs');
 
 const SHOP = 'designer-laboratory-sandbox.myshopify.com';
 const VER = '2024-10';
@@ -146,7 +146,11 @@ function evaluate(p) {
   // quote_only above: PJ is sample-only ($4.25) today so it's excluded incidentally, but a
   // future >$5 or roll-priced PJ variant would otherwise leak into the feed (disapproval
   // risk). Keyed off showroom-vendors.json via the shared primitive. TK-11186.
-  if (isShowroomVendor(p.vendor)) reasons.push('showroom_only_addressable_not_discoverable');
+  // TK-11307: switched to isShowroomProduct so a SHARED-vendor showroom line (MDC under
+  // "Phillipe Romano") is excluded via its product-level "Showroom" tag WITHOUT excluding
+  // that vendor's sellable products (Spazzolato/Greenland/RIGO/Justin David). p.tags is
+  // already selected by QUERY above, so the tag path resolves correctly.
+  if (isShowroomProduct(p)) reasons.push('showroom_only_addressable_not_discoverable');
   if (!hasImg) reasons.push('no_image');
   if (rollPrice == null) reasons.push('no_roll_variant_price');
   else if (rollPrice < FLOOR) reasons.push(`roll_price_below_floor_${rollPrice}`);

← 2ff8ec3 auto-data-snapshot: 2026-09-08T15:35:04 (2 data files) — scr  ·  back to Designerwallcoverings  ·  rotators: exclude showroom-tagged products from New Arrivals 740956f →