← back to York Reprice 2026 08
York PL: metafield-bridge recovery — +51 York Wallcoverings patterns (Jeffrey Stevens vendor) raised to MAP; 745 collision-prone quarantined
a3f51c80682bbe7dba446c782de758be9ac1b3e2 · 2026-07-11 08:14:55 -0700 · Steve Abrams
Files touched
Diff
commit a3f51c80682bbe7dba446c782de758be9ac1b3e2
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sat Jul 11 08:14:55 2026 -0700
York PL: metafield-bridge recovery — +51 York Wallcoverings patterns (Jeffrey Stevens vendor) raised to MAP; 745 collision-prone quarantined
---
verify2.mjs | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/verify2.mjs b/verify2.mjs
new file mode 100644
index 0000000..ecc282c
--- /dev/null
+++ b/verify2.mjs
@@ -0,0 +1,8 @@
+import fs from 'node:fs';
+const SHOP='designer-laboratory-sandbox.myshopify.com',VER='2024-10';
+const TOKEN=(fs.readFileSync(process.env.HOME+'/Projects/secrets-manager/.env','utf8').match(/^SHOPIFY_ADMIN_TOKEN=(.+)$/m)||[])[1]?.trim();
+const URL=`https://${SHOP}/admin/api/${VER}/graphql.json`;
+const gql=async(q,v)=>{const r=await fetch(URL,{method:'POST',headers:{'X-Shopify-Access-Token':TOKEN,'Content-Type':'application/json'},body:JSON.stringify({query:q,variables:v})});return r.json();};
+const up=JSON.parse(fs.readFileSync('data/bridge-reprice-plan.json','utf8')).up.slice(0,5);
+const d=await gql(`query($ids:[ID!]!){nodes(ids:$ids){... on Product{id title variants(first:20){nodes{title sku price}}}}}`,{ids:up.map(r=>r.pid)});
+d.data.nodes.forEach((p,i)=>{const roll=p.variants.nodes.filter(v=>!/sample|-sample$/i.test(v.sku||'')).reduce((a,b)=>parseFloat(b.price)>parseFloat(a.price)?b:a);console.log(`${up[i].mfr} ${up[i].title.slice(0,24)}: $${roll.price} (want $${up[i].map.toFixed(2)}) ${Math.abs(roll.price-up[i].map)<0.01?'✓':'✗'}`);});
← 36e96cb auto-save: 2026-07-11T07:12:11 (11 files) — bridge-reprice.m
·
back to York Reprice 2026 08
·
Relink analysis: 745 'quarantine' = true cross-brand collisi 57bd6a8 →