← back to Gmc Titlefix
TK-11449: execute Steve-approved orphan-unpublish (61) + price-mismatch fix (3)
b1fe027b7311e8d8242ed893c820ace30da598ac · 2026-09-12 19:21:40 -0700 · Steve
Orphan-unpublish: selected the exact 61 live GMC offers created by the 67-pair
Fentucci dedup (matched by resolving each offer's underlying Shopify product/
variant ID against the dedup restore map, not by stale link-handle text),
excluded the pano-stripe-peck-drive-plum carve-out (turned out to have 0
matching offers, so the exclusion was a no-op), deleted via the existing
hardened gmc-full-orphan-delete.mjs (channel guard, 1-offer canary, then the
remaining 60), verified 61/61 confirmed absent.
Price-mismatch: corrected the 3 clear under-advertised Brunschwig offers
(Mayenne/Maizan/Sufera) via the DW Real-Price Overrides datasource
(10693978453), canary-then-remainder, verified by fresh read-back. Confirms
this write path lands despite the stalled primary channel (TK-11397) — with
a 20-90s processing lag, not the "creates dead since 08-26" behaviour feared
in the gated memo. Deliberately did not touch Batik/Glambeads (their own
offer links pin the sample variant, so the correct fix direction is
ambiguous between lowering the price to match vs. fixing the link — held for
Steve rather than guessed).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E2whC5qTE7dEhVmqFe8pND
Files touched
A data/tk11449-orphan-select.jsonA tk11449-orphan-select.mjsA tk11449-price-apply.mjsA tk11449-price-readback.mjsA tk11449-price-select.mjs
Diff
commit b1fe027b7311e8d8242ed893c820ace30da598ac
Author: Steve <steve@designerwallcoverings.com>
Date: Sat Sep 12 19:21:40 2026 -0700
TK-11449: execute Steve-approved orphan-unpublish (61) + price-mismatch fix (3)
Orphan-unpublish: selected the exact 61 live GMC offers created by the 67-pair
Fentucci dedup (matched by resolving each offer's underlying Shopify product/
variant ID against the dedup restore map, not by stale link-handle text),
excluded the pano-stripe-peck-drive-plum carve-out (turned out to have 0
matching offers, so the exclusion was a no-op), deleted via the existing
hardened gmc-full-orphan-delete.mjs (channel guard, 1-offer canary, then the
remaining 60), verified 61/61 confirmed absent.
Price-mismatch: corrected the 3 clear under-advertised Brunschwig offers
(Mayenne/Maizan/Sufera) via the DW Real-Price Overrides datasource
(10693978453), canary-then-remainder, verified by fresh read-back. Confirms
this write path lands despite the stalled primary channel (TK-11397) — with
a 20-90s processing lag, not the "creates dead since 08-26" behaviour feared
in the gated memo. Deliberately did not touch Batik/Glambeads (their own
offer links pin the sample variant, so the correct fix direction is
ambiguous between lowering the price to match vs. fixing the link — held for
Steve rather than guessed).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E2whC5qTE7dEhVmqFe8pND
---
data/tk11449-orphan-select.json | 681 ++++++++++++++++++++++++++++++++++++++++
tk11449-orphan-select.mjs | 155 +++++++++
tk11449-price-apply.mjs | 34 ++
tk11449-price-readback.mjs | 11 +
tk11449-price-select.mjs | 27 ++
5 files changed, 908 insertions(+)
diff --git a/data/tk11449-orphan-select.json b/data/tk11449-orphan-select.json
new file mode 100644
index 0000000..12c13ea
--- /dev/null
+++ b/data/tk11449-orphan-select.json
@@ -0,0 +1,681 @@
+{
+ "generated_at": "2026-09-13T02:03:59.562Z",
+ "ticket": "TK-11449",
+ "total_orphans_matched": 61,
+ "carveout_handle": "pano-stripe-peck-drive-plum",
+ "carveout_offers": [],
+ "to_delete_count": 61,
+ "to_delete": [
+ {
+ "mc_id": "online:en:US:43605857697843",
+ "offerId": "43605857697843",
+ "orig_clean": "pipa-stripe-canon-drive-cappuccino",
+ "orig_legacy_handle": "pipa-stripe-canon-drive-cappuccino-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255405330483",
+ "title": "Pipa 12\" Fentucci Stripe - Canon Drive Cappuccino",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-canon-drive-cappuccino",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858320435",
+ "offerId": "43605858320435",
+ "orig_clean": "pico-stripe-oscar-ocean-sunset-blue",
+ "orig_legacy_handle": "pico-stripe-oscar-ocean-sunset-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7248849076275",
+ "title": "Pico 6\" Fentucci Stripe - Oscar Ocean Sunset Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-oscar-ocean-sunset-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858811955",
+ "offerId": "43605858811955",
+ "orig_clean": "pipa-stripe-midnight-green",
+ "orig_legacy_handle": "pipa-stripe-midnight-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7243168743475",
+ "title": "Pipa 12\" Fentucci Stripe - Midnight Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-midnight-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858156595",
+ "offerId": "43605858156595",
+ "orig_clean": "pano-stripe-benedict-canyon-coffee",
+ "orig_legacy_handle": "pano-stripe-benedict-canyon-coffee-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252866596915",
+ "title": "Pano 24\" Fentucci Stripe - Benedict Canyon Coffee",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-benedict-canyon-coffee",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859074099",
+ "offerId": "43605859074099",
+ "orig_clean": "pico-stripe-sultry-sunset-magenta",
+ "orig_legacy_handle": "pico-stripe-sultry-sunset-magenta-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7243003985971",
+ "title": "Pico 6\" Fentucci Stripe - Sultry Sunset Magenta",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-sultry-sunset-magenta",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858451507",
+ "offerId": "43605858451507",
+ "orig_clean": "pano-stripe-beverly-beach-house-blue",
+ "orig_legacy_handle": "pano-stripe-beverly-beach-house-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7248493314099",
+ "title": "Pano 24\" Fentucci Stripe - Beverly Beach House Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-beverly-beach-house-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858779187",
+ "offerId": "43605858779187",
+ "orig_clean": "pano-stripe-midnight-green",
+ "orig_legacy_handle": "pano-stripe-midnight-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7243169923123",
+ "title": "Pano 24\" Fentucci Stripe - Midnight Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-midnight-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:shopify_US_7248868245555_43605858254899",
+ "offerId": "shopify_US_7248868245555_43605858254899",
+ "orig_clean": "pano-stripe-oscar-ocean-sunset-blue",
+ "orig_legacy_handle": "pano-stripe-oscar-ocean-sunset-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7248868245555",
+ "title": "Pano 24\" Fentucci Stripe - Oscar Ocean Sunset Blue Priced per single roll (2'x12)'- Packaged in Doubles on Paper",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-oscar-ocean-sunset-blue?variant=43605858254899&country=US¤cy=USD&utm_medium=product_sync&utm_source=google&utm_content=sag_organic&utm_campaign=sag_organic",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857959987",
+ "offerId": "43605857959987",
+ "orig_clean": "pano-stripe-i-love-la",
+ "orig_legacy_handle": "pano-stripe-i-love-la-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252897792051",
+ "title": "Pano 24\" Fentucci Stripe - I Love LA",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-i-love-la",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859172403",
+ "offerId": "43605859172403",
+ "orig_clean": "pico-stripe-marilyn-magenta",
+ "orig_legacy_handle": "pico-stripe-marilyn-magenta-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7239631339571",
+ "title": "Pico 6\" Fentucci Stripe - Marilyn Magenta",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-marilyn-magenta",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857566771",
+ "offerId": "43605857566771",
+ "orig_clean": "pano-stripe-classic-camden-blue",
+ "orig_legacy_handle": "pano-stripe-classic-camden-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255412146227",
+ "title": "Pano 24\" Fentucci Stripe - Classic Camden Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/collections/beverly-hills-stripe-wallpaper/products/pano-stripe-classic-camden-blue?variant=43605857566771",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857337395",
+ "offerId": "43605857337395",
+ "orig_clean": "pipa-stripe-doheny-dark-blue",
+ "orig_legacy_handle": "pipa-stripe-doheny-dark-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255415390259",
+ "title": "Pipa 12\" Fentucci Stripe - Doheny Dark Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-doheny-dark-blue?variant=43605857337395",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858582579",
+ "offerId": "43605858582579",
+ "orig_clean": "pipa-stripe-portola-pacific-blue",
+ "orig_legacy_handle": "pipa-stripe-portola-pacific-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7245348274227",
+ "title": "Pipa 12\" Fentucci Stripe - Portola Pacific Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-portola-pacific-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857632307",
+ "offerId": "43605857632307",
+ "orig_clean": "pico-stripe-classic-camden-blue",
+ "orig_legacy_handle": "pico-stripe-classic-camden-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255411654707",
+ "title": "Pico 6\" Fentucci Stripe - Classic Camden Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-classic-camden-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857992755",
+ "offerId": "43605857992755",
+ "orig_clean": "pipa-stripe-i-love-la",
+ "orig_legacy_handle": "pipa-stripe-i-love-la-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252897103923",
+ "title": "Pipa 12\" Fentucci Stripe - I Love LA",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-i-love-la",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858713651",
+ "offerId": "43605858713651",
+ "orig_clean": "pipa-stripe-oxford-olive-green",
+ "orig_legacy_handle": "pipa-stripe-oxford-olive-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7243467292723",
+ "title": "Pipa 12\" Fentucci Stripe - Oxford Olive Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-oxford-olive-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858549811",
+ "offerId": "43605858549811",
+ "orig_clean": "pano-stripe-portola-pacific-blue",
+ "orig_legacy_handle": "pano-stripe-portola-pacific-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7245356466227",
+ "title": "Pano 24\" Fentucci Stripe - Portola Pacific Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-portola-pacific-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859008563",
+ "offerId": "43605859008563",
+ "orig_clean": "pano-stripe-sultry-sunset-magenta",
+ "orig_legacy_handle": "pano-stripe-sultry-sunset-magenta-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7243010539571",
+ "title": "Pano 24\" Fentucci Stripe - Sultry Sunset Magenta",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-sultry-sunset-magenta",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857108019",
+ "offerId": "43605857108019",
+ "orig_clean": "pipa-stripe-burton-way",
+ "orig_legacy_handle": "pipa-stripe-burton-way-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255427973171",
+ "title": "Pipa 12\" Fentucci Stripe - Burton Way",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-burton-way",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859336243",
+ "offerId": "43605859336243",
+ "orig_clean": "pipa-stripe-margot-magenta",
+ "orig_legacy_handle": "pipa-stripe-margot-magenta-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7239625277491",
+ "title": "Pipa 12\" Fentucci Stripe - Margot Magenta",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-margot-magenta",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859237939",
+ "offerId": "43605859237939",
+ "orig_clean": "pipa-stripe-viva-magenta",
+ "orig_legacy_handle": "pipa-stripe-viva-magenta-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7239627472947",
+ "title": "Pipa 12\" Fentucci Stripe - Viva Magenta",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-viva-magenta",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858385971",
+ "offerId": "43605858385971",
+ "orig_clean": "pipa-stripe-sultry-sunset-blue",
+ "orig_legacy_handle": "pipa-stripe-sultry-sunset-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7248616816691",
+ "title": "Pipa 12\" Fentucci Stripe - Sultry Sunset Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-sultry-sunset-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858123827",
+ "offerId": "43605858123827",
+ "orig_clean": "pico-stripe-peck-drive-plum",
+ "orig_legacy_handle": "pico-stripe-peck-drive-plum-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252877770803",
+ "title": "Pico 6\" Fentucci Stripe - Peck Drive Plum",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/collections/beverly-hills-stripe-wallpaper/products/pico-stripe-peck-drive-plum?variant=43605858123827",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859598387",
+ "offerId": "43605859598387",
+ "orig_clean": "pipa-stripe-classic-green",
+ "orig_legacy_handle": "pipa-stripe-classic-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7238369116211",
+ "title": "Pipa 12\" Fentucci Stripe - Classic Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-classic-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859106867",
+ "offerId": "43605859106867",
+ "orig_clean": "pano-stripe-marilyn-magenta",
+ "orig_legacy_handle": "pano-stripe-marilyn-magenta-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7239631601715",
+ "title": "Pano 24\" Fentucci Stripe - Marilyn Magenta",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-marilyn-magenta",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859369011",
+ "offerId": "43605859369011",
+ "orig_clean": "pano-stripe-margot-magenta",
+ "orig_legacy_handle": "pano-stripe-margot-magenta-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7239625146419",
+ "title": "Pano 24\" Fentucci Stripe - Margot Magenta",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-margot-magenta",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858484275",
+ "offerId": "43605858484275",
+ "orig_clean": "pipa-stripe-beverly-beach-house-blue",
+ "orig_legacy_handle": "pipa-stripe-beverly-beach-house-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7248488661043",
+ "title": "Pipa 12\" Fentucci Stripe - Beverly Beach House Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-beverly-beach-house-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857861683",
+ "offerId": "43605857861683",
+ "orig_clean": "pano-stripe-flamingo-pink",
+ "orig_legacy_handle": "pano-stripe-flamingo-pink-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252919812147",
+ "title": "Pano 24\" Fentucci Stripe - Flamingo Pink",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-flamingo-pink",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857927219",
+ "offerId": "43605857927219",
+ "orig_clean": "pico-stripe-flamingo-pink",
+ "orig_legacy_handle": "pico-stripe-flamingo-pink-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252915650611",
+ "title": "Pico 6\" Fentucci Stripe - Flamingo Pink",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-flamingo-pink",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859500083",
+ "offerId": "43605859500083",
+ "orig_clean": "pano-stripe-classic-green-copia",
+ "orig_legacy_handle": "pano-stripe-classic-green-copia-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7238372065331",
+ "title": "Pano 24\" Fentucci Stripe - Classic Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-classic-green-copia",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859041331",
+ "offerId": "43605859041331",
+ "orig_clean": "pipa-stripe-sultry-sunset-magenta",
+ "orig_legacy_handle": "pipa-stripe-sultry-sunset-magenta-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7243007787059",
+ "title": "Pipa 12\" Fentucci Stripe - Sultry Sunset Magenta",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-sultry-sunset-magenta",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859401779",
+ "offerId": "43605859401779",
+ "orig_clean": "pano-stripe-lexington-black",
+ "orig_legacy_handle": "pano-stripe-lexington-black-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7239619248179",
+ "title": "Pano 24\" Fentucci Stripe - Lexington Black",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-lexington-black",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859205171",
+ "offerId": "43605859205171",
+ "orig_clean": "pano-stripe-viva-magenta",
+ "orig_legacy_handle": "pano-stripe-viva-magenta-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7239627571251",
+ "title": "Pano 24\" Fentucci Stripe - Viva Magenta",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-viva-magenta",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858025523",
+ "offerId": "43605858025523",
+ "orig_clean": "pico-stripe-i-love-la",
+ "orig_legacy_handle": "pico-stripe-i-love-la-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252887273523",
+ "title": "Pico 6\" Fentucci Stripe - I Love LA",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-i-love-la?variant=43605858025523",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857763379",
+ "offerId": "43605857763379",
+ "orig_clean": "pano-stripe-foothill-forest-green",
+ "orig_legacy_handle": "pano-stripe-foothill-forest-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252934557747",
+ "title": "Pano 24\" Fentucci Stripe - Foothill Forest Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-foothill-forest-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859467315",
+ "offerId": "43605859467315",
+ "orig_clean": "pico-stripe-lexington-black",
+ "orig_legacy_handle": "pico-stripe-lexington-black-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7239618822195",
+ "title": "Pico 6\" Fentucci Stripe - Lexington Black",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-lexington-black",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857599539",
+ "offerId": "43605857599539",
+ "orig_clean": "pipa-stripe-classic-camden-blue",
+ "orig_legacy_handle": "pipa-stripe-classic-camden-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255411949619",
+ "title": "Pipa 12\" Fentucci Stripe - Classic Camden Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-classic-camden-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857173555",
+ "offerId": "43605857173555",
+ "orig_clean": "pano-stripe-peach-pit",
+ "orig_legacy_handle": "pano-stripe-peach-pit-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255417323571",
+ "title": "Pano 24\" Fentucci Stripe - Peach Pit",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-peach-pit",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858222131",
+ "offerId": "43605858222131",
+ "orig_clean": "pico-stripe-benedict-canyon-coffee",
+ "orig_legacy_handle": "pico-stripe-benedict-canyon-coffee-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252677853235",
+ "title": "Pico 6\" Fentucci Stripe - Benedict Canyon Coffee",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/collections/beverly-hills-stripe-wallpaper/products/pico-stripe-benedict-canyon-coffee?variant=43605858222131",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857665075",
+ "offerId": "43605857665075",
+ "orig_clean": "pano-stripe-canon-drive-cappuccino",
+ "orig_legacy_handle": "pano-stripe-canon-drive-cappuccino-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255406346291",
+ "title": "Pano 24\" Fentucci Stripe - Canon Drive Cappuccino",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-canon-drive-cappuccino",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858680883",
+ "offerId": "43605858680883",
+ "orig_clean": "pano-stripe-oxford-olive-green",
+ "orig_legacy_handle": "pano-stripe-oxford-olive-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7243468570675",
+ "title": "Pano 24\" Fentucci Stripe - Oxford Olive Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-oxford-olive-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:42352028713011",
+ "offerId": "42352028713011",
+ "orig_clean": "piza-stripe-classic-green",
+ "orig_legacy_handle": "piza-stripe-classic-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7238379372595",
+ "title": "Pico 48\" Fentucci Stripe - Classic Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/piza-stripe-classic-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857534003",
+ "offerId": "43605857534003",
+ "orig_clean": "pico-stripe-doheny-dark-blue",
+ "orig_legacy_handle": "pico-stripe-doheny-dark-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255415357491",
+ "title": "Pico 6\" Fentucci Stripe - Doheny Dark Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-doheny-dark-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858517043",
+ "offerId": "43605858517043",
+ "orig_clean": "pico-stripe-beverly-beach-house-blue",
+ "orig_legacy_handle": "pico-stripe-beverly-beach-house-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7245601669171",
+ "title": "Pico 6\" Fentucci Stripe - Beverly Beach House Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-beverly-beach-house-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858091059",
+ "offerId": "43605858091059",
+ "orig_clean": "pipa-stripe-peck-drive-plum",
+ "orig_legacy_handle": "pipa-stripe-peck-drive-plum-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252882161715",
+ "title": "Pipa 12\" Fentucci Stripe - Peck Drive Plum",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-peck-drive-plum",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858746419",
+ "offerId": "43605858746419",
+ "orig_clean": "pico-stripe-oxford-olive-green",
+ "orig_legacy_handle": "pico-stripe-oxford-olive-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7243465982003",
+ "title": "Pico 6\" Fentucci Stripe - Oxford Olive Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-oxford-olive-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859139635",
+ "offerId": "43605859139635",
+ "orig_clean": "pipa-stripe-marilyn-magenta",
+ "orig_legacy_handle": "pipa-stripe-marilyn-magenta-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7239631503411",
+ "title": "Pipa 12\" Fentucci Stripe - Marilyn Magenta",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-marilyn-magenta",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857730611",
+ "offerId": "43605857730611",
+ "orig_clean": "pico-stripe-canon-drive-cappuccino",
+ "orig_legacy_handle": "pico-stripe-canon-drive-cappuccino-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255401562163",
+ "title": "Pico 6\" Fentucci Stripe - Canon Drive Cappuccino",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-canon-drive-cappuccino?variant=43605857730611",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857828915",
+ "offerId": "43605857828915",
+ "orig_clean": "pico-stripe-foothill-forest-green",
+ "orig_legacy_handle": "pico-stripe-foothill-forest-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252930297907",
+ "title": "Pico 6\" Fentucci Stripe - Foothill Forest Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-foothill-forest-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858287667",
+ "offerId": "43605858287667",
+ "orig_clean": "pipa-stripe-oscar-ocean-sunset-blue",
+ "orig_legacy_handle": "pipa-stripe-oscar-ocean-sunset-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7248862838835",
+ "title": "Pipa 12\" Fentucci Stripe - Oscar Ocean Sunset Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-oscar-ocean-sunset-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857271859",
+ "offerId": "43605857271859",
+ "orig_clean": "pico-stripe-peach-pit",
+ "orig_legacy_handle": "pico-stripe-peach-pit-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255416012851",
+ "title": "Pico 6\" Fentucci Stripe - Peach Pit",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-peach-pit",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857140787",
+ "offerId": "43605857140787",
+ "orig_clean": "pico-stripe-burton-way",
+ "orig_legacy_handle": "pico-stripe-burton-way-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255426990131",
+ "title": "Pico 6\" Fentucci Stripe - Burton Way",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-burton-way",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858877491",
+ "offerId": "43605858877491",
+ "orig_clean": "pano-stripe-sunset-spring-green",
+ "orig_legacy_handle": "pano-stripe-sunset-spring-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7243059101747",
+ "title": "Pano 24\" Fentucci Stripe - Sunset Spring Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pano-stripe-sunset-spring-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858189363",
+ "offerId": "43605858189363",
+ "orig_clean": "pipa-stripe-benedict-canyon-coffee",
+ "orig_legacy_handle": "pipa-stripe-benedict-canyon-coffee-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252863516723",
+ "title": "Pipa 12\" Fentucci Stripe - Benedict Canyon Coffee",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-benedict-canyon-coffee",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605859434547",
+ "offerId": "43605859434547",
+ "orig_clean": "pipa-stripe-lexington-black",
+ "orig_legacy_handle": "pipa-stripe-lexington-black-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7239619084339",
+ "title": "Pipa 12\" Fentucci Stripe - Lexington Black",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-lexington-black",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857796147",
+ "offerId": "43605857796147",
+ "orig_clean": "pipa-stripe-foothill-forest-green",
+ "orig_legacy_handle": "pipa-stripe-foothill-forest-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252933378099",
+ "title": "Pipa 12\" Fentucci Stripe - Foothill Forest Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-foothill-forest-green",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858844723",
+ "offerId": "43605858844723",
+ "orig_clean": "pico-stripe-midnight-green",
+ "orig_legacy_handle": "pico-stripe-midnight-green-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7243167268915",
+ "title": "Pico 6\" Fentucci Stripe - Midnight Green",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-midnight-green?variant=43605858844723",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858648115",
+ "offerId": "43605858648115",
+ "orig_clean": "pico-stripe-portola-pacific-blue",
+ "orig_legacy_handle": "pico-stripe-portola-pacific-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7245229129779",
+ "title": "Pico 6\" Fentucci Stripe - Portola Pacific Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-portola-pacific-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857206323",
+ "offerId": "43605857206323",
+ "orig_clean": "pipa-stripe-peach-pit",
+ "orig_legacy_handle": "pipa-stripe-peach-pit-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7255417192499",
+ "title": "Pipa 12\" Fentucci Stripe - Peach Pit",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-peach-pit",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605857894451",
+ "offerId": "43605857894451",
+ "orig_clean": "pipa-stripe-flamingo-pink",
+ "orig_legacy_handle": "pipa-stripe-flamingo-pink-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7252918239283",
+ "title": "Pipa 12\" Fentucci Stripe - Flamingo Pink",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pipa-stripe-flamingo-pink",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ },
+ {
+ "mc_id": "online:en:US:43605858418739",
+ "offerId": "43605858418739",
+ "orig_clean": "pico-stripe-sultry-sunset-blue",
+ "orig_legacy_handle": "pico-stripe-sultry-sunset-blue-legacy-2024",
+ "orig_product_gid": "gid://shopify/Product/7248612818995",
+ "title": "Pico 6\" Fentucci Stripe - Sultry Sunset Blue",
+ "price": "195.00 USD",
+ "link": "https://www.designerwallcoverings.com/products/pico-stripe-sultry-sunset-blue",
+ "dataSource": "accounts/146735262/dataSources/180695450"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tk11449-orphan-select.mjs b/tk11449-orphan-select.mjs
new file mode 100644
index 0000000..a5f2931
--- /dev/null
+++ b/tk11449-orphan-select.mjs
@@ -0,0 +1,155 @@
+#!/usr/bin/env node
+// TK-11449 — build the exact list of live GMC orphan offers created by the 67-pair dedup.
+// READ-ONLY. Writes: data/tk11449-orphan-select.json (full detail incl. price/link snapshot,
+// the actual restore-map for these offers) + <queue>/tk11449-orphan-ids-59.txt (the --list
+// file for gmc-full-orphan-delete.mjs) + a 1-line canary file.
+import fs from 'fs';
+const HOME = process.env.HOME;
+const Q = HOME + '/.claude/yolo-queue';
+const SHOP = 'designer-laboratory-sandbox';
+const MERCHANT = '146735262';
+const CARVEOUT_HANDLE = 'pano-stripe-peck-drive-plum'; // survivor has NO offer of its own — do not orphan-unpublish
+
+const shopTok = fs.readFileSync(HOME + '/Projects/secrets-manager/.env', 'utf8').match(/^SHOPIFY_FULL_ACCESS_TOKEN=(.+)$/m)[1];
+
+async function shopGql(q, v) {
+ for (let a = 0; a < 5; a++) {
+ const r = await fetch(`https://${SHOP}.myshopify.com/admin/api/2024-10/graphql.json`, {
+ method: 'POST', headers: { 'X-Shopify-Access-Token': shopTok, 'Content-Type': 'application/json' },
+ body: JSON.stringify({ query: q, variables: v }), signal: AbortSignal.timeout(60000) });
+ const j = await r.json();
+ if (j.errors) { if (JSON.stringify(j.errors).includes('THROTTLED') && a < 4) { await new Promise(z => setTimeout(z, 2000 * (a + 1))); continue; } throw new Error(JSON.stringify(j.errors).slice(0, 300)); }
+ return j.data;
+ }
+ throw new Error('shopify throttled out');
+}
+
+const b64 = b => Buffer.from(b).toString('base64').replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_');
+async function mcToken() {
+ const SA = JSON.parse(fs.readFileSync(HOME + '/Projects/secrets-manager/gmc-sa-146735262.json', 'utf8'));
+ const now = Math.floor(Date.now() / 1000);
+ const si = b64(JSON.stringify({ alg: 'RS256', typ: 'JWT' })) + '.' + b64(JSON.stringify({ iss: SA.client_email, scope: 'https://www.googleapis.com/auth/content', aud: 'https://oauth2.googleapis.com/token', iat: now, exp: now + 3600 }));
+ const crypto = await import('crypto');
+ const s = crypto.createSign('RSA-SHA256'); s.update(si); const jwt = si + '.' + b64(s.sign(SA.private_key));
+ const r = await fetch('https://oauth2.googleapis.com/token', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer', assertion: jwt }) });
+ const j = await r.json(); if (!j.access_token) throw new Error('mc token fail: ' + JSON.stringify(j)); return j.access_token;
+}
+
+async function mcGetJson(url, H) {
+ for (let a = 0; a < 6; a++) {
+ try {
+ const r = await fetch(url, { headers: H, signal: AbortSignal.timeout(30000) });
+ if (r.status === 429 || r.status >= 500) { await new Promise(res => setTimeout(res, 2000 * (a + 1))); continue; }
+ return await r.json();
+ } catch (e) { await new Promise(res => setTimeout(res, 2000 * (a + 1))); }
+ }
+ throw new Error('mc get exhausted: ' + url);
+}
+
+function idParts(id) {
+ const m = /^online:([a-z]+):([A-Z]+):(.+)$/.exec(id);
+ return m ? { lang: m[1], feedLabel: m[2], offerId: m[3] } : null;
+}
+function shopifyRefFor(offerId) {
+ let m = /^shopify_[A-Za-z]+_(\d+)_(\d+)$/.exec(offerId);
+ if (m) return { kind: 'product', productId: m[1], variantId: m[2] };
+ if (/^\d+$/.test(offerId)) return { kind: 'variant', variantId: offerId };
+ return null;
+}
+
+async function main() {
+ // 1. Load the FINAL (complete, 70-row) restore map, drop the 3 reverted grasscloth pairs.
+ const rows = fs.readFileSync(HOME + '/Projects/gmc-titlefix/data/tk11449-dedup-RESTOREMAP-2026-09-11T17-33-01-021Z.jsonl', 'utf8')
+ .trim().split('\n').map(l => JSON.parse(l));
+ const revertedCleans = new Set(['venezia-grasscloth-wallcovering-fentucci', 'vercelli-grasscloth-wallcovering-fentucci', 'viterbo-grasscloth-wallcovering-fentucci']);
+ const applied = rows.filter(r => !revertedCleans.has(r.clean));
+ if (applied.length !== 67) throw new Error(`expected 67 applied pairs, got ${applied.length}`);
+
+ // 2. Read back current Shopify state for each orig (legacy/archived) product + its variants.
+ // Batch via GraphQL nodes().
+ const origIds = applied.map(r => r.orig_id);
+ const Q1 = `query($ids:[ID!]!){ nodes(ids:$ids){ __typename ... on Product { id handle status
+ variants(first:100){ edges{ node{ id } } } } } }`;
+ const shopData = await shopGql(Q1, { ids: origIds });
+ const origByGid = new Map();
+ (shopData.nodes || []).forEach((n, i) => {
+ if (!n) { origByGid.set(applied[i].orig_id, null); return; }
+ origByGid.set(applied[i].orig_id, n);
+ });
+
+ // 3. Full enumeration of merchant offers (fresh, not from yesterday's cache).
+ const token = await mcToken();
+ const H = { Authorization: `Bearer ${token}` };
+ let pageToken = null, allOffers = [];
+ do {
+ const url = `https://merchantapi.googleapis.com/products/v1/accounts/${MERCHANT}/products?pageSize=1000` + (pageToken ? `&pageToken=${pageToken}` : '');
+ const j = await mcGetJson(url, H);
+ for (const p of (j.products || [])) allOffers.push(p);
+ pageToken = j.nextPageToken || null;
+ } while (pageToken);
+
+ // 4. Build lookup sets: archived product's variant IDs (numeric) and product IDs (numeric).
+ const variantIdToOrig = new Map(); // numeric variantId -> applied row
+ const productIdToOrig = new Map(); // numeric productId -> applied row
+ applied.forEach((r, i) => {
+ const node = origByGid.get(r.orig_id);
+ const pidNum = r.orig_id.split('/').pop();
+ productIdToOrig.set(pidNum, r);
+ if (node && node.variants) {
+ for (const e of node.variants.edges) {
+ const vidNum = e.node.id.split('/').pop();
+ variantIdToOrig.set(vidNum, r);
+ }
+ }
+ });
+
+ // 5. Match every MC offer to an orig (archived) product via its offerId's Shopify ref.
+ // Schema per products.list v1 (confirmed against gmc-orphan-reconcile.mjs): offerId,
+ // contentLanguage, feedLabel, productAttributes.{title,price.amountMicros,link}.
+ const matches = [];
+ for (const p of allOffers) {
+ const offerId = p.offerId;
+ if (!offerId) continue;
+ const lang = p.contentLanguage || 'en', feedLabel = p.feedLabel || 'US';
+ const ref = shopifyRefFor(offerId);
+ if (!ref) continue;
+ let orig = null;
+ if (ref.kind === 'product' && productIdToOrig.has(ref.productId)) orig = productIdToOrig.get(ref.productId);
+ else if (ref.kind === 'variant' && variantIdToOrig.has(ref.variantId)) orig = variantIdToOrig.get(ref.variantId);
+ if (!orig) continue;
+ const attrs = p.productAttributes || {};
+ matches.push({
+ mc_id: `online:${lang}:${feedLabel}:${offerId}`,
+ offerId,
+ orig_clean: orig.clean,
+ orig_legacy_handle: orig.legacy,
+ orig_product_gid: orig.orig_id,
+ title: attrs.title || null,
+ price: attrs.price ? `${(parseInt(attrs.price.amountMicros, 10) / 1e6).toFixed(2)} ${attrs.price.currencyCode}` : null,
+ link: attrs.link || null,
+ dataSource: p.dataSource || null,
+ });
+ }
+
+ const carveout = matches.filter(m => m.orig_clean === CARVEOUT_HANDLE);
+ const toDelete = matches.filter(m => m.orig_clean !== CARVEOUT_HANDLE);
+
+ const out = {
+ generated_at: new Date().toISOString(),
+ ticket: 'TK-11449',
+ total_orphans_matched: matches.length,
+ carveout_handle: CARVEOUT_HANDLE,
+ carveout_offers: carveout,
+ to_delete_count: toDelete.length,
+ to_delete: toDelete,
+ };
+ fs.mkdirSync(HOME + '/Projects/gmc-titlefix/data', { recursive: true });
+ fs.writeFileSync(HOME + '/Projects/gmc-titlefix/data/tk11449-orphan-select.json', JSON.stringify(out, null, 1));
+ fs.writeFileSync(Q + '/tk11449-orphan-ids-full.txt', toDelete.map(m => m.mc_id).join('\n') + '\n');
+ if (toDelete.length) fs.writeFileSync(Q + '/tk11449-orphan-ids-canary1.txt', toDelete[0].mc_id + '\n');
+ if (toDelete.length > 1) fs.writeFileSync(Q + '/tk11449-orphan-ids-remainder.txt', toDelete.slice(1).map(m => m.mc_id).join('\n') + '\n');
+
+ console.log(`matched ${matches.length} orphan offers total (expected ~60). carveout(${CARVEOUT_HANDLE}): ${carveout.length}. to_delete: ${toDelete.length}`);
+ if (toDelete.length) console.log('canary offer:', toDelete[0].mc_id, toDelete[0].orig_clean, toDelete[0].price);
+}
+main().catch(e => { console.error('FATAL', e); process.exit(1); });
diff --git a/tk11449-price-apply.mjs b/tk11449-price-apply.mjs
new file mode 100644
index 0000000..f848318
--- /dev/null
+++ b/tk11449-price-apply.mjs
@@ -0,0 +1,34 @@
+#!/usr/bin/env node
+// TK-11449 — GATED price override apply for the 3 clear disapproved offers via 10693978453.
+// Usage: node tk11449-price-apply.mjs --file=<path.json with {overrides:[{offerId,contentLanguage,feedLabel,realPrice}]}> --apply --yes-i-am-steve
+// Default (no --apply): DRY RUN, zero writes.
+import fs from 'fs';
+import { createRequire } from 'module';
+const require = createRequire(import.meta.url);
+const { token, MERCHANT } = require('./_auth.js');
+const FEED_CURRENCY = { US: 'USD', CA: 'CAD', GB: 'GBP' };
+function currencyForFeed(feedLabel) {
+ const c = FEED_CURRENCY[String(feedLabel || '').toUpperCase()];
+ if (!c) throw new Error(`no currency mapping for feedLabel "${feedLabel}"`);
+ return c;
+}
+const args = process.argv.slice(2);
+const APPLY = args.includes('--apply');
+const CONFIRMED = args.includes('--yes-i-am-steve');
+const fileArg = (args.find(a => a.startsWith('--file=')) || '').split('=')[1];
+if (!fileArg) { console.error('need --file='); process.exit(2); }
+const DS = `accounts/${MERCHANT}/dataSources/10693978453`;
+const list = JSON.parse(fs.readFileSync(fileArg, 'utf8')).overrides;
+console.log(`${APPLY ? 'APPLY' : 'DRY-RUN'}: ${list.length} price override(s) -> ${DS}`);
+if (APPLY && !CONFIRMED) { console.error('refusing --apply without --yes-i-am-steve'); process.exit(2); }
+let tok = APPLY ? await token() : null;
+let ok = 0, fail = 0;
+for (const row of list) {
+ const body = { offerId: row.offerId, contentLanguage: row.contentLanguage, feedLabel: row.feedLabel, productAttributes: { price: { amountMicros: String(Math.round(row.realPrice * 1e6)), currencyCode: currencyForFeed(row.feedLabel) } } };
+ if (!APPLY) { console.log(' [would set]', row.name || row.offerId, row.currentFeedPrice, '->', row.realPrice); continue; }
+ const url = `https://merchantapi.googleapis.com/products/v1/accounts/${MERCHANT}/productInputs:insert?dataSource=${encodeURIComponent(DS)}`;
+ const r = await fetch(url, { method: 'POST', headers: { Authorization: 'Bearer ' + tok, 'Content-Type': 'application/json' }, body: JSON.stringify(body) });
+ if (r.ok) { ok++; console.log(' OK', row.name || row.offerId, '->', row.realPrice); }
+ else { fail++; const t = await r.text(); console.error(' FAIL', row.name || row.offerId, r.status, t.slice(0, 200)); }
+}
+if (APPLY) console.log(`\nDONE: ok ${ok} / fail ${fail} of ${list.length}`);
diff --git a/tk11449-price-readback.mjs b/tk11449-price-readback.mjs
new file mode 100644
index 0000000..57f8faf
--- /dev/null
+++ b/tk11449-price-readback.mjs
@@ -0,0 +1,11 @@
+import { createRequire } from 'module';
+const require = createRequire(import.meta.url);
+const { token, MERCHANT } = require('./_auth.js');
+const ids = process.argv.slice(2);
+const tok = await token();
+for (const id of ids) {
+ const r = await fetch(`https://merchantapi.googleapis.com/products/v1/accounts/${MERCHANT}/products/en~US~${encodeURIComponent(id)}`, { headers: { Authorization: 'Bearer ' + tok } });
+ const j = await r.json();
+ const price = j.productAttributes?.price ? (parseInt(j.productAttributes.price.amountMicros,10)/1e6).toFixed(2) : null;
+ console.log(id, 'price=', price, 'dataSource=', j.dataSource, 'issues=', (j.productStatus?.itemLevelIssues||[]).map(i=>i.code));
+}
diff --git a/tk11449-price-select.mjs b/tk11449-price-select.mjs
new file mode 100644
index 0000000..345a264
--- /dev/null
+++ b/tk11449-price-select.mjs
@@ -0,0 +1,27 @@
+#!/usr/bin/env node
+// TK-11449 — READ-ONLY: fetch current MC record for the 3 clear under-advertised offers
+// (Mayenne/Maizan/Sufera) and build the exact override payload for 10693978453.
+import fs from 'fs';
+import { createRequire } from 'module';
+const require = createRequire(import.meta.url);
+const { token, MERCHANT } = require('./_auth.js');
+const targets = [
+ { offerId: '42630990135347', realPrice: 1335.60, name: 'Mayenne' },
+ { offerId: '42630996623411', realPrice: 861.53, name: 'Maizan' },
+ { offerId: '42630982795315', realPrice: 826.88, name: 'Sufera' },
+];
+const tok = await token();
+const H = { Authorization: 'Bearer ' + tok };
+const out = [];
+for (const t of targets) {
+ // offerId is a bare variant id -> try en/US first (per memo: all US primary, no CA/LA-per-yard)
+ const url = `https://merchantapi.googleapis.com/products/v1/accounts/${MERCHANT}/products/en~US~${encodeURIComponent(t.offerId)}`;
+ const r = await fetch(url, { headers: H });
+ const j = await r.json();
+ if (!j.offerId) { console.error('NOT FOUND', t.name, t.offerId, JSON.stringify(j).slice(0,150)); continue; }
+ const feedPrice = j.productAttributes?.price ? (parseInt(j.productAttributes.price.amountMicros,10)/1e6).toFixed(2) : null;
+ out.push({ offerId: t.offerId, contentLanguage: j.contentLanguage, feedLabel: j.feedLabel, realPrice: t.realPrice, currentFeedPrice: feedPrice, dataSource: j.dataSource, name: t.name });
+ console.log(t.name, t.offerId, 'lang='+j.contentLanguage, 'feed='+j.feedLabel, 'currentPrice='+feedPrice, 'target='+t.realPrice, 'dataSource='+j.dataSource);
+}
+fs.writeFileSync(process.env.HOME + '/.claude/yolo-queue/tk11449-price-fix-3clear.json', JSON.stringify({ overrides: out }, null, 1));
+console.log('wrote', out.length, 'rows');
← b831bb3 auto-data-snapshot: 2026-09-12T07:18:58 (2 data files) — dat
·
back to Gmc Titlefix
·
TK-11493: sub-100px featured-image remediation plan + dry-ru 9ff1688 →