← back to Designer Wallcoverings
cadence: onboard Maharam as quote-only wallcovering vendor (own MAHARAM_DRIP gate)
5d76defbaf65367bbd632b4b218af2d9e24ed98d · 2026-07-22 08:12:04 -0700 · Steve
- vendors.js: add 'Maharam' sampleOnly entry (mahDrip:true, own default-OFF drip)
- cadence-import.js: scope hardcoded 'Quadrille House' tag to the QH staging table
only (also fixes latent Pierre Frey mistag); add MAH_DRIP gate mirroring PJ_DRIP
- 1,429 activation-ready wallcoverings import-eligible; 164 fabric + 8 no-desc held
via dedup_skip (roll-on-fabric rule). Dry-run verified; inert for the shared drip.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
M shopify/scripts/cadence/cadence-import.jsM shopify/scripts/cadence/vendors.js
Diff
commit 5d76defbaf65367bbd632b4b218af2d9e24ed98d
Author: Steve <steve@designerwallcoverings.com>
Date: Wed Jul 22 08:12:04 2026 -0700
cadence: onboard Maharam as quote-only wallcovering vendor (own MAHARAM_DRIP gate)
- vendors.js: add 'Maharam' sampleOnly entry (mahDrip:true, own default-OFF drip)
- cadence-import.js: scope hardcoded 'Quadrille House' tag to the QH staging table
only (also fixes latent Pierre Frey mistag); add MAH_DRIP gate mirroring PJ_DRIP
- 1,429 activation-ready wallcoverings import-eligible; 164 fabric + 8 no-desc held
via dedup_skip (roll-on-fabric rule). Dry-run verified; inert for the shared drip.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
shopify/scripts/cadence/cadence-import.js | 9 ++++++---
shopify/scripts/cadence/vendors.js | 10 ++++++++++
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/shopify/scripts/cadence/cadence-import.js b/shopify/scripts/cadence/cadence-import.js
index 539c1a3c..4199afe2 100644
--- a/shopify/scripts/cadence/cadence-import.js
+++ b/shopify/scripts/cadence/cadence-import.js
@@ -57,6 +57,9 @@ const SAMPLEONLY_DRIP = flag('--sampleonly') || process.env.QUADRILLE_SAMPLEONLY
// is INERT: the scheduled hourly runner won't create any PJ product until PJ_DRAFT_DRIP=1 (or
// --pj-drip) is set. A manual --only "Phillip Jeffries" run also whitelists it for the dry-run/test.
const PJ_DRIP = flag('--pj-drip') || process.env.PJ_DRAFT_DRIP === '1';
+// Maharam quote-only LAUNCH drip — OWN scoped gate (mirrors PJ_DRIP), default OFF so adding the
+// Maharam vendors.js entry is INERT until MAHARAM_DRIP=1 (or --maharam). Steve 2026-07-22.
+const MAH_DRIP = flag('--maharam') || process.env.MAHARAM_DRIP === '1';
// DWBR house-line remap (Steve 2-brand rule, 2026-06-25). OFF by default — when OFF, vendors that
// declare a houseLineCol (today only 'Brewster & York') keep emitting the map key as the product
// vendor/Brand and are HELD by bannedBrandReason() (nothing publishes), so committing the remap
@@ -329,8 +332,8 @@ function gate() {
// whitelists it for the manual few-SKU test. Otherwise report gated so the scheduled
// rotation never picks it up.
const explicitlyTargeted = ONLY && ONLY.toLowerCase() === vendor.toLowerCase();
- const dripOn = cfg.pjDrip ? PJ_DRIP : SAMPLEONLY_DRIP; // PJ-scoped vs Quadrille-scoped enable
- const dripEnv = cfg.pjDrip ? 'PJ_DRAFT_DRIP=1' : 'QUADRILLE_SAMPLEONLY_DRIP=1';
+ const dripOn = cfg.pjDrip ? PJ_DRIP : cfg.mahDrip ? MAH_DRIP : SAMPLEONLY_DRIP; // PJ- / Maharam- / Quadrille-scoped enable
+ const dripEnv = cfg.pjDrip ? 'PJ_DRAFT_DRIP=1' : cfg.mahDrip ? 'MAHARAM_DRIP=1' : 'QUADRILLE_SAMPLEONLY_DRIP=1';
if (!dripOn && !explicitlyTargeted) {
rows.push({ vendor, cfg, ready: false, why: `sampleonly-drip-gated (set ${dripEnv} to enable)`, netnew: 0 });
continue;
@@ -541,7 +544,7 @@ function buildSampleOnlyInput(vendor, cfg, row, activate) {
// positives on the sample-only image set and tags a spurious Needs-Image. We keep every OTHER
// gate flag (Needs-Specs / Needs-Description / Needs-Width) — only the false Needs-Image is dropped.
const gateTags = gate.tags.filter(t => String(t).toLowerCase() !== 'needs-image');
- const tagSet = [vendor, effType, 'Sample Only', 'display_variant', 'Quadrille House',
+ const tagSet = [vendor, effType, 'Sample Only', 'display_variant', ...(_isQH ? ['Quadrille House'] : []),
...(row.collection?[`Collection: ${row.collection}`]:[]), ...(color?[color]:[]), ...gateTags];
const input = {
diff --git a/shopify/scripts/cadence/vendors.js b/shopify/scripts/cadence/vendors.js
index 2574c70b..556c72f6 100644
--- a/shopify/scripts/cadence/vendors.js
+++ b/shopify/scripts/cadence/vendors.js
@@ -201,4 +201,14 @@ module.exports = {
// by activate-gated.js (which reads the same vendors.js) to recognize + promote the drafts.
'Pierre Frey': { table: 'pierre_frey_catalog', sampleOnly: true, soldBy: 'Sample', productType: 'Wallcovering',
note: 'Quote-only samples LAUNCH (Steve 2026-07-07). No cost (pierrefrey.com shows no price) → activates quote-only: $4.25 Sample + NULL price + quotes tag. Drip-activated via com.steve.dw-pierre-frey-activate; held from the sampleonly IMPORT drip (already imported as DRAFT).' },
+ // ── Maharam — quote-only wallcovering LAUNCH via own scoped drip (Steve "push all on the std daily cadence" 2026-07-22) ──
+ // Onboarded into maharam_catalog (1,601 rows). AUTHORITATIVE type = Maharam's own "Application" spec field
+ // (scraped free/local): Application "Walls"/"Upholstered Walls" → Wallcovering (1,437); "Seating" → Fabric (164 Gemma).
+ // Only the 1,429 activation-ready wallcoverings are import-eligible — the 164 fabric + 8 no-desc rows carry
+ // dedup_skip=true (roll-on-fabric rule: fabrics stay OUT of the wallcoverings collection, separate onboarding later).
+ // Quote-only: no public price → $4.25 Sample + NULL price (like Pierre Frey). cfg.mahDrip gives it its OWN default-OFF
+ // gate (MAHARAM_DRIP=1 / --maharam), so this entry is INERT for the shared hourly runner until Steve enables the
+ // dedicated com.steve.dw-maharam-activate drip. Collection maharam-wallcoverings (299575476275) is smart-by-vendor=Maharam.
+ 'Maharam': { table: 'maharam_catalog', sampleOnly: true, mahDrip: true, soldBy: 'Sample', productType: 'Wallcovering',
+ note: 'Quote-only wallcovering LAUNCH (Steve 2026-07-22). Own scoped drip (mahDrip/MAHARAM_DRIP) — held from the shared sampleonly drip. Fabrics held via dedup_skip. Activates quote-only: $4.25 Sample + NULL price.' },
};
← 35503bb0 Anthology Phase-2 scrapers: SDG Trade Hub feed-first pull →
·
back to Designer Wallcoverings
·
auto-save: 2026-07-22T08:12:31 (2 files) — shopify/scripts/c 7d362d07 →