[object Object]

← back to Designer Wallcoverings

cadence: arm Anna French (lift DENY_VENDORS after link-and-skip) + type-aware title/intro for mixed-type vendors (fabric rows no longer titled 'Wallcoverings')

01c6646f751ab0db95fa6893f1ce189323cba9ad · 2026-06-25 17:42:29 -0700 · Steve

Files touched

Diff

commit 01c6646f751ab0db95fa6893f1ce189323cba9ad
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Jun 25 17:42:29 2026 -0700

    cadence: arm Anna French (lift DENY_VENDORS after link-and-skip) + type-aware title/intro for mixed-type vendors (fabric rows no longer titled 'Wallcoverings')
---
 shopify/scripts/cadence/cadence-import.js | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/shopify/scripts/cadence/cadence-import.js b/shopify/scripts/cadence/cadence-import.js
index 4ce65a41..461502ae 100644
--- a/shopify/scripts/cadence/cadence-import.js
+++ b/shopify/scripts/cadence/cadence-import.js
@@ -577,7 +577,8 @@ function buildInput(vendor, cfg, row, retail, activate) {
   const color = rawColor ? titleCase(stripCodes(rawColor)) : '';
   let core = color ? `${pattern}, ${color}` : pattern;
   if (!core) core = titleCase(row.pattern_name || '') || row.dw_sku;   // never fall back to mfr_sku in title
-  const title = `${core} Wallcoverings | ${vendor}`.replace(/wallpaper/gi,'Wallcovering');
+  const typeWord = /fabric/i.test(productType) ? 'Fabric' : 'Wallcoverings';   // mixed-type vendors (Anna French): fabric rows must not be titled "Wallcoverings"
+  const title = `${core} ${typeWord} | ${vendor}`.replace(/wallpaper/gi,'Wallcovering');
   const handle = (`${core}-${row.dw_sku}`).toLowerCase().replace(/[^a-z0-9]+/g,'-').replace(/^-+|-+$/g,'').slice(0,100);
   const specs = [];
   if (row.material) specs.push(`<li><strong>Material:</strong> ${esc(row.material)}</li>`);
@@ -587,7 +588,7 @@ function buildInput(vendor, cfg, row, retail, activate) {
   specs.push(`<li><strong>Sold By:</strong> ${esc(soldBy)}</li>`);
   const safeVendor = scrubBanned(vendor);
   const safeCollection = scrubBanned(row.collection);
-  const intro = `${pattern}${color?' in '+color:''} is a designer wallcovering${safeCollection?' from the '+esc(safeCollection)+' collection':''} by ${safeVendor}. Priced per ${soldBy.toLowerCase()}.`;
+  const intro = `${pattern}${color?' in '+color:''} is a designer ${/fabric/i.test(productType)?'fabric':'wallcovering'}${safeCollection?' from the '+esc(safeCollection)+' collection':''} by ${safeVendor}. Priced per ${soldBy.toLowerCase()}.`;
   const SL='single_line_text_field', ML='multi_line_text_field', ND='number_decimal';
   const mf=[]; const m=(ns,k,v,t)=>{ if(v!=null&&v!=='') mf.push({namespace:ns,key:k,type:t,value:String(v)}); };
   m('custom','manufacturer_sku',row.mfr_sku,SL); m('global','manufacturer_sku',row.mfr_sku,SL);

← 79b4034f Jeffrey Stevens disco reconciliation: staged York scrape run  ·  back to Designer Wallcoverings  ·  auto-save: 2026-06-25T18:06:20 (6 files) — pending-approval/ 205a826b →