← back to Designer Wallcoverings
Tres Tintas designer-description pilot: executor + snippet case-fix + approval memo (officer signed off)
e8637bd7dfcd15f5b5d997a4ee5d0e461a0e0869 · 2026-06-23 07:10:41 -0700 · Steve
Files touched
M pending-approval/tres-tintas-designer-descriptions-pilot.mdM shopify/scripts/tres-tintas-designer-descriptions.js
Diff
commit e8637bd7dfcd15f5b5d997a4ee5d0e461a0e0869
Author: Steve <steve@designerwallcoverings.com>
Date: Tue Jun 23 07:10:41 2026 -0700
Tres Tintas designer-description pilot: executor + snippet case-fix + approval memo (officer signed off)
---
.../tres-tintas-designer-descriptions-pilot.md | 4 +++-
shopify/scripts/tres-tintas-designer-descriptions.js | 15 +++++++++------
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/pending-approval/tres-tintas-designer-descriptions-pilot.md b/pending-approval/tres-tintas-designer-descriptions-pilot.md
index f796abb0..aec0e404 100644
--- a/pending-approval/tres-tintas-designer-descriptions-pilot.md
+++ b/pending-approval/tres-tintas-designer-descriptions-pilot.md
@@ -1,7 +1,9 @@
# PENDING APPROVAL — Tres Tintas pilot: interior-designer descriptions + spec-metafield backfill (~554 products)
-**Drafted:** 2026-06-23 · **Status:** ⏳ AWAITING STEVE
+**Drafted:** 2026-06-23 · **Status:** ⏳ AWAITING STEVE — vp-dw-commerce SIGNED OFF (smoke-test-3-first path); Defect A closed.
**Owner officer:** vp-dw-commerce (DW catalog / Shopify / customer-facing)
+
+**Officer sign-off (2026-06-23):** vp-dw-commerce reviewed memo + executor + live snippet (both mirrors). Verdict: SIGN OFF with smoke-test-3 first. Confirmed: banned-word guard, metafield-FIRST ordering, additive/skip-if-present writes, idempotent ledger + per-product backups, correct LIVE store, every written metafield key is read by the `dw-specs` snippet. **Defect A (Material was writing legacy `global.Contents`, read only via fallback tail) — CLOSED:** `SPEC_MAP` retargeted to the snippet's canonical `custom.*` keys (Material→`custom.material`, Repeat→`custom.pattern_repeat`, Care→`custom.care`, Origin→`custom.origin`; Width/Weight/Fire already canonical). Re-dry-ran clean. Residual low-risk notes for a post-run audit: products doubling via a non-`<h3>` wrapper aren't caught (the 554 is a floor); no-image products are skipped (need separate image backfill); `Type=Mural` not metafield-backfilled (snippet has no Type row anyway); API version `2024-01` vs house `2024-10` (cosmetic).
**Gate reason:** Customer-facing LIVE Shopify writes — rewrites `body_html` description + sets product metafields on ~554 live products on the production store (`designer-laboratory-sandbox.myshopify.com`).
## What this is
diff --git a/shopify/scripts/tres-tintas-designer-descriptions.js b/shopify/scripts/tres-tintas-designer-descriptions.js
index be27097e..9d122fbd 100644
--- a/shopify/scripts/tres-tintas-designer-descriptions.js
+++ b/shopify/scripts/tres-tintas-designer-descriptions.js
@@ -64,17 +64,20 @@ function parseTable(html) {
}
// Every embedded-table label -> the metafield key dw-specs reads (no data loss).
+// Targets the snippet's CANONICAL custom.* keys (read FIRST) per Defect A
+// sign-off — avoids writing redundant legacy global.* keys that only render
+// via the fallback tail. Width/Weight/Fire were already canonical.
const SPEC_MAP = {
'Width': { ns: 'custom', key: 'width' },
'Length': { ns: 'custom', key: 'length' },
- 'Repeat': { ns: 'global', key: 'repeat' },
- 'Pattern Repeat': { ns: 'global', key: 'repeat' },
- 'Material': { ns: 'global', key: 'Contents' },
+ 'Repeat': { ns: 'custom', key: 'pattern_repeat' },
+ 'Pattern Repeat': { ns: 'custom', key: 'pattern_repeat' },
+ 'Material': { ns: 'custom', key: 'material' },
'Weight': { ns: 'custom', key: 'product_weight' },
'Fire Rating': { ns: 'custom', key: 'fire_rating' },
- 'Care Instructions': { ns: 'global', key: 'Cleaning' },
- 'Care': { ns: 'global', key: 'Cleaning' },
- 'Origin': { ns: 'global', key: 'Country' },
+ 'Care Instructions': { ns: 'custom', key: 'care' },
+ 'Care': { ns: 'custom', key: 'care' },
+ 'Origin': { ns: 'custom', key: 'origin' },
};
async function getMetafields(id) {
← 5438ce13 Fix Shopify schema validation errors in toolbar and filter s
·
back to Designer Wallcoverings
·
Fix Liquid error: convert collection-toolbar section to snip d2fc51db →