[object Object]

← back to Carnegie Reprice

metafields: REST with proof-exact namespaces (preserve space-keys rendering); dedup pilot handling; pilot memo

0fc1df318c58b34aebe8c0971468ae88c3594e74 · 2026-08-18 13:48:36 -0700 · steve

Files touched

Diff

commit 0fc1df318c58b34aebe8c0971468ae88c3594e74
Author: steve <steve@designerwallcoverings.com>
Date:   Tue Aug 18 13:48:36 2026 -0700

    metafields: REST with proof-exact namespaces (preserve space-keys rendering); dedup pilot handling; pilot memo
---
 .rebuild-gql.lock        |   1 +
 pilot-ids.json           | 132 +++++++++++++++++++++++++++++++++++++++++++++++
 rebuild-gql-ledger.jsonl |  37 +++++++++++++
 rebuild-gql.mjs          | Bin 0 -> 10697 bytes
 rebuild-line.mjs         |   8 +--
 5 files changed, 175 insertions(+), 3 deletions(-)

diff --git a/.rebuild-gql.lock b/.rebuild-gql.lock
new file mode 100644
index 0000000..4ddd012
--- /dev/null
+++ b/.rebuild-gql.lock
@@ -0,0 +1 @@
+72493
\ No newline at end of file
diff --git a/pilot-ids.json b/pilot-ids.json
new file mode 100644
index 0000000..a47230e
--- /dev/null
+++ b/pilot-ids.json
@@ -0,0 +1,132 @@
+[
+  {
+    "sku": "DWAG-379296",
+    "id": 7923090030643,
+    "handle": "carnegie-siltech-grain-color-1"
+  },
+  {
+    "sku": "DWAG-379307",
+    "id": 7923090063411,
+    "handle": "carnegie-siltech-grain-color-2"
+  },
+  {
+    "sku": "DWAG-379315",
+    "id": 7923090096179,
+    "handle": "carnegie-siltech-grain-color-3"
+  },
+  {
+    "sku": "DWAG-379316",
+    "id": 7923090128947,
+    "handle": "carnegie-siltech-grain-color-4"
+  },
+  {
+    "sku": "DWAG-379317",
+    "id": 7923090161715,
+    "handle": "carnegie-siltech-grain-color-5"
+  },
+  {
+    "sku": "DWAG-379318",
+    "id": 7923090194483,
+    "handle": "carnegie-siltech-grain-color-6"
+  },
+  {
+    "sku": "DWAG-379319",
+    "id": 7923090260019,
+    "handle": "carnegie-siltech-grain-color-7"
+  },
+  {
+    "sku": "DWAG-379320",
+    "id": 7923090292787,
+    "handle": "carnegie-siltech-grain-color-8"
+  },
+  {
+    "sku": "DWAG-379321",
+    "id": 7923090391091,
+    "handle": "carnegie-siltech-grain-color-9"
+  },
+  {
+    "sku": "DWAG-379297",
+    "id": 7923090423859,
+    "handle": "carnegie-siltech-grain-color-10"
+  },
+  {
+    "sku": "DWAG-379298",
+    "id": 7923090456627,
+    "handle": "carnegie-siltech-grain-color-11"
+  },
+  {
+    "sku": "DWAG-379299",
+    "id": 7923090489395,
+    "handle": "carnegie-siltech-grain-color-12"
+  },
+  {
+    "sku": "DWAG-379300",
+    "id": 7923090522163,
+    "handle": "carnegie-siltech-grain-color-13"
+  },
+  {
+    "sku": "DWAG-379301",
+    "id": 7923090554931,
+    "handle": "carnegie-siltech-grain-color-14"
+  },
+  {
+    "sku": "DWAG-379302",
+    "id": 7923090587699,
+    "handle": "carnegie-siltech-grain-color-15"
+  },
+  {
+    "sku": "DWAG-379303",
+    "id": 7923090620467,
+    "handle": "carnegie-siltech-grain-color-16"
+  },
+  {
+    "sku": "DWAG-379304",
+    "id": 7923090653235,
+    "handle": "carnegie-siltech-grain-color-17"
+  },
+  {
+    "sku": "DWAG-379305",
+    "id": 7923090686003,
+    "handle": "carnegie-siltech-grain-color-18"
+  },
+  {
+    "sku": "DWAG-379306",
+    "id": 7923090718771,
+    "handle": "carnegie-siltech-grain-color-19"
+  },
+  {
+    "sku": "DWAG-379308",
+    "id": 7923090751539,
+    "handle": "carnegie-siltech-grain-color-20"
+  },
+  {
+    "sku": "DWAG-379309",
+    "id": 7923090784307,
+    "handle": "carnegie-siltech-grain-color-21"
+  },
+  {
+    "sku": "DWAG-379310",
+    "id": 7923090817075,
+    "handle": "carnegie-siltech-grain-color-22"
+  },
+  {
+    "sku": "DWAG-379311",
+    "id": 7923090849843,
+    "handle": "carnegie-siltech-grain-color-23"
+  },
+  {
+    "sku": "DWAG-379312",
+    "id": 7923090915379,
+    "handle": "carnegie-siltech-grain-color-24"
+  },
+  {
+    "sku": "DWAG-379313",
+    "id": 7923090948147,
+    "handle": "carnegie-siltech-grain-color-25"
+  },
+  {
+    "sku": "DWAG-379314",
+    "id": 7923090980915,
+    "handle": "carnegie-siltech-grain-color-26"
+  }
+]
\ No newline at end of file
diff --git a/rebuild-gql-ledger.jsonl b/rebuild-gql-ledger.jsonl
new file mode 100644
index 0000000..8ac5379
--- /dev/null
+++ b/rebuild-gql-ledger.jsonl
@@ -0,0 +1,37 @@
+{"dw_sku":"DWAG-379296","error":"[{\"field\":[\"input\",\"metafields\",\"22\",\"type\"],\"message\":\"Type 'single_line_text_field' must be consistent with the definition's type: 'product_reference'.\"},{\"field\":[\"input\",\"metafields\",\"23\",\"type\"],\"message\":\"Type 'single_line_text_field'","at":"2026-08-18T20:42:14.964Z"}
+{"dw_sku":"DWAG-379296","product_id":"gid://shopify/Product/7923117031475","handle":"carnegie-siltech-grain-ivory-dwag-379296","status":"ACTIVE","color":"Ivory","retail":136,"imgCount":4,"mfCount":125,"userErrors":0,"at":"2026-08-18T20:43:44.263Z"}
+{"dw_sku":"DWAG-381677","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-abbey-oatmeal-dwag-381677' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:47:27.220Z"}
+{"dw_sku":"DWAG-381678","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-abbey-blush-dwag-381678' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:47:27.569Z"}
+{"dw_sku":"DWAG-381679","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-abbey-greige-dwag-381679' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:47:27.894Z"}
+{"dw_sku":"DWAG-381680","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-abbey-oatmeal-dwag-381680' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:47:28.250Z"}
+{"dw_sku":"DWAG-381681","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-abbey-oatmeal-dwag-381681' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:47:28.565Z"}
+{"dw_sku":"DWAG-381682","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-abbey-oatmeal-dwag-381682' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:47:28.865Z"}
+{"dw_sku":"DWAG-381784","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-abyss-charcoal-dwag-381784' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:47:29.212Z"}
+{"dw_sku":"DWAG-381785","product_id":"gid://shopify/Product/7923118178355","handle":"carnegie-abyss-black-dwag-381785","status":"ACTIVE","color":"Black","retail":132,"imgCount":4,"mfCount":107,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:47:32.823Z"}
+{"dw_sku":"DWAG-378329","product_id":"gid://shopify/Product/7923118211123","handle":"carnegie-acapella-beige-dwag-378329","status":"ACTIVE","color":"Beige","retail":76,"imgCount":3,"mfCount":105,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:47:35.769Z"}
+{"dw_sku":"DWAG-378336","product_id":"gid://shopify/Product/7923118243891","handle":"carnegie-acapella-beige-dwag-378336","status":"ACTIVE","color":"Beige","retail":76,"imgCount":4,"mfCount":101,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:47:39.250Z"}
+{"dw_sku":"DWAG-378330","product_id":"gid://shopify/Product/7923118276659","handle":"carnegie-acapella-khaki-dwag-378330","status":"ACTIVE","color":"Khaki","retail":76,"imgCount":3,"mfCount":105,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:47:42.024Z"}
+{"dw_sku":"DWAG-378337","product_id":"gid://shopify/Product/7923118309427","handle":"carnegie-acapella-khaki-dwag-378337","status":"ACTIVE","color":"Khaki","retail":76,"imgCount":4,"mfCount":101,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:47:45.048Z"}
+{"dw_sku":"DWAG-378338","product_id":"gid://shopify/Product/7923118342195","handle":"carnegie-acapella-sage-dwag-378338","status":"ACTIVE","color":"Sage","retail":76,"imgCount":4,"mfCount":101,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:47:48.467Z"}
+{"dw_sku":"DWAG-378331","product_id":"gid://shopify/Product/7923118440499","handle":"carnegie-acapella-sage-dwag-378331","status":"ACTIVE","color":"Sage","retail":76,"imgCount":3,"mfCount":105,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:47:51.597Z"}
+{"dw_sku":"DWAG-378339","product_id":"gid://shopify/Product/7923118473267","handle":"carnegie-acapella-khaki-dwag-378339","status":"ACTIVE","color":"Khaki","retail":76,"imgCount":4,"mfCount":101,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:47:54.603Z"}
+{"dw_sku":"DWAG-378332","product_id":"gid://shopify/Product/7923118506035","handle":"carnegie-acapella-khaki-dwag-378332","status":"ACTIVE","color":"Khaki","retail":76,"imgCount":3,"mfCount":105,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:47:57.481Z"}
+{"dw_sku":"DWAG-378340","product_id":"gid://shopify/Product/7923118538803","handle":"carnegie-acapella-khaki-dwag-378340","status":"ACTIVE","color":"Khaki","retail":76,"imgCount":4,"mfCount":101,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:00.207Z"}
+{"dw_sku":"DWAG-378333","product_id":"gid://shopify/Product/7923118571571","handle":"carnegie-acapella-khaki-dwag-378333","status":"ACTIVE","color":"Khaki","retail":76,"imgCount":3,"mfCount":105,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:02.905Z"}
+{"dw_sku":"DWAG-378341","product_id":"gid://shopify/Product/7923118604339","handle":"carnegie-acapella-sage-dwag-378341","status":"ACTIVE","color":"Sage","retail":76,"imgCount":4,"mfCount":101,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:05.957Z"}
+{"dw_sku":"DWAG-378334","product_id":"gid://shopify/Product/7923118637107","handle":"carnegie-acapella-sage-dwag-378334","status":"ACTIVE","color":"Sage","retail":76,"imgCount":3,"mfCount":105,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:08.408Z"}
+{"dw_sku":"DWAG-378335","product_id":"gid://shopify/Product/7923118669875","handle":"carnegie-acapella-slate-dwag-378335","status":"ACTIVE","color":"Slate","retail":76,"imgCount":3,"mfCount":105,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:11.225Z"}
+{"dw_sku":"DWAG-378342","product_id":"gid://shopify/Product/7923118702643","handle":"carnegie-acapella-slate-dwag-378342","status":"ACTIVE","color":"Slate","retail":76,"imgCount":4,"mfCount":101,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:14.556Z"}
+{"dw_sku":"DWAG-381739","product_id":"gid://shopify/Product/7923118735411","handle":"carnegie-aerial-beige-dwag-381739","status":"ACTIVE","color":"Beige","retail":92,"imgCount":4,"mfCount":107,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:17.204Z"}
+{"dw_sku":"DWAG-381740","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-aerial-oatmeal-dwag-381740' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:48:17.515Z"}
+{"dw_sku":"DWAG-381741","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-aerial-silver-dwag-381741' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:48:17.846Z"}
+{"dw_sku":"DWAG-381742","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-aerial-slate-dwag-381742' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:48:18.249Z"}
+{"dw_sku":"DWAG-381743","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-aerial-slate-dwag-381743' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:48:18.550Z"}
+{"dw_sku":"DWAG-380997","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-alder-silver-dwag-380997' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:48:18.867Z"}
+{"dw_sku":"DWAG-380998","error":"[{\"field\":[\"input\",\"handle\"],\"message\":\"Handle 'carnegie-alder-taupe-dwag-380998' already in use. Please provide a new handle.\"}]","at":"2026-08-18T20:48:19.188Z"}
+{"dw_sku":"DWAG-380999","product_id":"gid://shopify/Product/7923118768179","handle":"carnegie-alder-khaki-dwag-380999","status":"ACTIVE","color":"Khaki","retail":81,"imgCount":3,"mfCount":106,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:21.754Z"}
+{"dw_sku":"DWAG-381000","product_id":"gid://shopify/Product/7923118833715","handle":"carnegie-alder-camel-dwag-381000","status":"ACTIVE","color":"Camel","retail":81,"imgCount":3,"mfCount":106,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:24.856Z"}
+{"dw_sku":"DWAG-381001","product_id":"gid://shopify/Product/7923118899251","handle":"carnegie-alder-chocolate-dwag-381001","status":"ACTIVE","color":"Chocolate","retail":81,"imgCount":3,"mfCount":106,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:27.342Z"}
+{"dw_sku":"DWAG-381002","product_id":"gid://shopify/Product/7923118964787","handle":"carnegie-alder-black-dwag-381002","status":"ACTIVE","color":"Black","retail":81,"imgCount":3,"mfCount":106,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:29.762Z"}
+{"dw_sku":"DWAG-381003","product_id":"gid://shopify/Product/7923118997555","handle":"carnegie-alder-graphite-dwag-381003","status":"ACTIVE","color":"Graphite","retail":81,"imgCount":3,"mfCount":106,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:32.522Z"}
+{"dw_sku":"DWAG-381004","product_id":"gid://shopify/Product/7923119063091","handle":"carnegie-alder-slate-dwag-381004","status":"ACTIVE","color":"Slate","retail":81,"imgCount":3,"mfCount":106,"userErrors":0,"pubErr":null,"at":"2026-08-18T20:48:35.521Z"}
diff --git a/rebuild-gql.mjs b/rebuild-gql.mjs
new file mode 100644
index 0000000..1fef9a7
Binary files /dev/null and b/rebuild-gql.mjs differ
diff --git a/rebuild-line.mjs b/rebuild-line.mjs
index 6a2a377..9ce791b 100644
--- a/rebuild-line.mjs
+++ b/rebuild-line.mjs
@@ -143,15 +143,17 @@ function buildPayload(row){
   return { payload, spec, ident, colorName, retail, handle, imgCount: imgs.length, primary_hex: row.primary_hex };
 }
 
+// REST metafields — preserves the EXACT space-containing keys the proof rendered with
+// (global/custom/specifications/specs for specs; global/custom for identity — matching proof-one).
 async function setMetafields(pid, {spec, ident, primary_hex}){
   const mfs=[];
-  for(const ns of ['global','custom','specifications','specs','dwc'])
+  for(const ns of ['global','custom','specifications','specs'])
     for(const [k,v] of Object.entries(spec)) if(v) mfs.push({namespace:ns,key:k,type:'single_line_text_field',value:String(v).slice(0,900)});
-  for(const ns of ['global','custom','dwc'])
+  for(const ns of ['global','custom'])
     for(const [k,v] of Object.entries(ident)) if(v) mfs.push({namespace:ns,key:k,type:'single_line_text_field',value:String(v)});
   if(primary_hex) mfs.push({namespace:'custom',key:'color_hex',type:'single_line_text_field',value:primary_hex});
   let ok=0,err=0;
-  for(const m of mfs){ try{ await shop(`/products/${pid}/metafields.json`,{method:'POST',body:JSON.stringify({metafield:m})}); ok++; }catch{ err++; } await sleep(60); }
+  for(const m of mfs){ try{ await shop(`/products/${pid}/metafields.json`,{method:'POST',body:JSON.stringify({metafield:m})}); ok++; }catch{ err++; } await sleep(50); }
   return {ok,err};
 }
 

← 5cf2c4f incident recovery: reconstruct ledger from Shopify, dedup 5,  ·  back to Carnegie Reprice  ·  supervisor: 3 shards (429-retry makes it safe) f93c29d →