[object Object]

← back to Dw Photo Capture

Add ✨ New (N) filter chip (just the net-new sheet SKUs to create) + fix doubled name==color titles; verified create-on-photo end-to-end (Cremona Parchment created live w/ full info + deleted)

7e0a77def21290b896e48f2d40db3c4a974b027a · 2026-06-24 18:01:19 -0700 · steve@designerwallcoverings.com

Files touched

Diff

commit 7e0a77def21290b896e48f2d40db3c4a974b027a
Author: steve@designerwallcoverings.com <steve@designerwallcoverings.com>
Date:   Wed Jun 24 18:01:19 2026 -0700

    Add ✨ New (N) filter chip (just the net-new sheet SKUs to create) + fix doubled name==color titles; verified create-on-photo end-to-end (Cremona Parchment created live w/ full info + deleted)
---
 data/build.json |  5 +++--
 server.js       | 11 +++++++----
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/data/build.json b/data/build.json
index e449a64..d30ab2b 100644
--- a/data/build.json
+++ b/data/build.json
@@ -1,5 +1,5 @@
 {
-  "next": 15,
+  "next": 16,
   "map": {
     "578af86f": 2,
     "bc95fdb0": 3,
@@ -13,6 +13,7 @@
     "76a90668": 11,
     "5ef2ebe2": 12,
     "788487db": 13,
-    "3a1be30f": 14
+    "3a1be30f": 14,
+    "d0f0df55": 15
   }
 }
\ No newline at end of file
diff --git a/server.js b/server.js
index 0ea5571..7596f47 100644
--- a/server.js
+++ b/server.js
@@ -287,10 +287,13 @@ SHEET.forEach(x => { if (x.grs) SHEET_BY_GRS[x.grs.toUpperCase()] = x; });
 const tcase = s => (s || '').split(/\s+/).map(w => w ? w[0].toUpperCase() + w.slice(1) : w).join(' ');
 
 function sheetTitle(s) {
-  const col = s.color ? ' ' + s.color : '';
-  if (s.name) return `${s.name}${col} Grasscloth Wallcovering | Fentucci`;
-  if (s.material) return `Fentucci ${s.material} Grasscloth Wallcovering${s.color ? ' — ' + s.color : ''}`;
-  return `Fentucci Grasscloth Wallcovering${s.color ? ' — ' + s.color : ''}`;
+  const name = (s.name || '').trim(), color = (s.color || '').trim();
+  // drop a redundant color when the "name" already IS the color (some sheet rows duplicate them)
+  const nl = name.toLowerCase(), cl = color.toLowerCase();
+  const col = (color && nl !== cl && !nl.includes(cl) && !cl.includes(nl)) ? ' ' + color : '';
+  if (name) return `${name}${col} Grasscloth Wallcovering | Fentucci`;
+  if (s.material) return `Fentucci ${s.material} Grasscloth Wallcovering${color ? ' — ' + color : ''}`;
+  return `Fentucci Grasscloth Wallcovering${color ? ' — ' + color : ''}`;
 }
 function sheetBody(s) {
   const lead = s.name || (s.material ? `Fentucci ${s.material} grasscloth` : 'This Fentucci grasscloth');

← 06a420e auto-save: 2026-06-24T17:58:43 (3 files) — data/build.json p  ·  back to Dw Photo Capture  ·  Add end-to-end test for All-Shopify search + keep/replace ph 6a655b4 →