[object Object]

← back to Dw Yolo Loop

Google feed twin: hard-exclude showroom-only vendors via isShowroomVendor (TK-11186)

ea0eaeeebd90e668d622ff1f4e7ac9b79b2397f9 · 2026-09-03 11:21:05 -0700 · Steve Abrams

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

Files touched

Diff

commit ea0eaeeebd90e668d622ff1f4e7ac9b79b2397f9
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Sep 3 11:21:05 2026 -0700

    Google feed twin: hard-exclude showroom-only vendors via isShowroomVendor (TK-11186)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01BgCcr9t5zNGdb43pS4f1ks
---
 scripts/google-feed/feed-eligibility.mjs | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/scripts/google-feed/feed-eligibility.mjs b/scripts/google-feed/feed-eligibility.mjs
index 22cc9be..55565d1 100644
--- a/scripts/google-feed/feed-eligibility.mjs
+++ b/scripts/google-feed/feed-eligibility.mjs
@@ -21,6 +21,11 @@
  */
 import fs from 'node:fs';
 import path from 'node:path';
+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 SHOP = 'designer-laboratory-sandbox.myshopify.com';
 const VER = '2024-10';
@@ -127,6 +132,11 @@ function evaluate(p) {
   const width = (p.widthGlobal?.value || p.widthCustom?.value || p.widthDwc?.value || '').trim();
 
   // ---- hard gates (exclude) ----
+  // Showroom-only vendors (e.g. Phillip Jeffries) are addressable-but-not-discoverable —
+  // hard-exclude them from the Google feed regardless of price. PJ is sample-only ($4.25)
+  // today so it's excluded incidentally, but a future >$5 / roll-priced PJ variant would
+  // otherwise leak into the feed. Keyed off showroom-vendors.json via the shared primitive. TK-11186.
+  if (isShowroomVendor(p.vendor)) 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}`);

← 69ecd60 refresh GMC leak guard heartbeat  ·  back to Dw Yolo Loop  ·  TK-11186: trending-tag-sync twin — guard showroom-only vendo 20ab7b0 →