← back to Designerwallcoverings
Google feed: hard-exclude showroom-only vendors (Phillip Jeffries) via isShowroomVendor (TK-11186)
2cce80e97a8699f26c1f8a1cbc28c6361842940c · 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
M scripts/google-feed/feed-eligibility.mjs
Diff
commit 2cce80e97a8699f26c1f8a1cbc28c6361842940c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Sep 3 11:21:05 2026 -0700
Google feed: hard-exclude showroom-only vendors (Phillip Jeffries) 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 | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/scripts/google-feed/feed-eligibility.mjs b/scripts/google-feed/feed-eligibility.mjs
index 7804a77..4623b18 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';
@@ -136,6 +141,12 @@ function evaluate(p) {
const priceMode = (p.priceMode?.value || '').trim().toLowerCase();
if (priceMode === 'quote_only' || (p.vendor || '').trim() === 'Fentucci Naturals')
reasons.push('quote_only_no_advertised_price');
+ // Showroom-only vendors (e.g. Phillip Jeffries) are addressable-but-not-discoverable —
+ // hard-exclude them from the Google feed regardless of price. Belt-and-suspenders with
+ // 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');
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}`);
← 751fb7d auto-data-snapshot: 2026-09-03T11:10:51 (3 data files) — scr
·
back to Designerwallcoverings
·
auto-data-snapshot: 2026-09-03T11:49:57 (8 data files) — dat cda6d43 →