[object Object]

← back to Designerwallcoverings

TK-11046 WS-C: GMC price resolver must not read a tombstone row

a4b3584bbe979678780a74fe2a1048de86175f20 · 2026-09-03 12:40:30 -0700 · Steve

The mirror-fallback price lookup now excludes DELETED_FROM_SHOPIFY so a GMC price
is never resolved off a deleted product.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BbqKZLbd8emwVkNrxwtG2X

Files touched

Diff

commit a4b3584bbe979678780a74fe2a1048de86175f20
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Sep 3 12:40:30 2026 -0700

    TK-11046 WS-C: GMC price resolver must not read a tombstone row
    
    The mirror-fallback price lookup now excludes DELETED_FROM_SHOPIFY so a GMC price
    is never resolved off a deleted product.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01BbqKZLbd8emwVkNrxwtG2X
---
 shopify/scripts/gmc-fixA-reprice-scan.mjs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/shopify/scripts/gmc-fixA-reprice-scan.mjs b/shopify/scripts/gmc-fixA-reprice-scan.mjs
index 88a1fc7..ae5fdaa 100644
--- a/shopify/scripts/gmc-fixA-reprice-scan.mjs
+++ b/shopify/scripts/gmc-fixA-reprice-scan.mjs
@@ -101,7 +101,8 @@ function resolvePrice(vendor, sku, dwSku, mfrSku) {
   }
   // shopify_products mirror fallback
   for (const s of skus) {
-    const v = parseFloat(q1(`select coalesce(retail_price,price) from shopify_products where (variant_sku='${esc(s)}' or sku='${esc(s)}' or dw_sku='${esc(s)}' or mfr_sku='${esc(s)}') and coalesce(retail_price,price) > 4.25 order by coalesce(retail_price,price) desc limit 1`));
+    // TK-11046: never resolve a GMC price off a DELETED_FROM_SHOPIFY tombstone row.
+    const v = parseFloat(q1(`select coalesce(retail_price,price) from shopify_products where (variant_sku='${esc(s)}' or sku='${esc(s)}' or dw_sku='${esc(s)}' or mfr_sku='${esc(s)}') and status is distinct from 'DELETED_FROM_SHOPIFY' and coalesce(retail_price,price) > 4.25 order by coalesce(retail_price,price) desc limit 1`));
     if (isFinite(v) && v > 4.25) return { price: +v.toFixed(2), source: 'mirror.retail_price' };
   }
   return { price: null, reason: 'no confident price_retail > 4.25 found in catalog/mirror' };

← f84dd8b auto-data-snapshot: 2026-09-03T12:32:21 (10 data files) — sc  ·  back to Designerwallcoverings  ·  google-feed A2: showroom-scoped unpublish generator + hard - 4b3a65e →