← back to Filemaker Mcp
create 3 missing DWTT Baxter WALLPAPER masters (73433 Navy/73435 Beige/73436 Silver) — recordIds 536615-17; combo sku + Dw Retail Price are calcs, omitted from write
9bad19ac06574d7f02593f50e6e51450a641d729 · 2026-07-01 15:44:05 -0700 · Steve Abrams
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Files touched
A scripts/create-dwtt-baxter-73433-35-36.mjs
Diff
commit 9bad19ac06574d7f02593f50e6e51450a641d729
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Jul 1 15:44:05 2026 -0700
create 3 missing DWTT Baxter WALLPAPER masters (73433 Navy/73435 Beige/73436 Silver) — recordIds 536615-17; combo sku + Dw Retail Price are calcs, omitted from write
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---
scripts/create-dwtt-baxter-73433-35-36.mjs | 84 ++++++++++++++++++++++++++++++
1 file changed, 84 insertions(+)
diff --git a/scripts/create-dwtt-baxter-73433-35-36.mjs b/scripts/create-dwtt-baxter-73433-35-36.mjs
new file mode 100644
index 0000000..b602f91
--- /dev/null
+++ b/scripts/create-dwtt-baxter-73433-35-36.mjs
@@ -0,0 +1,84 @@
+// One-off: create 3 missing WALLPAPER master records for Thibaut Baxter colorways
+// (DWTT-73433 Navy, DWTT-73435 Beige, DWTT-73436 Silver). Specs verified against
+// dw_unified.thibaut_catalog. Sibling DWTT73434 = recordId 536611 (mirrored style).
+// CALC FIELDS (FM error 201 if written): combo sku, Dw Retail Price, comboskuwithdash,
+// comboskuplussample — all omitted from the write; combo sku derives from Series+JS Pattern
+// and Dw Retail Price from its pricing inputs. All verified post-create instead.
+// Usage: node scripts/create-dwtt-baxter-73433-35-36.mjs [--commit]
+// Default (no flags) = dry-run showing the exact fieldData; --commit creates + verifies.
+
+import { readFileSync } from 'node:fs';
+import { fileURLToPath } from 'node:url';
+import { dirname, join } from 'node:path';
+
+const __dir = dirname(fileURLToPath(import.meta.url));
+for (const line of readFileSync(join(__dir, '..', '.env'), 'utf8').split('\n')) {
+ const m = line.match(/^([A-Z_]+)=(.*)$/);
+ if (m && !process.env[m[1]]) process.env[m[1]] = m[2];
+}
+
+const { findRecords, createRecord } = await import('../src/fm-client.js');
+
+const DB = 'WALLPAPER';
+const LAYOUT = '*List Wallpapers - Shopify Detail Database';
+const commit = process.argv.includes('--commit');
+
+const COMMON = {
+ 'Series': 'DWTT',
+ 'vid': 'Thib',
+ 'Width': '20.5"',
+ 'Repeat': '5.5"',
+ 'Record Type': 'Master',
+ 'Date Line Put Up:': '7/1/2026',
+ 'MFR MAP PRICE': '',
+ 'Net Price': 56.70,
+ 'Content': 'Non Woven',
+ 'Mfr Name of Pattern': 'Baxter',
+ 'Collection': 'SMALL SCALE',
+};
+
+// sku = expected value of the calc field "combo sku" (Series+JS Pattern) — guard/verify only.
+const ROWS = [
+ { sku: 'DWTT73433', 'JS Pattern': '73433', 'Mfr Pattern': 'AT79124', 'mfr pattern number': 'AT79124',
+ 'Name of Pattern': 'Baxter, Navy Wallcoverings | Thibaut', 'Color of Pattern': 'Navy', 'Mfr Color of Pattern': 'Navy' },
+ { sku: 'DWTT73435', 'JS Pattern': '73435', 'Mfr Pattern': 'AT79127', 'mfr pattern number': 'AT79127',
+ 'Name of Pattern': 'Baxter, Beige Wallcoverings | Thibaut', 'Color of Pattern': 'Beige', 'Mfr Color of Pattern': 'Beige' },
+ { sku: 'DWTT73436', 'JS Pattern': '73436', 'Mfr Pattern': 'AT79129', 'mfr pattern number': 'AT79129',
+ 'Name of Pattern': 'Baxter, Silver Wallcoverings | Thibaut', 'Color of Pattern': 'Silver', 'Mfr Color of Pattern': 'Silver' },
+];
+
+for (const { sku, ...row } of ROWS) {
+ // fail-closed duplicate guard
+ let exists = false;
+ try {
+ const { records } = await findRecords(DB, LAYOUT, { 'combo sku': `==${sku}` }, { limit: 1 });
+ exists = records.length > 0;
+ if (exists) console.log(`SKIP ${sku}: already exists as recordId ${records[0].recordId}`);
+ } catch (e) {
+ if (e.fmCode !== '401') throw e; // 401 = no records match = safe to create
+ }
+ if (exists) continue;
+
+ const fieldData = { ...COMMON, ...row };
+ const res = await createRecord(DB, LAYOUT, fieldData, { dryRun: !commit });
+ console.log(commit ? `CREATED ${sku}:` : `DRY RUN ${sku}:`, JSON.stringify(res, null, 1));
+
+ if (commit) {
+ const { records } = await findRecords(DB, LAYOUT, { 'combo sku': `==${sku}` }, { limit: 2 });
+ const f = records[0]?.fieldData || {};
+ console.log(`VERIFY ${sku}:`, JSON.stringify({
+ recordId: records[0]?.recordId,
+ 'combo sku': f['combo sku'],
+ 'comboskuwithdash': f['comboskuwithdash'],
+ 'comboskuplussample': f['comboskuplussample'],
+ 'Mfr Pattern': f['Mfr Pattern'],
+ 'mfr pattern number': f['mfr pattern number'],
+ 'Name of Pattern': f['Name of Pattern'],
+ 'Color of Pattern': f['Color of Pattern'],
+ 'Dw Retail Price': f['Dw Retail Price'],
+ 'Net Price': f['Net Price'],
+ 'Width': f['Width'], 'Repeat': f['Repeat'],
+ 'Record Type': f['Record Type'], 'Collection': f['Collection'], 'Content': f['Content'],
+ }, null, 1));
+ }
+}
← 2412a37 test: dummy client+invoice demo scripts (999999/Testy McTest
·
back to Filemaker Mcp
·
fix DWTT73434 (recordId 536611) Mfr Pattern AT79129->AT79126 94f5487 →