← back to Designer Wallcoverings
auto-save: 2026-06-30T16:41:53 (8 files) — pending-approval/boost-filter-consolidation-2026-06-25 shopify/scripts/cadence/data/cadence-cursor.json shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json shopify/scripts/cadence/data/cadence-plan-pm-2026-06-30.json shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl
11b2896f83740e34990ce653fd3bdb6be9be142e · 2026-06-30 16:42:07 -0700 · Steve Abrams
Files touched
M shopify/scripts/cadence/data/cadence-cursor.jsonM shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.jsonM shopify/scripts/cadence/data/cadence-plan-pm-2026-06-30.jsonM shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonlA shopify/scripts/dwtt-annafrench-min2-FLAGGED.mdA shopify/scripts/set-dwtt-annafrench-roll-min2-step2.py
Diff
commit 11b2896f83740e34990ce653fd3bdb6be9be142e
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue Jun 30 16:42:07 2026 -0700
auto-save: 2026-06-30T16:41:53 (8 files) — pending-approval/boost-filter-consolidation-2026-06-25 shopify/scripts/cadence/data/cadence-cursor.json shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json shopify/scripts/cadence/data/cadence-plan-pm-2026-06-30.json shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl
---
shopify/scripts/cadence/data/cadence-cursor.json | 2 +-
.../cadence/data/cadence-plan-am-2026-06-30.json | 156 ++++----------
.../cadence/data/cadence-plan-pm-2026-06-30.json | 228 ++++++++++-----------
.../cadence/data/upload-restore-2026-06-30.jsonl | 15 ++
shopify/scripts/dwtt-annafrench-min2-FLAGGED.md | 133 ++++++++++++
.../scripts/set-dwtt-annafrench-roll-min2-step2.py | 109 ++++++++++
6 files changed, 410 insertions(+), 233 deletions(-)
diff --git a/shopify/scripts/cadence/data/cadence-cursor.json b/shopify/scripts/cadence/data/cadence-cursor.json
index 41f4d1a4..46a820f9 100644
--- a/shopify/scripts/cadence/data/cadence-cursor.json
+++ b/shopify/scripts/cadence/data/cadence-cursor.json
@@ -1,5 +1,5 @@
{
- "idx": 1,
+ "idx": 6,
"lastSlot": "pm",
"lastRun": "2026-06-30"
}
\ No newline at end of file
diff --git a/shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json b/shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json
index 33bcfb3c..8272957f 100644
--- a/shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json
+++ b/shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json
@@ -1,182 +1,102 @@
[
{
- "vendor": "Home Couture",
- "dw_sku": "DWHJ-900140",
+ "vendor": "Phillip Jeffries",
+ "dw_sku": "DWJP-14511",
"cost": 0,
"retail": 0,
"sample": "4.25",
"sampleOnly": true,
- "title": "Navy French Blue on Ivory Wallcoverings | Home Couture",
- "willActivate": true
+ "title": "Extra Fine Arrowroot, Feather Wallcoverings | Phillip Jeffries",
+ "willActivate": false
},
{
- "vendor": "Home Couture",
- "dw_sku": "DWHJ-900141",
+ "vendor": "Phillip Jeffries",
+ "dw_sku": "DWJP-14512",
"cost": 0,
"retail": 0,
"sample": "4.25",
"sampleOnly": true,
- "title": "Red Burgundy Purple on Ivory Wallcoverings | Home Couture",
- "willActivate": true
+ "title": "Extra Fine Arrowroot, Maple Wallcoverings | Phillip Jeffries",
+ "willActivate": false
},
{
- "vendor": "Home Couture",
- "dw_sku": "DWHJ-900142",
+ "vendor": "Phillip Jeffries",
+ "dw_sku": "DWJP-14513",
"cost": 0,
"retail": 0,
"sample": "4.25",
"sampleOnly": true,
- "title": "Red Burgundy Purple Turquoise Wallcoverings | Home Couture",
- "willActivate": true
+ "title": "Extra Fine Arrowroot, Wheat Wallcoverings | Phillip Jeffries",
+ "willActivate": false
},
{
- "vendor": "Suncloth",
- "dw_sku": "DWUX-800143",
+ "vendor": "Phillip Jeffries",
+ "dw_sku": "DWJP-14514",
"cost": 0,
"retail": 0,
"sample": "4.25",
"sampleOnly": true,
- "title": "Yellow on White Wallcoverings | Suncloth",
+ "title": "Extra Fine Arrowroot, Khaki Wallcoverings | Phillip Jeffries",
"willActivate": false
},
{
- "vendor": "Suncloth",
- "dw_sku": "DWUX-800144",
+ "vendor": "Phillip Jeffries",
+ "dw_sku": "DWJP-14515",
"cost": 0,
"retail": 0,
"sample": "4.25",
"sampleOnly": true,
- "title": "Green on White Wallcoverings | Suncloth",
+ "title": "Extra Fine Arrowroot, Tobacco Wallcoverings | Phillip Jeffries",
"willActivate": false
},
{
- "vendor": "Suncloth",
- "dw_sku": "DWUX-800145",
+ "vendor": "Phillip Jeffries",
+ "dw_sku": "DWJP-14516",
"cost": 0,
"retail": 0,
"sample": "4.25",
"sampleOnly": true,
- "title": "Royal Blue on White Wallcoverings | Suncloth",
+ "title": "Japanese Woven Jute, Natural Wallcoverings | Phillip Jeffries",
"willActivate": false
},
{
- "vendor": "Plains",
- "dw_sku": "DWYP-1000140",
+ "vendor": "Phillip Jeffries",
+ "dw_sku": "DWJP-14517",
"cost": 0,
"retail": 0,
"sample": "4.25",
"sampleOnly": true,
- "title": "Harbor Cloth, Rose Wallcoverings | Plains",
- "willActivate": true
+ "title": "Japanese Woven Jute, Cream Wallcoverings | Phillip Jeffries",
+ "willActivate": false
},
{
- "vendor": "Plains",
- "dw_sku": "DWYP-1000141",
+ "vendor": "Phillip Jeffries",
+ "dw_sku": "DWJP-14518",
"cost": 0,
"retail": 0,
"sample": "4.25",
"sampleOnly": true,
- "title": "Harbor Cloth, Heather Wallcoverings | Plains",
- "willActivate": true
+ "title": "Classic Linen, Douglas Ivory Wallcoverings | Phillip Jeffries",
+ "willActivate": false
},
{
- "vendor": "Plains",
- "dw_sku": "DWYP-1000142",
+ "vendor": "Phillip Jeffries",
+ "dw_sku": "DWJP-14519",
"cost": 0,
"retail": 0,
"sample": "4.25",
"sampleOnly": true,
- "title": "Harbor Cloth, Khaki Wallcoverings | Plains",
- "willActivate": true
- },
- {
- "vendor": "Romo",
- "dw_sku": "DWRM-240167",
- "cost": 1364,
- "retail": 2468.78,
- "sample": "4.25",
- "sampleOnly": false,
- "title": "Bakbak, Indigo Wallcoverings | Romo",
- "willActivate": true
- },
- {
- "vendor": "Romo",
- "dw_sku": "DWRM-240187",
- "cost": 490.6,
- "retail": 887.96,
- "sample": "4.25",
- "sampleOnly": false,
- "title": "Suru, Typhoon Wallcoverings | Romo",
- "willActivate": true
- },
- {
- "vendor": "Romo",
- "dw_sku": "DWRM-240194",
- "cost": 451,
- "retail": 816.29,
- "sample": "4.25",
- "sampleOnly": false,
- "title": "Palm, Harvest Wallcoverings | Romo",
- "willActivate": true
- },
- {
- "vendor": "Thibaut",
- "dw_sku": "DWTT-73599",
- "cost": 45,
- "retail": 81.45,
- "sample": "4.25",
- "sampleOnly": false,
- "title": "Solis, Navy Wallcoverings | Thibaut",
- "willActivate": true
- },
- {
- "vendor": "Thibaut",
- "dw_sku": "DWTT-73600",
- "cost": 45,
- "retail": 81.45,
- "sample": "4.25",
- "sampleOnly": false,
- "title": "Solis, Yellow Wallcoverings | Thibaut",
- "willActivate": true
- },
- {
- "vendor": "Thibaut",
- "dw_sku": "DWTT-73601",
- "cost": 58.5,
- "retail": 105.88,
- "sample": "4.25",
- "sampleOnly": false,
- "title": "Travelers Palm, Navy and White Wallcoverings | Thibaut",
- "willActivate": true
- },
- {
- "vendor": "Designtex",
- "dw_sku": "DWDX-220462",
- "cost": 26,
- "retail": 47.06,
- "sample": "4.25",
- "sampleOnly": false,
- "title": "Nico, Powder Wallcoverings | Designtex",
- "willActivate": false
- },
- {
- "vendor": "Designtex",
- "dw_sku": "DWDX-220463",
- "cost": 26,
- "retail": 47.06,
- "sample": "4.25",
- "sampleOnly": false,
- "title": "Nico, Trail Wallcoverings | Designtex",
+ "title": "Gaucho Cloth, Twilight Blue Wallcoverings | Phillip Jeffries",
"willActivate": false
},
{
- "vendor": "Designtex",
- "dw_sku": "DWDX-220464",
- "cost": 26,
- "retail": 47.06,
+ "vendor": "Phillip Jeffries",
+ "dw_sku": "DWJP-14520",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Nico, Ray Wallcoverings | Designtex",
+ "sampleOnly": true,
+ "title": "Abaca Breeze, Cotton Wallcoverings | Phillip Jeffries",
"willActivate": false
}
]
\ No newline at end of file
diff --git a/shopify/scripts/cadence/data/cadence-plan-pm-2026-06-30.json b/shopify/scripts/cadence/data/cadence-plan-pm-2026-06-30.json
index 724271bd..9bb7ef6d 100644
--- a/shopify/scripts/cadence/data/cadence-plan-pm-2026-06-30.json
+++ b/shopify/scripts/cadence/data/cadence-plan-pm-2026-06-30.json
@@ -1,182 +1,182 @@
[
{
- "vendor": "Quadrille",
- "dw_sku": "DWQC-600147",
- "cost": 0,
- "retail": 0,
+ "vendor": "Romo",
+ "dw_sku": "DWRM-240167",
+ "cost": 1364,
+ "retail": 2468.78,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Les Indiennes Multi Color, Multi Blue Salmon Red Wallcoverings | Quadrille",
+ "sampleOnly": false,
+ "title": "Bakbak, Indigo Wallcoverings | Romo",
"willActivate": true
},
{
- "vendor": "Quadrille",
- "dw_sku": "DWQC-600148",
- "cost": 0,
- "retail": 0,
+ "vendor": "Romo",
+ "dw_sku": "DWRM-240187",
+ "cost": 490.6,
+ "retail": 887.96,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Les Indiennes Multi Color, Multi Lilac Plum Green Wallcoverings | Quadrille",
+ "sampleOnly": false,
+ "title": "Suru, Typhoon Wallcoverings | Romo",
"willActivate": true
},
{
- "vendor": "Quadrille",
- "dw_sku": "DWQC-600149",
- "cost": 0,
- "retail": 0,
+ "vendor": "Romo",
+ "dw_sku": "DWRM-240194",
+ "cost": 451,
+ "retail": 816.29,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Les Indiennes Multi Color, Multi Brown Taupe Lilac Wallcoverings | Quadrille",
+ "sampleOnly": false,
+ "title": "Palm, Harvest Wallcoverings | Romo",
"willActivate": true
},
{
- "vendor": "Alan Campbell",
- "dw_sku": "DWAK-700148",
- "cost": 0,
- "retail": 0,
+ "vendor": "Thibaut",
+ "dw_sku": "DWTT-73605",
+ "cost": 38.7,
+ "retail": 70.05,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Navy on Tint Wallcoverings | Alan Campbell",
+ "sampleOnly": false,
+ "title": "Henley Plaid, Beige Wallcoverings | Thibaut",
"willActivate": true
},
{
- "vendor": "Alan Campbell",
- "dw_sku": "DWAK-700149",
- "cost": 0,
- "retail": 0,
+ "vendor": "Thibaut",
+ "dw_sku": "DWTT-73606",
+ "cost": 195.3,
+ "retail": 353.48,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Bali Blue on White Wallcoverings | Alan Campbell",
+ "sampleOnly": false,
+ "title": "Mackinac, Natural Wallcoverings | Thibaut",
"willActivate": true
},
{
- "vendor": "Alan Campbell",
- "dw_sku": "DWAK-700150",
- "cost": 0,
- "retail": 0,
+ "vendor": "Thibaut",
+ "dw_sku": "DWTT-73607",
+ "cost": 195.3,
+ "retail": 353.48,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Camel II on Tint Wallcoverings | Alan Campbell",
+ "sampleOnly": false,
+ "title": "Mackinac, White Wallcoverings | Thibaut",
"willActivate": true
},
{
- "vendor": "Home Couture",
- "dw_sku": "DWHJ-900146",
- "cost": 0,
- "retail": 0,
+ "vendor": "Designtex",
+ "dw_sku": "DWDX-220468",
+ "cost": 26,
+ "retail": 47.06,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Melon Camel on Cream Wallcoverings | Home Couture",
- "willActivate": true
+ "sampleOnly": false,
+ "title": "Nico, Pacific Wallcoverings | Designtex",
+ "willActivate": false
},
{
- "vendor": "Home Couture",
- "dw_sku": "DWHJ-900147",
- "cost": 0,
- "retail": 0,
+ "vendor": "Designtex",
+ "dw_sku": "DWDX-220469",
+ "cost": 26,
+ "retail": 47.06,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Custom Blue on Off White Wallcoverings | Home Couture",
- "willActivate": true
+ "sampleOnly": false,
+ "title": "Nico, Dusk Wallcoverings | Designtex",
+ "willActivate": false
},
{
- "vendor": "Home Couture",
- "dw_sku": "DWHJ-900148",
- "cost": 0,
- "retail": 0,
+ "vendor": "Designtex",
+ "dw_sku": "DWDX-220470",
+ "cost": 26,
+ "retail": 47.06,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Celadon on Off White Wallcoverings | Home Couture",
- "willActivate": true
+ "sampleOnly": false,
+ "title": "Nico, Mountain Wallcoverings | Designtex",
+ "willActivate": false
},
{
- "vendor": "Suncloth",
- "dw_sku": "DWUX-800149",
- "cost": 0,
- "retail": 0,
+ "vendor": "Newwall",
+ "dw_sku": "DWXW-1005264",
+ "cost": 297.6,
+ "retail": 538.64,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Watermelon on White Wallcoverings | Suncloth",
- "willActivate": false
+ "sampleOnly": false,
+ "title": "Spiral Chaos Black, Black Wallcoverings | Newwall",
+ "willActivate": true
},
{
- "vendor": "Suncloth",
- "dw_sku": "DWUX-800150",
- "cost": 0,
- "retail": 0,
+ "vendor": "Newwall",
+ "dw_sku": "DWXW-1005265",
+ "cost": 297.6,
+ "retail": 538.64,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Navy on White Wallcoverings | Suncloth",
- "willActivate": false
+ "sampleOnly": false,
+ "title": "Spiral Chaos Smoked Grey, Smoked Grey Wallcoverings | Newwall",
+ "willActivate": true
},
{
- "vendor": "Suncloth",
- "dw_sku": "DWUX-800151",
- "cost": 0,
- "retail": 0,
+ "vendor": "Newwall",
+ "dw_sku": "DWXW-1005266",
+ "cost": 328,
+ "retail": 593.67,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Camel on White Wallcoverings | Suncloth",
- "willActivate": false
+ "sampleOnly": false,
+ "title": "Whirling Dervish Beige, Beige Wallcoverings | Newwall",
+ "willActivate": true
},
{
- "vendor": "Plains",
- "dw_sku": "DWYP-1000146",
- "cost": 0,
- "retail": 0,
+ "vendor": "Brewster & York",
+ "dw_sku": "DWBR-170825",
+ "cost": 90,
+ "retail": 162.9,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Turquoise Wallcoverings | Plains",
- "willActivate": false
+ "sampleOnly": false,
+ "title": "Tate, Green Wallcoverings | Malibu Wallcovering",
+ "willActivate": true
},
{
- "vendor": "Plains",
- "dw_sku": "DWYP-1000147",
- "cost": 0,
- "retail": 0,
+ "vendor": "Brewster & York",
+ "dw_sku": "DWBR-170826",
+ "cost": 90,
+ "retail": 162.9,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Chartreuse Wallcoverings | Plains",
- "willActivate": false
+ "sampleOnly": false,
+ "title": "Alannah, Bone Wallcoverings | Malibu Wallcovering",
+ "willActivate": true
},
{
- "vendor": "Plains",
- "dw_sku": "DWYP-1000148",
- "cost": 0,
- "retail": 0,
+ "vendor": "Brewster & York",
+ "dw_sku": "DWBR-170827",
+ "cost": 90,
+ "retail": 162.9,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Siena Wallcoverings | Plains",
- "willActivate": false
+ "sampleOnly": false,
+ "title": "Groh, Green Wallcoverings | Malibu Wallcovering",
+ "willActivate": true
},
{
- "vendor": "Romo",
- "dw_sku": "DWRM-240167",
- "cost": 1364,
- "retail": 2468.78,
+ "vendor": "Kravet",
+ "dw_sku": "DWKK-102865",
+ "cost": 60.45,
+ "retail": 90.67,
"sample": "4.25",
"sampleOnly": false,
- "title": "Bakbak, Indigo Wallcoverings | Romo",
+ "title": "Kravet Smart, Gray Wallcoverings | Kravet",
"willActivate": true
},
{
- "vendor": "Romo",
- "dw_sku": "DWRM-240187",
- "cost": 490.6,
- "retail": 887.96,
+ "vendor": "Kravet",
+ "dw_sku": "DWKK-102866",
+ "cost": 60.45,
+ "retail": 90.67,
"sample": "4.25",
"sampleOnly": false,
- "title": "Suru, Typhoon Wallcoverings | Romo",
+ "title": "Kravet Smart, Gray Wallcoverings | Kravet",
"willActivate": true
},
{
- "vendor": "Romo",
- "dw_sku": "DWRM-240194",
- "cost": 451,
- "retail": 816.29,
+ "vendor": "Kravet",
+ "dw_sku": "DWKK-102867",
+ "cost": 60.45,
+ "retail": 90.67,
"sample": "4.25",
"sampleOnly": false,
- "title": "Palm, Harvest Wallcoverings | Romo",
+ "title": "Kravet Smart, Off-White Wallcoverings | Kravet",
"willActivate": true
}
]
\ No newline at end of file
diff --git a/shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl b/shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl
index 3a0c15e2..83d0bba9 100644
--- a/shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl
+++ b/shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl
@@ -359,3 +359,18 @@
{"table":"quadrille_house_catalog","mfr_sku":"6200-06","dw_sku":"DWYP-1000146","shopify_product_id":"7871918374963","action":"created","activated":false,"published":false,"sampleOnly":true,"status":"DRAFT","batch_id":"upload-pm-2026-06-30T22-40-02-239Z","ts":"2026-06-30T22:40:45.173Z"}
{"table":"quadrille_house_catalog","mfr_sku":"6200-09","dw_sku":"DWYP-1000147","shopify_product_id":"7871918473267","action":"created","activated":false,"published":false,"sampleOnly":true,"status":"DRAFT","batch_id":"upload-pm-2026-06-30T22-40-02-239Z","ts":"2026-06-30T22:40:47.093Z"}
{"table":"quadrille_house_catalog","mfr_sku":"6200-16","dw_sku":"DWYP-1000148","shopify_product_id":"7871918538803","action":"created","activated":false,"published":false,"sampleOnly":true,"status":"DRAFT","batch_id":"upload-pm-2026-06-30T22-40-02-239Z","ts":"2026-06-30T22:40:49.026Z"}
+{"table":"thibaut_catalog","mfr_sku":"T1024","dw_sku":"DWTT-73605","shopify_product_id":"7871941181491","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:14.248Z"}
+{"table":"thibaut_catalog","mfr_sku":"T10300","dw_sku":"DWTT-73606","shopify_product_id":"7871941214259","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:17.799Z"}
+{"table":"thibaut_catalog","mfr_sku":"T10301","dw_sku":"DWTT-73607","shopify_product_id":"7871941279795","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:21.407Z"}
+{"table":"designtex_catalog","mfr_sku":"6752404","dw_sku":"DWDX-220468","shopify_product_id":"7871941312563","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:23.574Z"}
+{"table":"designtex_catalog","mfr_sku":"6752601","dw_sku":"DWDX-220469","shopify_product_id":"7871941345331","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:25.640Z"}
+{"table":"designtex_catalog","mfr_sku":"6752801","dw_sku":"DWDX-220470","shopify_product_id":"7871941410867","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:27.614Z"}
+{"table":"newwall_catalog","mfr_sku":"A02-SK-04W","dw_sku":"DWXW-1005264","shopify_product_id":"7871941476403","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:31.891Z"}
+{"table":"newwall_catalog","mfr_sku":"A02-SK-05W","dw_sku":"DWXW-1005265","shopify_product_id":"7871941574707","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:35.885Z"}
+{"table":"newwall_catalog","mfr_sku":"A03-WD-01W","dw_sku":"DWXW-1005266","shopify_product_id":"7871941640243","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:39.464Z"}
+{"table":"brewster_catalog","mfr_sku":"2903-25847","dw_sku":"DWBR-170825","shopify_product_id":"7871941673011","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:43.223Z"}
+{"table":"brewster_catalog","mfr_sku":"2903-25858","dw_sku":"DWBR-170826","shopify_product_id":"7871941738547","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:46.936Z"}
+{"table":"brewster_catalog","mfr_sku":"4143-22001","dw_sku":"DWBR-170827","shopify_product_id":"7871941771315","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:50.731Z"}
+{"table":"kravet_catalog","mfr_sku":"36579.11.0","dw_sku":"DWKK-102865","shopify_product_id":"7871941804083","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:54.261Z"}
+{"table":"kravet_catalog","mfr_sku":"36579.1101.0","dw_sku":"DWKK-102866","shopify_product_id":"7871941836851","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:40:57.606Z"}
+{"table":"kravet_catalog","mfr_sku":"36579.111.0","dw_sku":"DWKK-102867","shopify_product_id":"7871941902387","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-pm-2026-06-30T23-40-04-756Z","ts":"2026-06-30T23:41:01.334Z"}
diff --git a/shopify/scripts/dwtt-annafrench-min2-FLAGGED.md b/shopify/scripts/dwtt-annafrench-min2-FLAGGED.md
new file mode 100644
index 00000000..f94cfaa9
--- /dev/null
+++ b/shopify/scripts/dwtt-annafrench-min2-FLAGGED.md
@@ -0,0 +1,133 @@
+# DWTT + Anna French qty-min/increment run — FLAGGED (NOT modified)
+# Steve rule 2026-06-30: single roll, min2/step2. These do NOT fit 'single roll ordered in 2s'.
+
+## Anna French YARD / fabric (excluded — fabric, not roll): 105
+- dwta-65000designerwallcoverings-los-angeles | Barlow Linen - Beige Fabric | Anna French | Sold Per Yard [DWAF-65000]
+- dwta-65001designerwallcoverings-los-angeles | Barlow Linen - Blue Fabric | Anna French | Sold Per Yard [DWAF-65001]
+- dwta-65002designerwallcoverings-los-angeles | Barlow Linen - Blush Fabric | Anna French | Sold Per Yard [DWAF-65002]
+- dwta-65003designerwallcoverings-los-angeles | Barlow Linen - Flax Fabric | Anna French | Sold Per Yard [DWAF-65003]
+- dwta-65004designerwallcoverings-los-angeles | Barlow Linen - Linen Fabric | Anna French | Sold Per Yard [DWAF-65004]
+- dwta-65005designerwallcoverings-los-angeles | Barlow Linen - Light Blue Fabric | Anna French | Sold Per Yard [DWAF-65005]
+- dwta-65006designerwallcoverings-los-angeles | Barlow Linen - Robin's Egg Fabric | Anna French | Sold Per Yard [DWAF-65006]
+- dwta-65007designerwallcoverings-los-angeles | Barlow Linen - Light Blue Fabric | Anna French | Sold Per Yard [DWAF-65007]
+- dwta-65008designerwallcoverings-los-angeles | Barlow Linen - Soft Green Fabric | Anna French | Sold Per Yard [DWAF-65008]
+- dwta-65060designerwallcoverings-los-angeles | Wesley Stripe - Beige Fabric | Anna French | Sold Per Yard [DWAF-65060]
+- dwta-65064designerwallcoverings-los-angeles | Wesley Stripe - Linen Fabric | Anna French | Sold Per Yard [DWAF-65064]
+- dwta-65079designerwallcoverings-los-angeles | Bryson - Pale Beige Fabric | Anna French | Sold Per Yard [DWAF-65079]
+- dwta-65080designerwallcoverings-los-angeles | Bryson - Charcoal Fabric | Anna French | Sold Per Yard [DWAF-65080]
+- dwta-65082designerwallcoverings-los-angeles | Bryson - Light Gray Fabric | Anna French | Sold Per Yard [DWAF-65082]
+- dwta-65092designerwallcoverings-los-angeles | Keswick Stripe - Light Blue Fabric | Anna French | Sold Per Yard [DWAF-65092]
+- dwta-65126designerwallcoverings-los-angeles | Clipperton Stripe - Brown on Natural Fabric | Anna French | Sold Per Yard [DWAF-65126]
+- dwta-65133designerwallcoverings-los-angeles | Cornwall - Green and Beige Fabric | Anna French | Sold Per Yard [DWAF-65133]
+- dwta-65138designerwallcoverings-los-angeles | Fern Stripe - Brown and Slate Fabric | Anna French | Sold Per Yard [DWAF-65138]
+- dwta-65140designerwallcoverings-los-angeles | Fern Stripe - Navy Fabric | Anna French | Sold Per Yard [DWAF-65140]
+- dwta-65141designerwallcoverings-los-angeles | Fern Stripe - Red and Blue Fabric | Anna French | Sold Per Yard [DWAF-65141]
+- dwta-65142designerwallcoverings-los-angeles | Fern Stripe - Spa Blue Fabric | Anna French | Sold Per Yard [DWAF-65142]
+- dwta-65157designerwallcoverings-los-angeles | Julian - Ivory Fabric | Anna French | Sold Per Yard [DWAF-65157]
+- dwta-65202designerwallcoverings-los-angeles | Shadows - Navy Fabric | Anna French | Sold Per Yard [DWAF-65202]
+- dwta-65207designerwallcoverings-los-angeles | Takao Weave - Navy Fabric | Anna French | Sold Per Yard [DWAF-65207]
+- dwta-65248designerwallcoverings-los-angeles | Herriot Way - Ivory Fabric | Anna French | Sold Per Yard [DWAF-65248]
+- dwta-65249designerwallcoverings-los-angeles | Herriot Way - Flax Fabric | Anna French | Sold Per Yard [DWAF-65249]
+- dwta-65252designerwallcoverings-los-angeles | Herriot Way - Spa Blue Fabric | Anna French | Sold Per Yard [DWAF-65252]
+- dwta-65265designerwallcoverings-los-angeles | Pyramid - Beige Fabric | Anna French | Sold Per Yard [DWAF-65265]
+- dwta-65266designerwallcoverings-los-angeles | Pyramid - White Fabric | Anna French | Sold Per Yard [DWAF-65266]
+- dwta-65267designerwallcoverings-los-angeles | Pyramid - Ivory Fabric | Anna French | Sold Per Yard [DWAF-65267]
+- dwta-65268designerwallcoverings-los-angeles | Pyramid - Navy on White Fabric | Anna French | Sold Per Yard [DWAF-65268]
+- dwta-65269designerwallcoverings-los-angeles | Pyramid - Smoke Fabric | Anna French | Sold Per Yard [DWAF-65269]
+- dwta-65273designerwallcoverings-los-angeles | Riva - Navy Fabric | Anna French | Sold Per Yard [DWAF-65273]
+- dwta-65274designerwallcoverings-los-angeles | Riva - Plum Fabric | Anna French | Sold Per Yard [DWAF-65274]
+- dwta-65275designerwallcoverings-los-angeles | Riva - Red Fabric | Anna French | Sold Per Yard [DWAF-65275]
+- dwta-65276designerwallcoverings-los-angeles | Riva - Soft Blue Fabric | Anna French | Sold Per Yard [DWAF-65276]
+- dwta-65312designerwallcoverings-los-angeles | Gibson - Red Fabric | Anna French | Sold Per Yard [DWAF-65312]
+- dwta-65348designerwallcoverings-los-angeles | Mali Dot - Navy Fabric | Anna French | Sold Per Yard [DWAF-65348]
+- dwta-65370designerwallcoverings-los-angeles | Tansman - Robin's Egg Fabric | Anna French | Sold Per Yard [DWAF-65370]
+- dwta-65375designerwallcoverings-los-angeles | Vero - Navy Fabric | Anna French | Sold Per Yard [DWAF-65375]
+- dwta-65386designerwallcoverings-los-angeles | Balin Ikat - Beige Fabric | Anna French | Sold Per Yard [DWAF-65386]
+- dwta-65389designerwallcoverings-los-angeles | Balin Ikat - Navy Fabric | Anna French | Sold Per Yard [DWAF-65389]
+- dwta-65391designerwallcoverings-los-angeles | Balin Ikat - Sage Fabric | Anna French | Sold Per Yard [DWAF-65391]
+- dwta-65445designerwallcoverings-los-angeles | Manor - Ivory Fabric | Anna French | Sold Per Yard [DWAF-65445]
+- dwta-65446designerwallcoverings-los-angeles | Manor - Beige Fabric | Anna French | Sold Per Yard [DWAF-65446]
+- dwta-65491designerwallcoverings-los-angeles | Watercourse - Beige Fabric | Anna French | Sold Per Yard [DWAF-65491]
+- dwta-65494designerwallcoverings-los-angeles | Watercourse - Taupe Fabric | Anna French | Sold Per Yard [DWAF-65494]
+- dwta-65499designerwallcoverings-los-angeles | Willow Wood - Navy Fabric | Anna French | Sold Per Yard [DWAF-65499]
+- dwta-65514designerwallcoverings-los-angeles | Dawson Stripe - Charcoal and Linen Fabric | Anna French | Sold Per Yard [DWAF-65514]
+- dwta-65608designerwallcoverings-los-angeles | Cholla Sisal - Off White Fabric | Anna French | Sold Per Yard [DWAF-65608]
+- chelsea-fabrics-af57840-lavender-thibaut | Chelsea - Lavender Fabric | Anna French | Sold Per Yard [DWAF-74661]
+- stockbridge-fabrics-af16137-lavender-and-blue-thibaut | Stockbridge - Lavender and Blue Fabric | Anna French | Sold Per Yard [DWAF-74665]
+- stockbridge-fabrics-af16140-blush-thibaut | Stockbridge - Blush Fabric | Anna French | Sold Per Yard [DWAF-74666]
+- laura-fabrics-af23101-lavender-and-green-thibaut | Laura - Lavender and Green Fabric | Anna French | Sold Per Yard [DWAF-74673]
+- laura-fabrics-af23100-blush-and-green-thibaut | Laura - Blush and Green Fabric | Anna French | Sold Per Yard [DWAF-74674]
+- laura-fabrics-af23105-blue-thibaut | Laura - Blue Fabric | Anna French | Sold Per Yard [DWAF-74675]
+- laura-fabrics-af23103-coral-and-black-thibaut | Laura - Coral and Black Fabric | Anna French | Sold Per Yard [DWAF-74676]
+- laura-fabrics-af23104-citrus-and-blue-thibaut | Laura - Citrus and Blue Fabric | Anna French | Sold Per Yard [DWAF-74679]
+- peacock-toile-fabrics-af57828-soft-blue-and-beige-thibaut | Peacock Toile - Soft Blue and Beige Fabric | Anna French | Sold Per Yard [DWAF-74681]
+- newlands-toile-fabrics-af57838-black-thibaut | Newlands Toile - Black Fabric | Anna French | Sold Per Yard [DWAF-74692]
+- pontorma-fabrics-af24558-neutral-thibaut | Pontorma - Neutral Fabric | Anna French | Sold Per Yard [DWAF-74693]
+- ellery-stripe-fabrics-af24542-white-on-soft-blue-thibaut | Ellery Stripe - White on Soft Blue Fabric | Anna French | Sold Per Yard [DWAF-74694]
+- ellery-stripe-fabrics-af24543-sky-blue-on-white-thibaut | Ellery Stripe - Sky Blue on White Fabric | Anna French | Sold Per Yard [DWAF-74696]
+- ellery-stripe-fabrics-af24547-navy-on-white-thibaut | Ellery Stripe - Navy on White Fabric | Anna French | Sold Per Yard [DWAF-74697]
+- lindsey-fabrics-af57809-sand-thibaut | Lindsey - Sand Fabric | Anna French | Sold Per Yard [DWAF-74705]
+- lindsey-fabrics-af57810-blush-thibaut | Lindsey - Blush Fabric | Anna French | Sold Per Yard [DWAF-74706]
+- lindsey-fabrics-af57811-lavender-thibaut | Lindsey - Lavender Fabric | Anna French | Sold Per Yard [DWAF-74707]
+- lindsey-fabrics-af57813-blue-thibaut | Lindsey - Blue Fabric | Anna French | Sold Per Yard [DWAF-74708]
+- tansman-fabrics-af78743-black-thibaut | Tansman - Black Fabric | Anna French | Sold Per Yard [DWAF-74725]
+- ellery-stripe-fabrics-af24541-white-on-beige-thibaut | Ellery Stripe - White on Beige Fabric | Anna French | Sold Per Yard [DWAF-74733]
+- ellery-stripe-fabrics-af24546-kelly-on-white-thibaut | Ellery Stripe - Kelly on White Fabric | Anna French | Sold Per Yard [DWAF-74735]
+- ellery-stripe-fabrics-af24548-navy-on-soft-teal-thibaut | Ellery Stripe - Navy on Soft Teal Fabric | Anna French | Sold Per Yard [DWAF-74736]
+- petit-arbre-fabrics-af9631-spa-blue-on-flax-thibaut | Petit Arbre - Spa Blue on Flax Fabric | Anna French | Sold Per Yard [DWAF-74739]
+- sussex-hydrangea-fabrics-af57846-blue-and-green-thibaut | Sussex Hydrangea - Blue and Green Fabric | Anna French | Sold Per Yard [DWAF-74758]
+- lindsey-fabrics-af57815-navy-thibaut | Lindsey - Navy Fabric | Anna French | Sold Per Yard [DWAF-74759]
+- chelsea-fabrics-af57842-slate-and-linen-thibaut | Chelsea - Slate and Linen Fabric | Anna French | Sold Per Yard [DWAF-74815]
+- chelsea-fabrics-af57839-soft-blue-and-green-thibaut | Chelsea - Soft Blue and Green Fabric | Anna French | Sold Per Yard [DWAF-74817]
+- chelsea-fabrics-af57843-chestnut-thibaut | Chelsea - Chestnut Fabric | Anna French | Sold Per Yard [DWAF-74818]
+- stockbridge-fabrics-af16138-blue-thibaut | Stockbridge - Blue Fabric | Anna French | Sold Per Yard [DWAF-74825]
+- stockbridge-fabrics-af16139-apricot-and-slate-thibaut | Stockbridge - Apricot and Slate Fabric | Anna French | Sold Per Yard [DWAF-74826]
+- holly-trellis-fabrics-af16125-blue-thibaut | Holly Trellis - Blue Fabric | Anna French | Sold Per Yard [DWAF-74828]
+- holly-trellis-fabrics-af16126-beige-thibaut | Holly Trellis - Beige Fabric | Anna French | Sold Per Yard [DWAF-74831]
+- garden-club-fabrics-af16133-apricot-and-slate-thibaut | Garden Club - Apricot and Slate Fabric | Anna French | Sold Per Yard [DWAF-74839]
+- garden-club-fabrics-af16134-blue-thibaut | Garden Club - Blue Fabric | Anna French | Sold Per Yard [DWAF-74842]
+- garden-club-fabrics-af16136-blush-thibaut | Garden Club - Blush Fabric | Anna French | Sold Per Yard [DWAF-74843]
+- elwood-fabrics-af24563-navy-thibaut | Elwood - Navy Fabric | Anna French | Sold Per Yard [DWAF-74868]
+- sussex-hydrangea-fabrics-af57848-soft-gold-thibaut | Sussex Hydrangea - Soft Gold Fabric | Anna French | Sold Per Yard [DWAF-74877]
+- sussex-hydrangea-fabrics-af57849-white-and-green-thibaut | Sussex Hydrangea - White and Green Fabric | Anna French | Sold Per Yard [DWAF-74878]
+- shadows-fabrics-af9836-eggplant-thibaut | Shadows - Eggplant Fabric | Anna French | Sold Per Yard [DWAF-74880]
+- camellia-garden-fabrics-af24552-soft-gold-thibaut | Camellia Garden - Soft Gold Fabric | Anna French | Sold Per Yard [DWAF-74887]
+- shadows-fabrics-af9834-emerald-green-thibaut | Shadows - Emerald Green Fabric | Anna French | Sold Per Yard [DWAF-74896]
+- shadows-fabrics-af9835-black-thibaut | Shadows - Black Fabric | Anna French | Sold Per Yard [DWAF-74897]
+- julian-fabrics-af15161-beige-and-spa-blue-thibaut | Julian - Beige and Spa Blue Fabric | Anna French | Sold Per Yard [DWAF-74900]
+- lindsey-fabrics-af57817-black-thibaut | Lindsey - Black Fabric | Anna French | Sold Per Yard [DWAF-74901]
+- pontorma-fabrics-af24555-soft-gold-thibaut | Pontorma - Soft Gold Fabric | Anna French | Sold Per Yard [DWAF-74910]
+- sussex-hydrangea-fabrics-af57845-soft-blue-thibaut | Sussex Hydrangea - Soft Blue Fabric | Anna French | Sold Per Yard [DWAF-74933]
+- laura-fabrics-af23102-sage-and-gold-thibaut | Laura - Sage and Gold Fabric | Anna French | Sold Per Yard [DWAF-74937]
+- bloomsbury-square-fabrics-af23112-beige-thibaut | Bloomsbury Square - Beige Fabric | Anna French | Sold Per Yard [DWAF-74941]
+- sussex-hydrangea-fabrics-af57847-slate-and-linen-thibaut | Sussex Hydrangea - Slate and Linen Fabric | Anna French | Sold Per Yard [DWAF-74944]
+- peacock-toile-fabrics-af57830-blue-and-green-thibaut | Peacock Toile - Blue and Green Fabric | Anna French | Sold Per Yard [DWAF-74959]
+- pontorma-fabrics-af24557-kelly-thibaut | Pontorma - Kelly Fabric | Anna French | Sold Per Yard [DWAF-74960]
+- peacock-toile-fabrics-af57829-green-and-plum-thibaut | Peacock Toile - Green and Plum Fabric | Anna French | Sold Per Yard [DWAF-74971]
+- pontorma-fabrics-af24554-sky-thibaut | Pontorma - Sky Fabric | Anna French | Sold Per Yard [DWAF-74990]
+- pontorma-fabrics-af24559-rose-thibaut | Pontorma - Rose Fabric | Anna French | Sold Per Yard [DWAF-74991]
+- elwood-fabrics-af24564-document-linen-thibaut | Elwood - Document Linen Fabric | Anna French | Sold Per Yard [DWAF-75007]
+
+## Mural / panel / special-cut (excluded — not single rolls): 19
+- Thibaut | dwtt-80041-designer-wallcoverings-los-angeles | Sold Per (108") [DWTT-80041]
+- Thibaut | dwtt-80042-designer-wallcoverings-los-angeles | Sold Per (108") [DWTF-80042]
+- Thibaut | dwtt-80156-designer-wallcoverings-los-angeles | Sold Per (27" x 4.5yds) [DWTT-80156]
+- Thibaut | dwtt-80238-designer-wallcoverings-los-angeles | Sold Per (81" x 120") [DWTT-80238]
+- Thibaut | dwtt-80239-designer-wallcoverings-los-angeles | Sold Per (81" x 120") [DWTT-80239]
+- Thibaut | dwtt-80240-designer-wallcoverings-los-angeles | Sold Per (81" x 120") [DWTF-80240]
+- Thibaut | dwtt-80569-designer-wallcoverings-los-angeles | Sold Per (108" x 120") [DWTF-80569]
+- Thibaut | dwtt-80570-designer-wallcoverings-los-angeles | Sold Per (108" x 120") [DWTF-80570]
+- Thibaut | dwtt-80571-designer-wallcoverings-los-angeles | Sold Per (108" x 120") [DWTF-80571]
+- Thibaut | dwtt-80652-designer-wallcoverings-los-angeles | Sold Per (27" x 4.5yds) [DWTT-80652]
+- Thibaut | dwtt-80695-designer-wallcoverings-los-angeles | Sold Per (27" x 4.5yds) [DWTT-80695]
+- Thibaut | dwtt-80789-designer-wallcoverings-los-angeles | Sold Per (81" x 110") [DWTT-80789]
+- Thibaut | dwtt-80790-designer-wallcoverings-los-angeles | Sold Per (81" x 110") [DWTT-80790]
+- Thibaut | dwtt-80791-designer-wallcoverings-los-angeles | Sold Per (81" x 110") [DWTT-80791]
+- Thibaut | dwtt-80957-designer-wallcoverings-los-angeles | Sold Per (27" x 4.5yds) [DWTT-80957]
+- Anna French | dwtt-80983-designer-wallcoverings-los-angeles | Sold Per (27" x 4.5yds) [DWAT-80983]
+- Anna French | dwtt-80985-designer-wallcoverings-los-angeles | Sold Per (27" x 4.5yds) [DWAT-80985]
+- Anna French | dwtt-80988-designer-wallcoverings-los-angeles | Sold Per (27" x 4.5yds) [DWAT-80988]
+- Anna French | dwtt-81001-designer-wallcoverings-los-angeles | Sold Per (36" x 4yds) [DWAT-81001]
+
+## Sample-only (excluded — no roll variant to order): 511
+(handles listed in /tmp/dwtt_af_target.json under 'sample_only')
\ No newline at end of file
diff --git a/shopify/scripts/set-dwtt-annafrench-roll-min2-step2.py b/shopify/scripts/set-dwtt-annafrench-roll-min2-step2.py
new file mode 100644
index 00000000..dd01b4f5
--- /dev/null
+++ b/shopify/scripts/set-dwtt-annafrench-roll-min2-step2.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python3
+"""
+Set order-min/increment metafields = single roll, min 2, step 2 on every ACTIVE
+DWTT (Thibaut) + Anna French WALLCOVERING (single-roll) product.
+
+Steve rule (2026-06-30): "All DWTT and Anna French items are sold per SINGLE
+ROLL, but order only in increments of 2." unit=single roll, min=2, step=2.
+
+Keys (verified against live theme product-form-content.liquid + live PDP render):
+ Product: global.v_prods_quantity_order_min = "2" (theme min + value)
+ global.v_prods_quantity_order_units = "2" (theme step)
+ Variant: custom.v_prod_quantity_order_min = "2" (DW qty validator JS)
+ custom.v_prods_quantity_order_units = "2"
+
+Idempotent: only writes a metafield when current value != "2".
+Scope = ROLL-class products only (variant title contains "Roll").
+EXCLUDES Anna French yard/fabric, mural/panel special-cut, and sample-only.
+Store: designer-laboratory-sandbox.myshopify.com (= LIVE production).
+Cost: Shopify Admin API = $0.
+Run: --dry to print only; default writes.
+"""
+import json, urllib.request, time, os, sys
+
+TOKEN = os.environ["SHOPIFY_ADMIN_TOKEN"]
+SHOP = "designer-laboratory-sandbox.myshopify.com"
+GQL = f"https://{SHOP}/admin/api/2024-01/graphql.json"
+DRY = "--dry" in sys.argv
+
+def gql(q, v=None):
+ body = json.dumps({"query": q, "variables": v or {}}).encode()
+ req = urllib.request.Request(GQL, data=body, headers={
+ "X-Shopify-Access-Token": TOKEN, "Content-Type": "application/json"})
+ for _ in range(8):
+ try:
+ with urllib.request.urlopen(req) as r:
+ d = json.load(r)
+ if d.get("errors"):
+ s = json.dumps(d["errors"])
+ if "THROTTLED" in s:
+ time.sleep(2.5); continue
+ raise SystemExit("GQL ERR: " + s)
+ return d["data"]
+ except urllib.error.HTTPError as e:
+ if e.code == 429:
+ time.sleep(2.5); continue
+ raise
+ raise SystemExit("retries exhausted")
+
+SET = """
+mutation($mfs:[MetafieldsSetInput!]!){
+ metafieldsSet(metafields:$mfs){
+ metafields{ id }
+ userErrors{ field message }
+ }
+}
+"""
+
+def chunked(lst, n):
+ for i in range(0, len(lst), n):
+ yield lst[i:i+n]
+
+def main():
+ tgt = json.load(open("/tmp/dwtt_af_target.json"))["targets"]
+ prod_state = json.load(open("/tmp/prod_state.json"))
+ var_state = json.load(open("/tmp/var_state.json"))
+
+ inputs = [] # MetafieldsSetInput entries
+ p_min=p_units=v_min=v_units=0
+ for t in tgt:
+ pid = t["product_id"]
+ pgid = f"gid://shopify/Product/{pid}"
+ ps = prod_state.get(pid, {})
+ if ps.get("v_prods_min") != "2":
+ inputs.append({"ownerId":pgid,"namespace":"global","key":"v_prods_quantity_order_min","type":"single_line_text_field","value":"2"}); p_min+=1
+ if ps.get("v_prods_units") != "2":
+ inputs.append({"ownerId":pgid,"namespace":"global","key":"v_prods_quantity_order_units","type":"single_line_text_field","value":"2"}); p_units+=1
+ for v in t["variants"]:
+ vid=v["id"]; vgid=f"gid://shopify/ProductVariant/{vid}"
+ vs=var_state.get(vid,{})
+ if vs.get("min")!="2":
+ inputs.append({"ownerId":vgid,"namespace":"custom","key":"v_prod_quantity_order_min","type":"single_line_text_field","value":"2"}); v_min+=1
+ if vs.get("units")!="2":
+ inputs.append({"ownerId":vgid,"namespace":"custom","key":"v_prods_quantity_order_units","type":"single_line_text_field","value":"2"}); v_units+=1
+
+ print(f"Targets: {len(tgt)} ROLL products")
+ print(f"Metafield writes queued: {len(inputs)}")
+ print(f" product global.v_prods_quantity_order_min : {p_min}")
+ print(f" product global.v_prods_quantity_order_units: {p_units}")
+ print(f" variant custom.v_prod_quantity_order_min : {v_min}")
+ print(f" variant custom.v_prods_quantity_order_units: {v_units}")
+ if DRY:
+ print("DRY RUN — no writes performed.")
+ return
+
+ done=0; errs=0
+ for batch in chunked(inputs, 25): # metafieldsSet max 25/call
+ d=gql(SET, {"mfs":batch})
+ ue=d["metafieldsSet"]["userErrors"]
+ if ue:
+ errs+=len(ue)
+ print("userErrors:", ue[:3])
+ done+=len(batch)
+ if done % 500 < 25:
+ print(f" ...{done}/{len(inputs)} written")
+ time.sleep(0.3)
+ print(f"DONE. wrote {done} metafields, userErrors={errs}")
+
+if __name__=="__main__":
+ main()
← 289f3d9a Wire Phillip Jeffries into cadence as gated 10/day DRAFT-onl
·
back to Designer Wallcoverings
·
cadence: ENABLE Phillip Jeffries 10/day DRAFT drip (PJ_DRAFT ddf81074 →