[object Object]

← back to Dw Yolo Loop

Schumacher: junk-product filter in build-line (skip vendor-name-only titles + imageless); snapshot 2326 clean, colors extracted

51eefb7c0fbbd9d52a0b47fc54db4ceb6ec123dc · 2026-06-12 13:08:22 -0700 · Steve Abrams

Files touched

Diff

commit 51eefb7c0fbbd9d52a0b47fc54db4ceb6ec123dc
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Fri Jun 12 13:08:22 2026 -0700

    Schumacher: junk-product filter in build-line (skip vendor-name-only titles + imageless); snapshot 2326 clean, colors extracted
---
 artmura-site/build-line.js | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/artmura-site/build-line.js b/artmura-site/build-line.js
index ab4fcc0..97cc23f 100644
--- a/artmura-site/build-line.js
+++ b/artmura-site/build-line.js
@@ -74,6 +74,13 @@ async function metafields(pid) {
     const sku = (yard.sku || '').trim().replace(/-sample$/i, '');   // sample-only products: drop the -SAMPLE suffix
     const tags = (p.tags || '').split(',').map(s => s.trim()).filter(Boolean);
     const baseTitle = p.title.replace(/\s*\|\s*[^|]+$/, '').replace(/\s+Wallcovering$/i, '');
+    // skip placeholder/junk products: title is just the vendor name (e.g. "Schumacher | Schumacher
+    // Wallcovering") or no image — these have no real pattern and pollute the lookbook.
+    const cleanBase = baseTitle.replace(/\s+/g, ' ').trim().toLowerCase();
+    const isJunk = !cleanBase || cleanBase === VENDOR.toLowerCase()
+      || cleanBase === `${VENDOR} ${VENDOR}`.toLowerCase()
+      || !(p.images && p.images.length);
+    if (isJunk) continue;
     if (sku) handles[sku.toUpperCase()] = p.handle;
     products.push({
       mfr_sku: mf.mfr_sku || sku,

← 66accf5 Schumacher config block + collection created (/collections/s  ·  back to Dw Yolo Loop  ·  Schumacher landing LIVE (2326 products, 38/38 clickthrough); 4791fbe →