[object Object]

← back to York Yardgood Exec

York tail-32: relabel-all + Trousseau reprice executor + rollback

3be87726579b322c0882d61fe83d0884cda569e6 · 2026-09-09 16:00:38 -0700 · Steve

Files touched

Diff

commit 3be87726579b322c0882d61fe83d0884cda569e6
Author: Steve <steve@designerwallcoverings.com>
Date:   Wed Sep 9 16:00:38 2026 -0700

    York tail-32: relabel-all + Trousseau reprice executor + rollback
---
 data/restore-map.jsonl  |  72 ++++++++++
 data/york32-target.json | 354 ++++++++++++++++++++++++++++++++++++++++++++++++
 verify.mjs              |  13 ++
 york32.mjs              |  47 +++++++
 4 files changed, 486 insertions(+)

diff --git a/data/restore-map.jsonl b/data/restore-map.jsonl
new file mode 100644
index 0000000..21de7e1
--- /dev/null
+++ b/data/restore-map.jsonl
@@ -0,0 +1,72 @@
+{"ts":"2026-09-09T22:45:57.318Z","pid":"7882746822707","sellVid":"gid://shopify/ProductVariant/44525052297267","sampleVid":"gid://shopify/ProductVariant/44525052264499","old":{"price":"46.57","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:45:59.482Z","pid":"7882746855475","sellVid":"gid://shopify/ProductVariant/44525052362803","sampleVid":"gid://shopify/ProductVariant/44525052330035","old":{"price":"46.57","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:01.532Z","pid":"7882746888243","sellVid":"gid://shopify/ProductVariant/44525052428339","sampleVid":"gid://shopify/ProductVariant/44525052395571","old":{"price":"46.57","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:03.639Z","pid":"7882746921011","sellVid":"gid://shopify/ProductVariant/44525052493875","sampleVid":"gid://shopify/ProductVariant/44525052461107","old":{"price":"46.57","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:05.577Z","pid":"7882746953779","sellVid":"gid://shopify/ProductVariant/44525052559411","sampleVid":"gid://shopify/ProductVariant/44525052526643","old":{"price":"46.57","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:07.580Z","pid":"7882746986547","sellVid":"gid://shopify/ProductVariant/44525052624947","sampleVid":"gid://shopify/ProductVariant/44525052592179","old":{"price":"46.57","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:09.580Z","pid":"7882747019315","sellVid":"gid://shopify/ProductVariant/44525052690483","sampleVid":"gid://shopify/ProductVariant/44525052657715","old":{"price":"46.57","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:11.818Z","pid":"7882747052083","sellVid":"gid://shopify/ProductVariant/44525052756019","sampleVid":"gid://shopify/ProductVariant/44525052723251","old":{"price":"46.57","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:13.846Z","pid":"7882747084851","sellVid":"gid://shopify/ProductVariant/44525052821555","sampleVid":"gid://shopify/ProductVariant/44525052788787","old":{"price":"46.57","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:15.836Z","pid":"7882753081395","sellVid":"gid://shopify/ProductVariant/44525063536691","sampleVid":"gid://shopify/ProductVariant/44525063503923","old":{"price":"75.98","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:18.146Z","pid":"7882755571763","sellVid":"gid://shopify/ProductVariant/44525068517427","sampleVid":"gid://shopify/ProductVariant/44525068484659","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:20.457Z","pid":"7882755604531","sellVid":"gid://shopify/ProductVariant/44525068582963","sampleVid":"gid://shopify/ProductVariant/44525068550195","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:22.551Z","pid":"7882755637299","sellVid":"gid://shopify/ProductVariant/44525068648499","sampleVid":"gid://shopify/ProductVariant/44525068615731","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:24.659Z","pid":"7882755670067","sellVid":"gid://shopify/ProductVariant/44525068714035","sampleVid":"gid://shopify/ProductVariant/44525068681267","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:26.665Z","pid":"7882755702835","sellVid":"gid://shopify/ProductVariant/44525068779571","sampleVid":"gid://shopify/ProductVariant/44525068746803","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:28.765Z","pid":"7882755801139","sellVid":"gid://shopify/ProductVariant/44525068976179","sampleVid":"gid://shopify/ProductVariant/44525068943411","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:32.144Z","pid":"7882755866675","sellVid":"gid://shopify/ProductVariant/44525069107251","sampleVid":"gid://shopify/ProductVariant/44525069074483","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:34.147Z","pid":"7882755932211","sellVid":"gid://shopify/ProductVariant/44525069238323","sampleVid":"gid://shopify/ProductVariant/44525069205555","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:38.947Z","pid":"7882755997747","sellVid":"gid://shopify/ProductVariant/44525069369395","sampleVid":"gid://shopify/ProductVariant/44525069336627","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:41.109Z","pid":"7882756096051","sellVid":"gid://shopify/ProductVariant/44525069533235","sampleVid":"gid://shopify/ProductVariant/44525069500467","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:43.081Z","pid":"7882756194355","sellVid":"gid://shopify/ProductVariant/44525069729843","sampleVid":"gid://shopify/ProductVariant/44525069697075","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:46.011Z","pid":"7882756227123","sellVid":"gid://shopify/ProductVariant/44525069795379","sampleVid":"gid://shopify/ProductVariant/44525069762611","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:48.028Z","pid":"7882756259891","sellVid":"gid://shopify/ProductVariant/44525069893683","sampleVid":"gid://shopify/ProductVariant/44525069860915","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:50.108Z","pid":"7882756325427","sellVid":"gid://shopify/ProductVariant/44525070975027","sampleVid":"gid://shopify/ProductVariant/44525070942259","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:52.043Z","pid":"7882756358195","sellVid":"gid://shopify/ProductVariant/44525071040563","sampleVid":"gid://shopify/ProductVariant/44525071007795","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:54.037Z","pid":"7882756423731","sellVid":"gid://shopify/ProductVariant/44525071171635","sampleVid":"gid://shopify/ProductVariant/44525071138867","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:55.970Z","pid":"7882756489267","sellVid":"gid://shopify/ProductVariant/44525071302707","sampleVid":"gid://shopify/ProductVariant/44525071269939","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:46:58.232Z","pid":"7882756554803","sellVid":"gid://shopify/ProductVariant/44525071433779","sampleVid":"gid://shopify/ProductVariant/44525071401011","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:00.233Z","pid":"7882756620339","sellVid":"gid://shopify/ProductVariant/44525071564851","sampleVid":"gid://shopify/ProductVariant/44525071532083","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:02.392Z","pid":"7882756685875","sellVid":"gid://shopify/ProductVariant/44525071695923","sampleVid":"gid://shopify/ProductVariant/44525071663155","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:04.583Z","pid":"7882756915251","sellVid":"gid://shopify/ProductVariant/44525072154675","sampleVid":"gid://shopify/ProductVariant/44525072121907","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:06.628Z","pid":"7882757013555","sellVid":"gid://shopify/ProductVariant/44525072351283","sampleVid":"gid://shopify/ProductVariant/44525072318515","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:08.786Z","pid":"7882757079091","sellVid":"gid://shopify/ProductVariant/44525072482355","sampleVid":"gid://shopify/ProductVariant/44525072449587","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:11.009Z","pid":"7882757111859","sellVid":"gid://shopify/ProductVariant/44525072547891","sampleVid":"gid://shopify/ProductVariant/44525072515123","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:13.591Z","pid":"7882757177395","sellVid":"gid://shopify/ProductVariant/44525072678963","sampleVid":"gid://shopify/ProductVariant/44525072646195","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:15.731Z","pid":"7882757242931","sellVid":"gid://shopify/ProductVariant/44525072810035","sampleVid":"gid://shopify/ProductVariant/44525072777267","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:17.769Z","pid":"7882758291507","sellVid":"gid://shopify/ProductVariant/44525074743347","sampleVid":"gid://shopify/ProductVariant/44525074710579","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:19.899Z","pid":"7882758324275","sellVid":"gid://shopify/ProductVariant/44525074808883","sampleVid":"gid://shopify/ProductVariant/44525074776115","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:21.912Z","pid":"7882758422579","sellVid":"gid://shopify/ProductVariant/44525075005491","sampleVid":"gid://shopify/ProductVariant/44525074972723","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:23.893Z","pid":"7882758520883","sellVid":"gid://shopify/ProductVariant/44525075398707","sampleVid":"gid://shopify/ProductVariant/44525075365939","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:26.140Z","pid":"7882760192051","sellVid":"gid://shopify/ProductVariant/44525078741043","sampleVid":"gid://shopify/ProductVariant/44525078708275","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:28.285Z","pid":"7882760290355","sellVid":"gid://shopify/ProductVariant/44525078937651","sampleVid":"gid://shopify/ProductVariant/44525078904883","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:30.410Z","pid":"7882760355891","sellVid":"gid://shopify/ProductVariant/44525079068723","sampleVid":"gid://shopify/ProductVariant/44525079035955","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:32.509Z","pid":"7882760388659","sellVid":"gid://shopify/ProductVariant/44525079134259","sampleVid":"gid://shopify/ProductVariant/44525079101491","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:34.590Z","pid":"7882760486963","sellVid":"gid://shopify/ProductVariant/44525079330867","sampleVid":"gid://shopify/ProductVariant/44525079298099","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:36.763Z","pid":"7882760519731","sellVid":"gid://shopify/ProductVariant/44525079396403","sampleVid":"gid://shopify/ProductVariant/44525079363635","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:38.765Z","pid":"7882761535539","sellVid":"gid://shopify/ProductVariant/44525080707123","sampleVid":"gid://shopify/ProductVariant/44525080674355","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:40.718Z","pid":"7882761601075","sellVid":"gid://shopify/ProductVariant/44525080838195","sampleVid":"gid://shopify/ProductVariant/44525080805427","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:42.606Z","pid":"7882761666611","sellVid":"gid://shopify/ProductVariant/44525080969267","sampleVid":"gid://shopify/ProductVariant/44525080936499","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:44.575Z","pid":"7882761732147","sellVid":"gid://shopify/ProductVariant/44525081100339","sampleVid":"gid://shopify/ProductVariant/44525081067571","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:46.615Z","pid":"7882761830451","sellVid":"gid://shopify/ProductVariant/44525081296947","sampleVid":"gid://shopify/ProductVariant/44525081264179","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:48.749Z","pid":"7882761863219","sellVid":"gid://shopify/ProductVariant/44525081362483","sampleVid":"gid://shopify/ProductVariant/44525081329715","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:50.904Z","pid":"7882761961523","sellVid":"gid://shopify/ProductVariant/44525081559091","sampleVid":"gid://shopify/ProductVariant/44525081526323","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:52.862Z","pid":"7882762944563","sellVid":"gid://shopify/ProductVariant/44525083525171","sampleVid":"gid://shopify/ProductVariant/44525083492403","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:54.937Z","pid":"7882762977331","sellVid":"gid://shopify/ProductVariant/44525083590707","sampleVid":"gid://shopify/ProductVariant/44525083557939","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:47:58.219Z","pid":"7882763010099","sellVid":"gid://shopify/ProductVariant/44525083656243","sampleVid":"gid://shopify/ProductVariant/44525083623475","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:00.505Z","pid":"7882763042867","sellVid":"gid://shopify/ProductVariant/44525083721779","sampleVid":"gid://shopify/ProductVariant/44525083689011","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:02.590Z","pid":"7882763075635","sellVid":"gid://shopify/ProductVariant/44525083787315","sampleVid":"gid://shopify/ProductVariant/44525083754547","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:04.598Z","pid":"7882763599923","sellVid":"gid://shopify/ProductVariant/44525085032499","sampleVid":"gid://shopify/ProductVariant/44525084999731","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:06.585Z","pid":"7882763632691","sellVid":"gid://shopify/ProductVariant/44525085098035","sampleVid":"gid://shopify/ProductVariant/44525085065267","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:08.899Z","pid":"7882763665459","sellVid":"gid://shopify/ProductVariant/44525085163571","sampleVid":"gid://shopify/ProductVariant/44525085130803","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:10.910Z","pid":"7882763698227","sellVid":"gid://shopify/ProductVariant/44525085229107","sampleVid":"gid://shopify/ProductVariant/44525085196339","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:13.183Z","pid":"7882763730995","sellVid":"gid://shopify/ProductVariant/44525085294643","sampleVid":"gid://shopify/ProductVariant/44525085261875","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:15.329Z","pid":"7882763763763","sellVid":"gid://shopify/ProductVariant/44525085360179","sampleVid":"gid://shopify/ProductVariant/44525085327411","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:17.635Z","pid":"7882765303859","sellVid":"gid://shopify/ProductVariant/44525088440371","sampleVid":"gid://shopify/ProductVariant/44525088407603","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:19.700Z","pid":"7882765336627","sellVid":"gid://shopify/ProductVariant/44525088505907","sampleVid":"gid://shopify/ProductVariant/44525088473139","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:21.763Z","pid":"7882765369395","sellVid":"gid://shopify/ProductVariant/44525088571443","sampleVid":"gid://shopify/ProductVariant/44525088538675","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:23.772Z","pid":"7882765402163","sellVid":"gid://shopify/ProductVariant/44525088636979","sampleVid":"gid://shopify/ProductVariant/44525088604211","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:25.705Z","pid":"7882765434931","sellVid":"gid://shopify/ProductVariant/44525088702515","sampleVid":"gid://shopify/ProductVariant/44525088669747","old":{"price":"24.51","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:28.048Z","pid":"7882754228275","sellVid":"gid://shopify/ProductVariant/44525065830451","sampleVid":"gid://shopify/ProductVariant/44525065797683","old":{"price":"39.22","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:29.786Z","pid":"7882754261043","sellVid":"gid://shopify/ProductVariant/44525065895987","sampleVid":"gid://shopify/ProductVariant/44525065863219","old":{"price":"39.22","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
+{"ts":"2026-09-09T22:48:31.737Z","pid":"7882754293811","sellVid":"gid://shopify/ProductVariant/44525065961523","sampleVid":"gid://shopify/ProductVariant/44525065928755","old":{"price":"39.22","uom":"Priced Per Single Roll","sellPos":1,"samplePos":2,"title":"Sold Per Single Roll"}}
diff --git a/data/york32-target.json b/data/york32-target.json
new file mode 100644
index 0000000..1282719
--- /dev/null
+++ b/data/york32-target.json
@@ -0,0 +1,354 @@
+[
+ {
+  "product_id": "7882755211315",
+  "sell_sku": "DWJS-91858",
+  "pattern": "Argent Deep",
+  "group": "Argent",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "22.06",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882755244083",
+  "sell_sku": "DWJS-91859",
+  "pattern": "Argent",
+  "group": "Argent",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "22.06",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764189747",
+  "sell_sku": "DWJS-92088",
+  "pattern": "Trousseau",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764222515",
+  "sell_sku": "DWJS-92089",
+  "pattern": "Trousseau Balanced",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764255283",
+  "sell_sku": "DWJS-92090",
+  "pattern": "Trousseau",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764288051",
+  "sell_sku": "DWJS-92091",
+  "pattern": "Trousseau",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764320819",
+  "sell_sku": "DWJS-92092",
+  "pattern": "Trousseau",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764353587",
+  "sell_sku": "DWJS-92093",
+  "pattern": "Trousseau Crushed",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764386355",
+  "sell_sku": "DWJS-92094",
+  "pattern": "Trousseau",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764419123",
+  "sell_sku": "DWJS-92095",
+  "pattern": "Trousseau Dorian",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764451891",
+  "sell_sku": "DWJS-92096",
+  "pattern": "Trousseau Gold",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764484659",
+  "sell_sku": "DWJS-92097",
+  "pattern": "Trousseau Ibis",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764517427",
+  "sell_sku": "DWJS-92098",
+  "pattern": "Trousseau",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764550195",
+  "sell_sku": "DWJS-92099",
+  "pattern": "Trousseau",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764582963",
+  "sell_sku": "DWJS-92100",
+  "pattern": "Trousseau",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764615731",
+  "sell_sku": "DWJS-92101",
+  "pattern": "Trousseau",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7882764648499",
+  "sell_sku": "DWJS-92102",
+  "pattern": "Trousseau",
+  "group": "Trousseau",
+  "retail": 70.59,
+  "msrp": 39.0,
+  "net": 39.0,
+  "current_price": "31.87",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720158259",
+  "sell_sku": "DWJS-92436",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720191027",
+  "sell_sku": "DWJS-92437",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720223795",
+  "sell_sku": "DWJS-92438",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720256563",
+  "sell_sku": "DWJS-92439",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720289331",
+  "sell_sku": "DWJS-92440",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720322099",
+  "sell_sku": "DWJS-92441",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720354867",
+  "sell_sku": "DWJS-92442",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720387635",
+  "sell_sku": "DWJS-92443",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720420403",
+  "sell_sku": "DWJS-92444",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720453171",
+  "sell_sku": "DWJS-92445",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720485939",
+  "sell_sku": "DWJS-92446",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720518707",
+  "sell_sku": "DWJS-92447",
+  "pattern": "Nuovo Light",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720551475",
+  "sell_sku": "DWJS-92448",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720584243",
+  "sell_sku": "DWJS-92449",
+  "pattern": "Nuovo Light",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "161.50",
+  "current_uom": "Priced Per Single Roll"
+ },
+ {
+  "product_id": "7885720617011",
+  "sell_sku": "DWJS-92450",
+  "pattern": "Nuovo",
+  "group": "Nuovo",
+  "retail": null,
+  "msrp": null,
+  "net": null,
+  "current_price": "195.50",
+  "current_uom": "Priced Per Single Roll"
+ }
+]
\ No newline at end of file
diff --git a/verify.mjs b/verify.mjs
new file mode 100644
index 0000000..c4481e0
--- /dev/null
+++ b/verify.mjs
@@ -0,0 +1,13 @@
+import { readFileSync } from 'node:fs';
+const TOKEN=readFileSync(process.env.HOME+'/Projects/secrets-manager/.env','utf8').split('\n').find(l=>l.startsWith('SHOPIFY_ADMIN_TOKEN=')).split('=')[1].trim();
+const SHOP='https://designer-laboratory-sandbox.myshopify.com/admin/api/2024-10/graphql.json';
+const tgt=JSON.parse(readFileSync('./data/york73-target.json'));
+const pick=['DWJS-91828','DWJS-91910','DWJS-92009','DWJS-91645','DWJS-91830'];
+for(const sku of pick){
+  const t=tgt.find(x=>x.sell_sku===sku); if(!t){console.log(sku,'not in target');continue;}
+  const pid=`gid://shopify/Product/${t.product_id}`;
+  const q=`{p:product(id:"${pid}"){ uom:metafield(namespace:"global",key:"unit_of_measure"){value} min:metafield(namespace:"global",key:"v_prods_quantity_order_min"){value} variants(first:5){edges{node{title price position}}}}}`;
+  const r=await (await fetch(SHOP,{method:'POST',headers:{'X-Shopify-Access-Token':TOKEN,'Content-Type':'application/json'},body:JSON.stringify({query:q})})).json();
+  const p=r.data.p; const sell=p.variants.edges.map(e=>e.node).find(v=>!/sample/i.test(v.title))||p.variants.edges[0].node;
+  console.log(`${sku} ${t.pattern.padEnd(14)} $${sell.price} '${sell.title}' pos${sell.position} | uom=${p.uom?.value} min=${p.min?.value} (expect $${t.retail})`);
+}
diff --git a/york32.mjs b/york32.mjs
new file mode 100644
index 0000000..5b74642
--- /dev/null
+++ b/york32.mjs
@@ -0,0 +1,47 @@
+#!/usr/bin/env node
+// York tail-32: relabel ALL (Sold Per Yard + min5/step1); reprice ONLY rows with a retail (Trousseau -> $70.59).
+// DRY-RUN default; --apply writes. Reversible: data/restore-map-32.jsonl. Idempotent/resumable.
+import { readFileSync, appendFileSync } from 'node:fs';
+const APPLY = process.argv.includes('--apply');
+const TOKEN = readFileSync(process.env.HOME+'/Projects/secrets-manager/.env','utf8').split('\n').find(l=>l.startsWith('SHOPIFY_ADMIN_TOKEN=')).split('=')[1].trim();
+const SHOP='https://designer-laboratory-sandbox.myshopify.com/admin/api/2024-10/graphql.json';
+const T='single_line_text_field', ND='number_decimal';
+const DIR=new URL('.',import.meta.url).pathname;
+const targets=JSON.parse(readFileSync(DIR+'data/york32-target.json'));
+const REST=DIR+'data/restore-map-32.jsonl';
+const sleep=ms=>new Promise(r=>setTimeout(r,ms));
+async function gql(q,v){for(let a=0;a<4;a++){try{const r=await fetch(SHOP,{method:'POST',headers:{'X-Shopify-Access-Token':TOKEN,'Content-Type':'application/json'},body:JSON.stringify({query:q,variables:v})});const j=await r.json();if(j.errors&&/throttl/i.test(JSON.stringify(j.errors))){await sleep(2000);continue;}return j;}catch(e){await sleep(1500);}}throw new Error('gql');}
+const Q=`query($id:ID!){product(id:$id){id title uomMf:metafield(namespace:"global",key:"unit_of_measure"){value} variants(first:15){edges{node{id title price position sku}}}}}`;
+let ok=0,skip=0,fail=0;
+for(const t of targets){
+  const pid=`gid://shopify/Product/${t.product_id}`;
+  const r=await gql(Q,{id:pid}); const p=r.data&&r.data.product;
+  if(!p){console.log('  MISS',t.sell_sku);fail++;continue;}
+  const vs=p.variants.edges.map(e=>e.node);
+  const sample=vs.find(v=>/sample/i.test(v.title)||v.price==='4.25'||/-sample$/i.test(v.sku||''));
+  const sell=vs.find(v=>v!==sample)||vs[0];
+  const curUom=p.uomMf?.value||'';
+  const priceTarget=t.retail?String(t.retail):sell.price; // relabel-only keeps current price
+  const already=curUom==='Sold Per Yard' && sell.position===1 && (!t.retail || sell.price===String(t.retail));
+  if(already){console.log('  = already',t.sell_sku,t.pattern);skip++;continue;}
+  const act=t.retail?`$${sell.price}->$${t.retail}`:`relabel-only (keep $${sell.price})`;
+  if(!APPLY){console.log(`  DRY ${t.sell_sku} ${t.group.padEnd(9)} ${act} | ${curUom||'?'}->Sold Per Yard | sellPos ${sell.position}`);ok++;continue;}
+  appendFileSync(REST,JSON.stringify({ts:new Date().toISOString(),pid:t.product_id,sellVid:sell.id,sampleVid:sample?.id,old:{price:sell.price,uom:curUom,sellPos:sell.position,title:sell.title}})+'\n');
+  const mfs=[
+    {ownerId:pid,namespace:'global',key:'unit_of_measure',type:T,value:'Sold Per Yard'},
+    {ownerId:pid,namespace:'global',key:'v_prods_quantity_order_min',type:T,value:'5'},
+    {ownerId:pid,namespace:'global',key:'v_prods_quantity_order_units',type:T,value:'1'},
+    {ownerId:sell.id,namespace:'custom',key:'v_prod_quantity_order_min',type:T,value:'5'},
+    {ownerId:sell.id,namespace:'custom',key:'v_prods_quantity_order_units',type:T,value:'1'},
+  ];
+  if(t.msrp) mfs.push({ownerId:pid,namespace:'custom',key:'us_msrp',type:ND,value:t.msrp.toFixed(2)});
+  if(sample) mfs.push({ownerId:sample.id,namespace:'custom',key:'v_prod_quantity_order_min',type:T,value:'1'});
+  const m=await gql(`mutation($m:[MetafieldsSetInput!]!){metafieldsSet(metafields:$m){userErrors{message}}}`,{m:mfs});
+  if(m.data.metafieldsSet.userErrors.length){console.log('  MF-ERR',t.sell_sku,JSON.stringify(m.data.metafieldsSet.userErrors));fail++;continue;}
+  const vu=await gql(`mutation($pid:ID!,$v:[ProductVariantsBulkInput!]!){productVariantsBulkUpdate(productId:$pid,variants:$v){userErrors{message}}}`,
+    {pid,v:[{id:sell.id,price:priceTarget,optionValues:[{optionName:'Size',name:'Sold Per Yard'}]}]});
+  if(vu.data.productVariantsBulkUpdate.userErrors.length){console.log('  VAR-ERR',t.sell_sku,JSON.stringify(vu.data.productVariantsBulkUpdate.userErrors));fail++;continue;}
+  if(sample && sell.position!==1) await gql(`mutation($pid:ID!,$m:[ProductVariantPositionInput!]!){productVariantsBulkReorder(productId:$pid,positions:$m){userErrors{message}}}`,{pid,m:[{id:sell.id,position:1},{id:sample.id,position:2}]});
+  console.log(`  OK ${t.sell_sku} ${t.group} ${act}`);ok++;await sleep(400);
+}
+console.log(`\n${APPLY?'APPLIED':'DRY-RUN'} — ok=${ok} skip=${skip} fail=${fail} of ${targets.length}`);

← 4b0d976 Short launchers apply.sh/rollback.sh (avoid paste wrap-break  ·  back to York Yardgood Exec  ·  auto-data-snapshot: 2026-09-09T16:10:41 (1 data files) — dat f27b650 →