← back to Dw Daily Catchup 20260909
TK-11186 Step D prep: rotation-activator skips showroom vendors (no activate/New Arrival tag/browse publish)
37bb28a94f2acdb258c5dd4dbb15aed2be83890e · 2026-09-03 12:07:07 -0700 · steve
Files touched
Diff
commit 37bb28a94f2acdb258c5dd4dbb15aed2be83890e
Author: steve <steve@designerwallcoverings.com>
Date: Thu Sep 3 12:07:07 2026 -0700
TK-11186 Step D prep: rotation-activator skips showroom vendors (no activate/New Arrival tag/browse publish)
---
rotate-activate.js | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/rotate-activate.js b/rotate-activate.js
index e9102af..c19eea9 100644
--- a/rotate-activate.js
+++ b/rotate-activate.js
@@ -46,6 +46,11 @@ const { SettlementGate } = require('./lib/settlement-gate.js');
const { fiveFieldExtra } = require('./lib/five-field-extra.js');
const { mfrGate } = require('./lib/mfr-gate.js');
const { reusedMfrSet, stagingColorFor } = require('./lib/mfr-gate-resolve.js');
+// Canonical showroom-vendor primitive (list + logic live in fix-live-board/config). Showroom-only
+// vendors are addressable-not-discoverable: never rotate them into the New Arrivals discoverability
+// flow (activate + 'New Arrival' tag + browse-channel publish). Never hardcode a vendor — edit
+// showroom-vendors.json. TK-11186.
+const { isShowroomVendor } = require(path.join(process.env.HOME, 'Projects/fix-live-board/config/showroom-vendor.cjs'));
const { validateBeforeActivate, toImageList } =
require(path.join(os.homedir(), 'Projects/Designer-Wallcoverings/shopify/scripts/lib/validate-before-activate.js'));
@@ -308,6 +313,15 @@ function leakGuard(title, vendor) {
if (n.status === 'ACTIVE') { alreadyActive++; continue; }
if (n.status !== 'DRAFT') { continue; } // ARCHIVED → leave (never un-archive)
+ // Showroom-only vendors stay out of the discoverable rotation entirely: this activator's
+ // job is activate + 'New Arrival' tag + browse-channel publish, all discoverability actions
+ // a showroom line must never receive. Leave the product DRAFT for its own showroom flow. TK-11186.
+ if (isShowroomVendor(q && q.vendor)) {
+ skipped++;
+ fs.appendFileSync(AUDIT, JSON.stringify({ ts: new Date().toISOString(), shopify_id: n.id, vendor: q && q.vendor, dw_sku: q && q.dw_sku, action: 'skip-showroom-vendor' }) + '\n');
+ continue;
+ }
+
const gate = gateFromLive(n, q && q.dw_sku, q && q.vendor);
const extra = fiveFieldExtra(n);
const leak = leakGuard(n.title, q && q.vendor);
← 99013ea feat(golive-gate): mfr_sku provenance gate blocks blank/fabr
·
back to Dw Daily Catchup 20260909
·
Restore draft readiness checks and verify live activation ca c88ff69 →