[object Object]

← back to Designer Wallcoverings

Designtex fill-in Step 2 COMPLETE: UOM flip verified 0 'Priced Per Single Roll' live (77 prior + 25 tag residue + 3 Pebble metafield). Relabel-only, price untouched.

b813d7d80859acb463009f69683454b7c45696d7 · 2026-06-23 15:58:36 -0700 · Steve

Files touched

Diff

commit b813d7d80859acb463009f69683454b7c45696d7
Author: Steve <steve@designerwallcoverings.com>
Date:   Tue Jun 23 15:58:36 2026 -0700

    Designtex fill-in Step 2 COMPLETE: UOM flip verified 0 'Priced Per Single Roll' live (77 prior + 25 tag residue + 3 Pebble metafield). Relabel-only, price untouched.
---
 .../clean-roll-tag-residue-results.json            | 127 +++++++++++++++++++++
 .../designtex-uom-fix/designtex-roll-residue.json  |   4 +
 .../designtex-uom-fix/flip-3-pebble-metafield.mjs  |  29 +++++
 3 files changed, 160 insertions(+)

diff --git a/audits/designtex-uom-fix/clean-roll-tag-residue-results.json b/audits/designtex-uom-fix/clean-roll-tag-residue-results.json
new file mode 100644
index 00000000..7030c2f3
--- /dev/null
+++ b/audits/designtex-uom-fix/clean-roll-tag-residue-results.json
@@ -0,0 +1,127 @@
+[
+  {
+    "id": "gid://shopify/Product/7865500794931",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865500827699",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865500860467",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865500893235",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865500926003",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865522913331",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865522946099",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865522978867",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865523011635",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865523044403",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865523077171",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865523142707",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865523175475",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865526845491",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865526878259",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865526943795",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865526976563",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865527009331",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865527042099",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865527074867",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865527107635",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7865534939187",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7866902937651",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7866902970419",
+    "ok": true,
+    "errs": []
+  },
+  {
+    "id": "gid://shopify/Product/7866903003187",
+    "ok": true,
+    "errs": []
+  }
+]
\ No newline at end of file
diff --git a/audits/designtex-uom-fix/designtex-roll-residue.json b/audits/designtex-uom-fix/designtex-roll-residue.json
new file mode 100644
index 00000000..b4b19f49
--- /dev/null
+++ b/audits/designtex-uom-fix/designtex-roll-residue.json
@@ -0,0 +1,4 @@
+{
+  "rollMf": [],
+  "rollTag": []
+}
\ No newline at end of file
diff --git a/audits/designtex-uom-fix/flip-3-pebble-metafield.mjs b/audits/designtex-uom-fix/flip-3-pebble-metafield.mjs
new file mode 100644
index 00000000..f20e2cad
--- /dev/null
+++ b/audits/designtex-uom-fix/flip-3-pebble-metafield.mjs
@@ -0,0 +1,29 @@
+import fs from 'fs'; import os from 'os'; import path from 'path';
+const TOK = fs.readFileSync(path.join(os.homedir(),'Projects/secrets-manager/.env'),'utf8').match(/^SHOPIFY_ADMIN_TOKEN=(.+)$/m)[1].trim();
+const DOMAIN='designer-laboratory-sandbox.myshopify.com', VER='2024-10';
+const gql=(q,v)=>fetch(`https://${DOMAIN}/admin/api/${VER}/graphql.json`,{method:'POST',headers:{'X-Shopify-Access-Token':TOK,'Content-Type':'application/json'},body:JSON.stringify({query:q,variables:v})}).then(r=>r.json());
+const ids=[
+  'gid://shopify/Product/7866902937651', // Pebble Hematite
+  'gid://shopify/Product/7866902970419', // Pebble Alabaster
+  'gid://shopify/Product/7866903003187', // Pebble Starfish
+];
+const mfMut=`mutation($mf:[MetafieldsSetInput!]!){ metafieldsSet(metafields:$mf){ userErrors{ field message } } }`;
+const tagRm=`mutation($id:ID!,$tags:[String!]!){ tagsRemove(id:$id,tags:$tags){ userErrors{ message } } }`;
+const tagAdd=`mutation($id:ID!,$tags:[String!]!){ tagsAdd(id:$id,tags:$tags){ userErrors{ message } } }`;
+const varQ=`query($id:ID!){ product(id:$id){ variants(first:5){ edges{ node{ id title } } } } }`;
+const varMut=`mutation($pid:ID!,$variants:[ProductVariantsBulkInput!]!){ productVariantsBulkUpdate(productId:$pid,variants:$variants){ userErrors{ message } } }`;
+const EXECUTE=process.argv.includes('--execute');
+console.log('Mode:',EXECUTE?'EXECUTE':'DRY',' targets:',ids.length,'(relabel-only, price never sent)');
+if(!EXECUTE) process.exit(0);
+for(const id of ids){
+  const errs=[];
+  const m=await gql(mfMut,{mf:[{ownerId:id,namespace:'global',key:'unit_of_measure',type:'single_line_text_field',value:'YARD'}]});
+  (m.data?.metafieldsSet?.userErrors||[]).forEach(e=>errs.push('mf:'+e.message));
+  const tr=await gql(tagRm,{id,tags:['Priced Per Single Roll']}); (tr.data?.tagsRemove?.userErrors||[]).forEach(e=>errs.push('tagRm:'+e.message));
+  const ta=await gql(tagAdd,{id,tags:['Priced Per Yard']}); (ta.data?.tagsAdd?.userErrors||[]).forEach(e=>errs.push('tagAdd:'+e.message));
+  const vq=await gql(varQ,{id});
+  const vs=(vq.data?.product?.variants?.edges||[]).map(e=>e.node).filter(v=>!/Sample/i.test(v.title)&&/Roll/i.test(v.title));
+  if(vs.length){ const vm=await gql(varMut,{pid:id,variants:vs.map(v=>({id:v.id,optionValues:[{optionName:'Title',name:'Yard'}]}))}); (vm.data?.productVariantsBulkUpdate?.userErrors||[]).forEach(e=>errs.push('var:'+e.message)); }
+  console.log(id, errs.length?('ERR '+errs.join('; ')):'ok');
+  await new Promise(x=>setTimeout(x,400));
+}

← 4b710456 Close 2 stale Tres Tintas pending-approval memos (work compl  ·  back to Designer Wallcoverings  ·  Designtex fill-in Step 4 COMPLETE: verified 0/130 discontinu 20c44252 →