← back to Harlequin Sample Price Analysis
TK-10870: vp-dw-commerce executed Steve-approved Actions 1+2 (reprice 27, backfill 4 dw_sku)
3ec709775517541a3600d749f9a096e9c1fd3b36 · 2026-08-30 21:04:37 -0700 · Steve Abrams
- Action 1: 27 Harlequin roll variants repriced $150 placeholder -> formula retail (cost/0.65/0.85),
live-read idempotent, roll-variant-only, 27/27 verified, restore-map (27 entries) + ledger
- Action 2: 4 Houndstooth dw_sku backfilled DWHQ-335016/17/18/19 (was NULL), verified in mirror
- Action 3 drafted (Locronan mfr code unknown -> scrape needed; Marine gated) — no fabrication
- execution scripts + result artifacts from the officer run
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
A artifacts/tk10870-action1-result.jsonA artifacts/tk10870-live-read.jsonA scripts/tk10870-action1-reprice.mjsA scripts/tk10870-action1-rollback.mjsA scripts/tk10870-read-live.mjs
Diff
commit 3ec709775517541a3600d749f9a096e9c1fd3b36
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sun Aug 30 21:04:37 2026 -0700
TK-10870: vp-dw-commerce executed Steve-approved Actions 1+2 (reprice 27, backfill 4 dw_sku)
- Action 1: 27 Harlequin roll variants repriced $150 placeholder -> formula retail (cost/0.65/0.85),
live-read idempotent, roll-variant-only, 27/27 verified, restore-map (27 entries) + ledger
- Action 2: 4 Houndstooth dw_sku backfilled DWHQ-335016/17/18/19 (was NULL), verified in mirror
- Action 3 drafted (Locronan mfr code unknown -> scrape needed; Marine gated) — no fabrication
- execution scripts + result artifacts from the officer run
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
artifacts/tk10870-action1-result.json | 419 ++++++++++++
artifacts/tk10870-live-read.json | 1128 +++++++++++++++++++++++++++++++++
scripts/tk10870-action1-reprice.mjs | 86 +++
scripts/tk10870-action1-rollback.mjs | 19 +
scripts/tk10870-read-live.mjs | 124 ++++
5 files changed, 1776 insertions(+)
diff --git a/artifacts/tk10870-action1-result.json b/artifacts/tk10870-action1-result.json
new file mode 100644
index 0000000..1ecf365
--- /dev/null
+++ b/artifacts/tk10870-action1-result.json
@@ -0,0 +1,419 @@
+{
+ "restoreMap": {
+ "ticket": "TK-10870",
+ "action": "ACTION1-reprice",
+ "generated": "2026-08-31T03:59:58.842Z",
+ "domain": "designer-laboratory-sandbox.myshopify.com",
+ "api": "2024-10",
+ "entries": [
+ {
+ "dwhq_sku": "DWHQ-335000",
+ "product_gid": "gid://shopify/Product/7787420450867",
+ "variant_id": "gid://shopify/ProductVariant/44457278242867",
+ "variant_sku": "DWHQ-335000",
+ "old_price": "150.00",
+ "target_price": "253.39",
+ "result": "written_verified",
+ "verified_price": "253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335004",
+ "product_gid": "gid://shopify/Product/7787420909619",
+ "variant_id": "gid://shopify/ProductVariant/44457278373939",
+ "variant_sku": "DWHQ-335004",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335005",
+ "product_gid": "gid://shopify/Product/7787421007923",
+ "variant_id": "gid://shopify/ProductVariant/44457278406707",
+ "variant_sku": "DWHQ-335005",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335006",
+ "product_gid": "gid://shopify/Product/7787421106227",
+ "variant_id": "gid://shopify/ProductVariant/44457278439475",
+ "variant_sku": "DWHQ-335006",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335007",
+ "product_gid": "gid://shopify/Product/7787421204531",
+ "variant_id": "gid://shopify/ProductVariant/44457278472243",
+ "variant_sku": "DWHQ-335007",
+ "old_price": "150.00",
+ "target_price": "269.68",
+ "result": "written_verified",
+ "verified_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335009",
+ "product_gid": "gid://shopify/Product/7787421433907",
+ "variant_id": "gid://shopify/ProductVariant/44457278505011",
+ "variant_sku": "DWHQ-335009",
+ "old_price": "150.00",
+ "target_price": "269.68",
+ "result": "written_verified",
+ "verified_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335010",
+ "product_gid": "gid://shopify/Product/7787421499443",
+ "variant_id": "gid://shopify/ProductVariant/44457278537779",
+ "variant_sku": "DWHQ-335010",
+ "old_price": "150.00",
+ "target_price": "269.68",
+ "result": "written_verified",
+ "verified_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335012",
+ "product_gid": "gid://shopify/Product/7787421663283",
+ "variant_id": "gid://shopify/ProductVariant/44457278570547",
+ "variant_sku": "DWHQ-335012",
+ "old_price": "150.00",
+ "target_price": "269.68",
+ "result": "written_verified",
+ "verified_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335014",
+ "product_gid": "gid://shopify/Product/7787422515251",
+ "variant_id": "gid://shopify/ProductVariant/44457278603315",
+ "variant_sku": "DWHQ-335014",
+ "old_price": "150.00",
+ "target_price": "269.68",
+ "result": "written_verified",
+ "verified_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335015",
+ "product_gid": "gid://shopify/Product/7787422613555",
+ "variant_id": "gid://shopify/ProductVariant/44457278636083",
+ "variant_sku": "DWHQ-335015",
+ "old_price": "150.00",
+ "target_price": "269.68",
+ "result": "written_verified",
+ "verified_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335016",
+ "product_gid": "gid://shopify/Product/7787422744627",
+ "variant_id": "gid://shopify/ProductVariant/44457278668851",
+ "variant_sku": "DWHQ-335016",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335017",
+ "product_gid": "gid://shopify/Product/7787422842931",
+ "variant_id": "gid://shopify/ProductVariant/44457278701619",
+ "variant_sku": "DWHQ-335017",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335018",
+ "product_gid": "gid://shopify/Product/7787422974003",
+ "variant_id": "gid://shopify/ProductVariant/44457278734387",
+ "variant_sku": "DWHQ-335018",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335019",
+ "product_gid": "gid://shopify/Product/7787423072307",
+ "variant_id": "gid://shopify/ProductVariant/44457278865459",
+ "variant_sku": "DWHQ-335019",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335020",
+ "product_gid": "gid://shopify/Product/7787423170611",
+ "variant_id": "gid://shopify/ProductVariant/44457278898227",
+ "variant_sku": "DWHQ-335020",
+ "old_price": "150.00",
+ "target_price": "253.39",
+ "result": "written_verified",
+ "verified_price": "253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335021",
+ "product_gid": "gid://shopify/Product/7787423268915",
+ "variant_id": "gid://shopify/ProductVariant/44457278930995",
+ "variant_sku": "DWHQ-335021",
+ "old_price": "150.00",
+ "target_price": "253.39",
+ "result": "written_verified",
+ "verified_price": "253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335025",
+ "product_gid": "gid://shopify/Product/7787423793203",
+ "variant_id": "gid://shopify/ProductVariant/44457279029299",
+ "variant_sku": "DWHQ-335025",
+ "old_price": "150.00",
+ "target_price": "253.39",
+ "result": "written_verified",
+ "verified_price": "253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335026",
+ "product_gid": "gid://shopify/Product/7787423891507",
+ "variant_id": "gid://shopify/ProductVariant/44457279062067",
+ "variant_sku": "DWHQ-335026",
+ "old_price": "150.00",
+ "target_price": "253.39",
+ "result": "written_verified",
+ "verified_price": "253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335027",
+ "product_gid": "gid://shopify/Product/7787423989811",
+ "variant_id": "gid://shopify/ProductVariant/44457279094835",
+ "variant_sku": "DWHQ-335027",
+ "old_price": "150.00",
+ "target_price": "228.05",
+ "result": "written_verified",
+ "verified_price": "228.05"
+ },
+ {
+ "dwhq_sku": "DWHQ-335028",
+ "product_gid": "gid://shopify/Product/7787424120883",
+ "variant_id": "gid://shopify/ProductVariant/44457279127603",
+ "variant_sku": "DWHQ-335028",
+ "old_price": "150.00",
+ "target_price": "228.05",
+ "result": "written_verified",
+ "verified_price": "228.05"
+ },
+ {
+ "dwhq_sku": "DWHQ-335029",
+ "product_gid": "gid://shopify/Product/7787424251955",
+ "variant_id": "gid://shopify/ProductVariant/44457279160371",
+ "variant_sku": "DWHQ-335029",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335030",
+ "product_gid": "gid://shopify/Product/7787424317491",
+ "variant_id": "gid://shopify/ProductVariant/44457279193139",
+ "variant_sku": "DWHQ-335030",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335031",
+ "product_gid": "gid://shopify/Product/7787424448563",
+ "variant_id": "gid://shopify/ProductVariant/44457279225907",
+ "variant_sku": "DWHQ-335031",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335032",
+ "product_gid": "gid://shopify/Product/7787424546867",
+ "variant_id": "gid://shopify/ProductVariant/44457279258675",
+ "variant_sku": "DWHQ-335032",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335033",
+ "product_gid": "gid://shopify/Product/7787424677939",
+ "variant_id": "gid://shopify/ProductVariant/44457279291443",
+ "variant_sku": "DWHQ-335033",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335034",
+ "product_gid": "gid://shopify/Product/7787424841779",
+ "variant_id": "gid://shopify/ProductVariant/44457279324211",
+ "variant_sku": "DWHQ-335034",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335035",
+ "product_gid": "gid://shopify/Product/7787424940083",
+ "variant_id": "gid://shopify/ProductVariant/44457279356979",
+ "variant_sku": "DWHQ-335035",
+ "old_price": "150.00",
+ "target_price": "208.14",
+ "result": "written_verified",
+ "verified_price": "208.14"
+ }
+ ]
+ },
+ "verified": [
+ {
+ "dwhq_sku": "DWHQ-335000",
+ "price": "253.39",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335004",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335005",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335006",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335007",
+ "price": "269.68",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335009",
+ "price": "269.68",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335010",
+ "price": "269.68",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335012",
+ "price": "269.68",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335014",
+ "price": "269.68",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335015",
+ "price": "269.68",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335016",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335017",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335018",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335019",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335020",
+ "price": "253.39",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335021",
+ "price": "253.39",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335025",
+ "price": "253.39",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335026",
+ "price": "253.39",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335027",
+ "price": "228.05",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335028",
+ "price": "228.05",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335029",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335030",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335031",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335032",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335033",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335034",
+ "price": "208.14",
+ "ok": true
+ },
+ {
+ "dwhq_sku": "DWHQ-335035",
+ "price": "208.14",
+ "ok": true
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/artifacts/tk10870-live-read.json b/artifacts/tk10870-live-read.json
new file mode 100644
index 0000000..82afe83
--- /dev/null
+++ b/artifacts/tk10870-live-read.json
@@ -0,0 +1,1128 @@
+{
+ "ticket": "TK-10870",
+ "generated": "2026-08-31T03:59:09.730Z",
+ "excluded": [
+ "DWHQ-335002",
+ "DWHQ-335024"
+ ],
+ "summary": {
+ "candidates": 27,
+ "writes": 27,
+ "skips": 0
+ },
+ "writes": [
+ {
+ "dwhq_sku": "DWHQ-335000",
+ "pattern": "Amazilia",
+ "color": "Gooseberry",
+ "gid": "gid://shopify/Product/7787420450867",
+ "title": "Amazilia Gooseberry — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 253.39,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278242867",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335000"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084227123",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335000-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278242867",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335000"
+ },
+ "disposition": "REPRICE 150 -> 253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335004",
+ "pattern": "Demoiselle",
+ "color": "Kelly/First Light/Blush",
+ "gid": "gid://shopify/Product/7787420909619",
+ "title": "Demoiselle Kelly First Light Blush — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278373939",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335004"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084620339",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335004-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278373939",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335004"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335005",
+ "pattern": "Demoiselle",
+ "color": "Positano/First Light/Taupe",
+ "gid": "gid://shopify/Product/7787421007923",
+ "title": "Demoiselle Positano First Light Taupe — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278406707",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335005"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084653107",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335005-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278406707",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335005"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335006",
+ "pattern": "Demoiselle",
+ "color": "Seaglass/First Light/Sand",
+ "gid": "gid://shopify/Product/7787421106227",
+ "title": "Demoiselle Seaglass First Light Sand — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278439475",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335006"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084685875",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335006-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278439475",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335006"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335007",
+ "pattern": "Epitome",
+ "color": "Copper/Sepia",
+ "gid": "gid://shopify/Product/7787421204531",
+ "title": "Epitome Copper Gold Sepia — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 269.68,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278472243",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335007"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084751411",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335007-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278472243",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335007"
+ },
+ "disposition": "REPRICE 150 -> 269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335009",
+ "pattern": "Epitome",
+ "color": "Turquoise/Pea/Gilver",
+ "gid": "gid://shopify/Product/7787421433907",
+ "title": "Epitome Turquoise Pea Gilver — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 269.68,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278505011",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335009"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084816947",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335009-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278505011",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335009"
+ },
+ "disposition": "REPRICE 150 -> 269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335010",
+ "pattern": "Fleur De Joie",
+ "color": "Chalk/Clover/Honey",
+ "gid": "gid://shopify/Product/7787421499443",
+ "title": "Fleur De Joie Chalk Clover Honey — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 269.68,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278537779",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335010"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084849715",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335010-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278537779",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335010"
+ },
+ "disposition": "REPRICE 150 -> 269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335012",
+ "pattern": "Flores",
+ "color": "Clover/Kelly/Aqua",
+ "gid": "gid://shopify/Product/7787421663283",
+ "title": "Flores Clover Kelly Aqua — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 269.68,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278570547",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335012"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084882483",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335012-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278570547",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335012"
+ },
+ "disposition": "REPRICE 150 -> 269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335014",
+ "pattern": "Flores",
+ "color": "Rosewood/Baked Terracotta",
+ "gid": "gid://shopify/Product/7787422515251",
+ "title": "Flores Rosewood Baked Terracotta — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 269.68,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278603315",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335014"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084915251",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335014-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278603315",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335014"
+ },
+ "disposition": "REPRICE 150 -> 269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335015",
+ "pattern": "Gardinum",
+ "color": "Chalk/Wedgwood/Gold",
+ "gid": "gid://shopify/Product/7787422613555",
+ "title": "Gardinum Chalk Wedgwood Gold — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 269.68,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278636083",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335015"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084948019",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335015-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278636083",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335015"
+ },
+ "disposition": "REPRICE 150 -> 269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335016",
+ "pattern": "Houndstooth",
+ "color": "Black Earth/Soft Focus",
+ "gid": "gid://shopify/Product/7787422744627",
+ "title": "Houndstooth Black Earth Soft Focus — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278668851",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335016"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084980787",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335016-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278668851",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335016"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335017",
+ "pattern": "Houndstooth",
+ "color": "First Light/Mist",
+ "gid": "gid://shopify/Product/7787422842931",
+ "title": "Houndstooth First Light Mist — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278701619",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335017"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085013555",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335017-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278701619",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335017"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335018",
+ "pattern": "Houndstooth",
+ "color": "Seaglass/Soft Focus",
+ "gid": "gid://shopify/Product/7787422974003",
+ "title": "Houndstooth Seaglass Soft Focus — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278734387",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335018"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085046323",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335018-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278734387",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335018"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335019",
+ "pattern": "Houndstooth",
+ "color": "Taupe/Soft Focus",
+ "gid": "gid://shopify/Product/7787423072307",
+ "title": "Houndstooth Taupe Soft Focus — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278865459",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335019"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085111859",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335019-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278865459",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335019"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335020",
+ "pattern": "Kamanu",
+ "color": "Indigo/Pebble",
+ "gid": "gid://shopify/Product/7787423170611",
+ "title": "Kamanu Indigo Pebble — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 253.39,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278898227",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335020"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085144627",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335020-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278898227",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335020"
+ },
+ "disposition": "REPRICE 150 -> 253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335021",
+ "pattern": "Kamanu",
+ "color": "Mandarin/Fig",
+ "gid": "gid://shopify/Product/7787423268915",
+ "title": "Kamanu Mandarin Fig — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 253.39,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278930995",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335021"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085177395",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335021-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457278930995",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335021"
+ },
+ "disposition": "REPRICE 150 -> 253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335025",
+ "pattern": "Lotus",
+ "color": "Pearl/Pearl",
+ "gid": "gid://shopify/Product/7787423793203",
+ "title": "Lotus Pearl — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 253.39,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279029299",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335025"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085308467",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335025-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279029299",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335025"
+ },
+ "disposition": "REPRICE 150 -> 253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335026",
+ "pattern": "Lotus",
+ "color": "curation",
+ "gid": "gid://shopify/Product/7787423891507",
+ "title": "Lotus Silver — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 253.39,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279062067",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335026"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085341235",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335026-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279062067",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335026"
+ },
+ "disposition": "REPRICE 150 -> 253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335027",
+ "pattern": "Lucielle",
+ "color": "Chalk/Linen",
+ "gid": "gid://shopify/Product/7787423989811",
+ "title": "Lucielle Chalk Linen — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 228.05,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279094835",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335027"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085472307",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335027-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279094835",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335027"
+ },
+ "disposition": "REPRICE 150 -> 228.05"
+ },
+ {
+ "dwhq_sku": "DWHQ-335028",
+ "pattern": "Lucielle",
+ "color": "Putty/Chalk",
+ "gid": "gid://shopify/Product/7787424120883",
+ "title": "Lucielle Putty Chalk — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 228.05,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279127603",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335028"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085505075",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335028-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279127603",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335028"
+ },
+ "disposition": "REPRICE 150 -> 228.05"
+ },
+ {
+ "dwhq_sku": "DWHQ-335029",
+ "pattern": "Mirabella",
+ "color": "Pebble",
+ "gid": "gid://shopify/Product/7787424251955",
+ "title": "Mirabella Pebble — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279160371",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335029"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085570611",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335029-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279160371",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335029"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335030",
+ "pattern": "Mirabella",
+ "color": "Sky/Diffused Light",
+ "gid": "gid://shopify/Product/7787424317491",
+ "title": "Mirabella Sky Diffused Light — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279193139",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335030"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782085668915",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335030-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279193139",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335030"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335031",
+ "pattern": "Salice",
+ "color": "Heather/Gilver",
+ "gid": "gid://shopify/Product/7787424448563",
+ "title": "Salice Heather Gilver — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279225907",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335031"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782086094899",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335031-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279225907",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335031"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335032",
+ "pattern": "Salice",
+ "color": "Mint/Emerald",
+ "gid": "gid://shopify/Product/7787424546867",
+ "title": "Salice Mint Emerald — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279258675",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335032"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782086225971",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335032-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279258675",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335032"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335033",
+ "pattern": "Salice",
+ "color": "Ochre/Sepia",
+ "gid": "gid://shopify/Product/7787424677939",
+ "title": "Salice Ochre Sepia — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279291443",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335033"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782086357043",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335033-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279291443",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335033"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335034",
+ "pattern": "Salice",
+ "color": "Rose/Navy",
+ "gid": "gid://shopify/Product/7787424841779",
+ "title": "Salice Rose Navy — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279324211",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335034"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782086488115",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335034-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279324211",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335034"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335035",
+ "pattern": "Salice",
+ "color": "Tangerine/Gilver",
+ "gid": "gid://shopify/Product/7787424940083",
+ "title": "Salice Tangerine Gilver — Harlequin",
+ "status": "ACTIVE",
+ "target_retail": 208.14,
+ "variant_count": 2,
+ "variants": [
+ {
+ "id": "gid://shopify/ProductVariant/44457279356979",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335035"
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782086651955",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335035-Sample"
+ }
+ ],
+ "roll_variant_count": 1,
+ "roll_variant": {
+ "id": "gid://shopify/ProductVariant/44457279356979",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335035"
+ },
+ "disposition": "REPRICE 150 -> 208.14"
+ }
+ ],
+ "skips": [],
+ "restoreMap": [
+ {
+ "dwhq_sku": "DWHQ-335000",
+ "gid": "gid://shopify/Product/7787420450867",
+ "variant_id": "gid://shopify/ProductVariant/44457278242867",
+ "variant_sku": "DWHQ-335000",
+ "old_price": "150.00",
+ "new_price": "253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335004",
+ "gid": "gid://shopify/Product/7787420909619",
+ "variant_id": "gid://shopify/ProductVariant/44457278373939",
+ "variant_sku": "DWHQ-335004",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335005",
+ "gid": "gid://shopify/Product/7787421007923",
+ "variant_id": "gid://shopify/ProductVariant/44457278406707",
+ "variant_sku": "DWHQ-335005",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335006",
+ "gid": "gid://shopify/Product/7787421106227",
+ "variant_id": "gid://shopify/ProductVariant/44457278439475",
+ "variant_sku": "DWHQ-335006",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335007",
+ "gid": "gid://shopify/Product/7787421204531",
+ "variant_id": "gid://shopify/ProductVariant/44457278472243",
+ "variant_sku": "DWHQ-335007",
+ "old_price": "150.00",
+ "new_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335009",
+ "gid": "gid://shopify/Product/7787421433907",
+ "variant_id": "gid://shopify/ProductVariant/44457278505011",
+ "variant_sku": "DWHQ-335009",
+ "old_price": "150.00",
+ "new_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335010",
+ "gid": "gid://shopify/Product/7787421499443",
+ "variant_id": "gid://shopify/ProductVariant/44457278537779",
+ "variant_sku": "DWHQ-335010",
+ "old_price": "150.00",
+ "new_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335012",
+ "gid": "gid://shopify/Product/7787421663283",
+ "variant_id": "gid://shopify/ProductVariant/44457278570547",
+ "variant_sku": "DWHQ-335012",
+ "old_price": "150.00",
+ "new_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335014",
+ "gid": "gid://shopify/Product/7787422515251",
+ "variant_id": "gid://shopify/ProductVariant/44457278603315",
+ "variant_sku": "DWHQ-335014",
+ "old_price": "150.00",
+ "new_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335015",
+ "gid": "gid://shopify/Product/7787422613555",
+ "variant_id": "gid://shopify/ProductVariant/44457278636083",
+ "variant_sku": "DWHQ-335015",
+ "old_price": "150.00",
+ "new_price": "269.68"
+ },
+ {
+ "dwhq_sku": "DWHQ-335016",
+ "gid": "gid://shopify/Product/7787422744627",
+ "variant_id": "gid://shopify/ProductVariant/44457278668851",
+ "variant_sku": "DWHQ-335016",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335017",
+ "gid": "gid://shopify/Product/7787422842931",
+ "variant_id": "gid://shopify/ProductVariant/44457278701619",
+ "variant_sku": "DWHQ-335017",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335018",
+ "gid": "gid://shopify/Product/7787422974003",
+ "variant_id": "gid://shopify/ProductVariant/44457278734387",
+ "variant_sku": "DWHQ-335018",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335019",
+ "gid": "gid://shopify/Product/7787423072307",
+ "variant_id": "gid://shopify/ProductVariant/44457278865459",
+ "variant_sku": "DWHQ-335019",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335020",
+ "gid": "gid://shopify/Product/7787423170611",
+ "variant_id": "gid://shopify/ProductVariant/44457278898227",
+ "variant_sku": "DWHQ-335020",
+ "old_price": "150.00",
+ "new_price": "253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335021",
+ "gid": "gid://shopify/Product/7787423268915",
+ "variant_id": "gid://shopify/ProductVariant/44457278930995",
+ "variant_sku": "DWHQ-335021",
+ "old_price": "150.00",
+ "new_price": "253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335025",
+ "gid": "gid://shopify/Product/7787423793203",
+ "variant_id": "gid://shopify/ProductVariant/44457279029299",
+ "variant_sku": "DWHQ-335025",
+ "old_price": "150.00",
+ "new_price": "253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335026",
+ "gid": "gid://shopify/Product/7787423891507",
+ "variant_id": "gid://shopify/ProductVariant/44457279062067",
+ "variant_sku": "DWHQ-335026",
+ "old_price": "150.00",
+ "new_price": "253.39"
+ },
+ {
+ "dwhq_sku": "DWHQ-335027",
+ "gid": "gid://shopify/Product/7787423989811",
+ "variant_id": "gid://shopify/ProductVariant/44457279094835",
+ "variant_sku": "DWHQ-335027",
+ "old_price": "150.00",
+ "new_price": "228.05"
+ },
+ {
+ "dwhq_sku": "DWHQ-335028",
+ "gid": "gid://shopify/Product/7787424120883",
+ "variant_id": "gid://shopify/ProductVariant/44457279127603",
+ "variant_sku": "DWHQ-335028",
+ "old_price": "150.00",
+ "new_price": "228.05"
+ },
+ {
+ "dwhq_sku": "DWHQ-335029",
+ "gid": "gid://shopify/Product/7787424251955",
+ "variant_id": "gid://shopify/ProductVariant/44457279160371",
+ "variant_sku": "DWHQ-335029",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335030",
+ "gid": "gid://shopify/Product/7787424317491",
+ "variant_id": "gid://shopify/ProductVariant/44457279193139",
+ "variant_sku": "DWHQ-335030",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335031",
+ "gid": "gid://shopify/Product/7787424448563",
+ "variant_id": "gid://shopify/ProductVariant/44457279225907",
+ "variant_sku": "DWHQ-335031",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335032",
+ "gid": "gid://shopify/Product/7787424546867",
+ "variant_id": "gid://shopify/ProductVariant/44457279258675",
+ "variant_sku": "DWHQ-335032",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335033",
+ "gid": "gid://shopify/Product/7787424677939",
+ "variant_id": "gid://shopify/ProductVariant/44457279291443",
+ "variant_sku": "DWHQ-335033",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335034",
+ "gid": "gid://shopify/Product/7787424841779",
+ "variant_id": "gid://shopify/ProductVariant/44457279324211",
+ "variant_sku": "DWHQ-335034",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ },
+ {
+ "dwhq_sku": "DWHQ-335035",
+ "gid": "gid://shopify/Product/7787424940083",
+ "variant_id": "gid://shopify/ProductVariant/44457279356979",
+ "variant_sku": "DWHQ-335035",
+ "old_price": "150.00",
+ "new_price": "208.14"
+ }
+ ],
+ "collisions": [
+ {
+ "id": "gid://shopify/Product/7787420680243",
+ "title": "Cranes In Flight Emerald — Harlequin",
+ "vendor": "Harlequin",
+ "status": "ACTIVE",
+ "variants": {
+ "nodes": [
+ {
+ "id": "gid://shopify/ProductVariant/44457278308403",
+ "title": "Single Roll",
+ "price": "150.00",
+ "sku": "DWHQ-335002",
+ "inventoryItem": {
+ "id": "gid://shopify/InventoryItem/46570107732019"
+ }
+ },
+ {
+ "id": "gid://shopify/ProductVariant/44782084554803",
+ "title": "Sample",
+ "price": "4.25",
+ "sku": "DWHQ-335002-Sample",
+ "inventoryItem": {
+ "id": "gid://shopify/InventoryItem/46896875012147"
+ }
+ }
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/scripts/tk10870-action1-reprice.mjs b/scripts/tk10870-action1-reprice.mjs
new file mode 100644
index 0000000..c05f31b
--- /dev/null
+++ b/scripts/tk10870-action1-reprice.mjs
@@ -0,0 +1,86 @@
+#!/usr/bin/env node
+// TK-10870 ACTION 1 — reprice the ROLL variant of 27 candidates to target_retail.
+// Idempotent, restore-map-backed, read-back-verified. Steve-APPROVED (2026-08-30).
+// Reads the write plan from tk10870-live-read.json (built read-only just before).
+import { readFileSync, writeFileSync } from 'node:fs';
+
+const ENV = readFileSync('/Users/macstudio3/Projects/secrets-manager/.env', 'utf8');
+const TOKEN = ENV.match(/^SHOPIFY_ADMIN_TOKEN=(.+)$/m)[1].trim();
+const DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
+const API = '2024-10';
+const APPLY = process.argv.includes('--apply');
+
+async function gql(query, variables) {
+ const r = await fetch(`https://${DOMAIN}/admin/api/${API}/graphql.json`, {
+ method: 'POST',
+ headers: { 'X-Shopify-Access-Token': TOKEN, 'Content-Type': 'application/json' },
+ body: JSON.stringify({ query, variables }),
+ });
+ const j = await r.json();
+ if (j.errors) throw new Error('GQL transport errors: ' + JSON.stringify(j.errors));
+ return j.data;
+}
+
+const live = JSON.parse(readFileSync('/Users/macstudio3/Projects/harlequin-sample-price-analysis/artifacts/tk10870-live-read.json', 'utf8'));
+const writes = live.writes;
+
+const M = `mutation($productId: ID!, $variants: [ProductVariantsBulkInput!]!) {
+ productVariantsBulkUpdate(productId: $productId, variants: $variants) {
+ productVariants { id price }
+ userErrors { field message }
+ }
+}`;
+
+const Q = `query($id: ID!){ productVariant(id:$id){ id price sku } }`;
+
+const restoreMap = { ticket: 'TK-10870', action: 'ACTION1-reprice', generated: new Date().toISOString(), domain: DOMAIN, api: API, entries: [] };
+const verified = [];
+const errors = [];
+
+console.log(APPLY ? '=== APPLY MODE ===' : '=== DRY RUN (pass --apply to write) ===');
+for (const w of writes) {
+ const rv = w.roll_variant;
+ const entry = { dwhq_sku: w.dwhq_sku, product_gid: w.gid, variant_id: rv.id, variant_sku: rv.sku, old_price: rv.price, target_price: String(w.target_retail) };
+
+ // Re-read live right before write (defense-in-depth idempotency): if already at target, skip.
+ let preRead;
+ try { preRead = await gql(Q, { id: rv.id }); } catch (e) { errors.push({ ...entry, stage: 'preread', error: String(e) }); continue; }
+ const curPrice = parseFloat(preRead.productVariant.price);
+ if (Math.abs(curPrice - w.target_retail) < 0.005) {
+ console.log(`SKIP ${w.dwhq_sku} — already at ${curPrice}`);
+ entry.result = 'skip_already_at_target'; entry.old_price = preRead.productVariant.price;
+ restoreMap.entries.push(entry);
+ continue;
+ }
+ entry.old_price = preRead.productVariant.price; // authoritative pre-write value
+
+ if (!APPLY) { console.log(`WOULD reprice ${w.dwhq_sku} ${entry.old_price} -> ${w.target_retail}`); restoreMap.entries.push(entry); continue; }
+
+ let res;
+ try {
+ res = await gql(M, { productId: w.gid, variants: [{ id: rv.id, price: String(w.target_retail) }] });
+ } catch (e) { errors.push({ ...entry, stage: 'mutation', error: String(e) }); continue; }
+ const ue = res.productVariantsBulkUpdate.userErrors;
+ if (ue && ue.length) { errors.push({ ...entry, stage: 'userErrors', userErrors: ue }); console.log(`ERR ${w.dwhq_sku}`, JSON.stringify(ue)); continue; }
+
+ // Read-back verify
+ const post = await gql(Q, { id: rv.id });
+ const newPrice = parseFloat(post.productVariant.price);
+ const ok = Math.abs(newPrice - w.target_retail) < 0.005;
+ entry.result = ok ? 'written_verified' : 'written_MISMATCH';
+ entry.verified_price = post.productVariant.price;
+ restoreMap.entries.push(entry);
+ verified.push({ dwhq_sku: w.dwhq_sku, price: post.productVariant.price, ok });
+ console.log(`${ok ? 'OK ' : 'BAD '} ${w.dwhq_sku} ${entry.old_price} -> ${post.productVariant.price}`);
+}
+
+const RM_PATH = '/Users/macstudio3/.claude/yolo-queue/executed-reversible/harlequin-tk10870-action1-reprice-restore-map.json';
+if (APPLY) writeFileSync(RM_PATH, JSON.stringify(restoreMap, null, 2));
+writeFileSync('/Users/macstudio3/Projects/harlequin-sample-price-analysis/artifacts/tk10870-action1-result.json', JSON.stringify({ restoreMap, verified, errors }, null, 2));
+
+console.log('\n=== SUMMARY ===');
+console.log('Repriced+verified:', verified.filter(v => v.ok).length, '/ attempted', writes.length);
+console.log('Skipped (already at target):', restoreMap.entries.filter(e => e.result === 'skip_already_at_target').length);
+console.log('Errors:', errors.length);
+if (APPLY) console.log('Restore-map:', RM_PATH);
+if (errors.length) console.log(JSON.stringify(errors, null, 2));
diff --git a/scripts/tk10870-action1-rollback.mjs b/scripts/tk10870-action1-rollback.mjs
new file mode 100644
index 0000000..daa47a9
--- /dev/null
+++ b/scripts/tk10870-action1-rollback.mjs
@@ -0,0 +1,19 @@
+#!/usr/bin/env node
+// TK-10870 ACTION 1 ROLLBACK — restore each roll variant to old_price from the restore-map.
+// Usage: node tk10870-action1-rollback.mjs --apply
+import { readFileSync } from 'node:fs';
+const ENV = readFileSync('/Users/macstudio3/Projects/secrets-manager/.env', 'utf8');
+const TOKEN = ENV.match(/^SHOPIFY_ADMIN_TOKEN=(.+)$/m)[1].trim();
+const DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
+const API = '2024-10';
+const APPLY = process.argv.includes('--apply');
+async function gql(query, variables){ const r=await fetch(`https://${DOMAIN}/admin/api/${API}/graphql.json`,{method:'POST',headers:{'X-Shopify-Access-Token':TOKEN,'Content-Type':'application/json'},body:JSON.stringify({query,variables})}); const j=await r.json(); if(j.errors) throw new Error(JSON.stringify(j.errors)); return j.data; }
+const rm = JSON.parse(readFileSync('/Users/macstudio3/.claude/yolo-queue/executed-reversible/harlequin-tk10870-action1-reprice-restore-map.json','utf8'));
+const M = `mutation($productId: ID!, $variants: [ProductVariantsBulkInput!]!){ productVariantsBulkUpdate(productId:$productId, variants:$variants){ productVariants{id price} userErrors{field message} } }`;
+for (const e of rm.entries) {
+ if (e.result === 'skip_already_at_target') continue;
+ if (!APPLY) { console.log(`WOULD restore ${e.dwhq_sku} -> ${e.old_price}`); continue; }
+ const res = await gql(M, { productId: e.product_gid, variants: [{ id: e.variant_id, price: String(e.old_price) }] });
+ const ue = res.productVariantsBulkUpdate.userErrors;
+ console.log(ue.length ? `ERR ${e.dwhq_sku} ${JSON.stringify(ue)}` : `RESTORED ${e.dwhq_sku} -> ${e.old_price}`);
+}
diff --git a/scripts/tk10870-read-live.mjs b/scripts/tk10870-read-live.mjs
new file mode 100644
index 0000000..63b27d0
--- /dev/null
+++ b/scripts/tk10870-read-live.mjs
@@ -0,0 +1,124 @@
+#!/usr/bin/env node
+// TK-10870 Action 1 — READ live Shopify variants for the 27 reprice candidates
+// + the 2 collision products. Produces a plan of writes/skips + restore-map.
+// READ-ONLY. No mutations.
+import { readFileSync, writeFileSync } from 'node:fs';
+
+const ENV = readFileSync('/Users/macstudio3/Projects/secrets-manager/.env', 'utf8');
+const TOKEN = ENV.match(/^SHOPIFY_ADMIN_TOKEN=(.+)$/m)[1].trim();
+const DOMAIN = 'designer-laboratory-sandbox.myshopify.com';
+const API = '2024-10';
+
+async function gql(query, variables) {
+ const r = await fetch(`https://${DOMAIN}/admin/api/${API}/graphql.json`, {
+ method: 'POST',
+ headers: { 'X-Shopify-Access-Token': TOKEN, 'Content-Type': 'application/json' },
+ body: JSON.stringify({ query, variables }),
+ });
+ const j = await r.json();
+ if (j.errors) throw new Error('GQL errors: ' + JSON.stringify(j.errors));
+ return j.data;
+}
+
+const plan = JSON.parse(readFileSync('/Users/macstudio3/Projects/harlequin-sample-price-analysis/artifacts/reprice-plan.json', 'utf8'));
+
+// Candidates: 27 reprice_now, but EXCLUDE the two collisions per instructions.
+const EXCLUDE = new Set(['DWHQ-335002', 'DWHQ-335024']);
+const candidates = plan.reprice_now.filter(c => !EXCLUDE.has(c.dwhq_sku));
+
+// Also read the 2 collision products for Action 3 context.
+const collisionProductIds = ['7787420680243']; // Cranes shared product (335001/335002)
+// DWHQ-335024 Locronan/Demoiselle — need to find its shopify_product_id; not in reprice_now. Read separately later.
+
+const Q = `query($id: ID!) {
+ product(id: $id) {
+ id
+ title
+ vendor
+ status
+ variants(first: 50) {
+ nodes { id title price sku inventoryItem { id } }
+ }
+ }
+}`;
+
+const results = [];
+const writes = [];
+const skips = [];
+const restoreMap = [];
+
+for (const c of candidates) {
+ const gid = `gid://shopify/Product/${c.shopify_product_id}`;
+ let data;
+ try {
+ data = await gql(Q, { id: gid });
+ } catch (e) {
+ results.push({ dwhq_sku: c.dwhq_sku, error: String(e) });
+ continue;
+ }
+ const p = data.product;
+ if (!p) { results.push({ dwhq_sku: c.dwhq_sku, error: 'product not found', gid }); continue; }
+ const variants = p.variants.nodes;
+ // Sample variant = title/sku contains -Sample; roll variant = the non-sample sellable one.
+ const sampleV = variants.find(v => /sample/i.test(v.sku || '') || /sample/i.test(v.title || ''));
+ const rollVs = variants.filter(v => v !== sampleV);
+ const rec = {
+ dwhq_sku: c.dwhq_sku, pattern: c.pattern, color: c.color, gid,
+ title: p.title, status: p.status,
+ target_retail: c.target_retail,
+ variant_count: variants.length,
+ variants: variants.map(v => ({ id: v.id, title: v.title, price: v.price, sku: v.sku })),
+ roll_variant_count: rollVs.length,
+ };
+ if (rollVs.length === 0) {
+ rec.disposition = 'NO_ROLL_VARIANT — sample-only live, cannot reprice (would need new variant, out of scope)';
+ skips.push(rec);
+ } else if (rollVs.length > 1) {
+ rec.disposition = 'MULTIPLE_ROLL_VARIANTS — ambiguous, STOP/draft';
+ skips.push(rec);
+ } else {
+ const rv = rollVs[0];
+ rec.roll_variant = { id: rv.id, title: rv.title, price: rv.price, sku: rv.sku };
+ const cur = parseFloat(rv.price);
+ const tgt = c.target_retail;
+ if (Math.abs(cur - tgt) < 0.005) {
+ rec.disposition = `ALREADY_AT_TARGET (${cur} == ${tgt}) — SKIP`;
+ skips.push(rec);
+ } else {
+ rec.disposition = `REPRICE ${cur} -> ${tgt}`;
+ writes.push(rec);
+ restoreMap.push({ dwhq_sku: c.dwhq_sku, gid, variant_id: rv.id, variant_sku: rv.sku, old_price: rv.price, new_price: String(tgt) });
+ }
+ }
+ results.push(rec);
+}
+
+// Read collision product(s) too for context (read-only).
+const collisions = [];
+for (const pid of collisionProductIds) {
+ const gid = `gid://shopify/Product/${pid}`;
+ try {
+ const data = await gql(Q, { id: gid });
+ collisions.push(data.product);
+ } catch (e) { collisions.push({ error: String(e), pid }); }
+}
+
+const out = {
+ ticket: 'TK-10870', generated: new Date().toISOString(),
+ excluded: [...EXCLUDE],
+ summary: { candidates: candidates.length, writes: writes.length, skips: skips.length },
+ writes, skips, restoreMap, collisions,
+};
+const OUT = '/Users/macstudio3/Projects/harlequin-sample-price-analysis/artifacts/tk10870-live-read.json';
+writeFileSync(OUT, JSON.stringify(out, null, 2));
+console.log('Candidates:', candidates.length, '| Writes needed:', writes.length, '| Skips:', skips.length);
+console.log('---WRITES---');
+for (const w of writes) console.log(` ${w.dwhq_sku} ${w.roll_variant.price} -> ${w.target_retail} [${w.roll_variant.title}]`);
+console.log('---SKIPS---');
+for (const s of skips) console.log(` ${s.dwhq_sku} ${s.disposition}`);
+console.log('---COLLISIONS (read-only context)---');
+for (const c of collisions) {
+ if (c.error) { console.log(' ERROR', c.pid, c.error); continue; }
+ console.log(` ${c.title} [${c.status}] variants: ${c.variants.nodes.map(v=>`${v.sku}=${v.price}`).join(', ')}`);
+}
+console.log('\nWrote', OUT);
← cf2952a cycle6 (compound): reusable read-only catalog-integrity dete
·
back to Harlequin Sample Price Analysis
·
TK-10870 Action3: recover real Locronan + Cranes mfr codes r 16a6350 →