[object Object]

← back to All Designerwallcoverings

Koroseal live-proven: reject synthesized catalog URLs (false-discontinued fix) + record verification

27f01e1fb3ec99e0f0f5b0ca9698d2ce8ff38f0c · 2026-07-07 16:53:09 -0700 · Steve

- koroseal.js: accept only a REAL catalog product_url, never resolve.js's shape-general synthesized template guess (which substituted a spec mfr code into a digital-lab pattern-slug URL -> bogus 404 -> false discontinued). Prefer koroseal.js's own mfr-code reconstruction.
- Proven live: DWK-29052 Available (live 200 PDP) / DWK-32619 Discontinued (302->/NotFound), price:null, $0.03 each
- build-coverage VERIFIED note for Koroseal

Files touched

Diff

commit 27f01e1fb3ec99e0f0f5b0ca9698d2ce8ff38f0c
Author: Steve <steve@designerwallcoverings.com>
Date:   Tue Jul 7 16:53:09 2026 -0700

    Koroseal live-proven: reject synthesized catalog URLs (false-discontinued fix) + record verification
    
    - koroseal.js: accept only a REAL catalog product_url, never resolve.js's shape-general synthesized template guess (which substituted a spec mfr code into a digital-lab pattern-slug URL -> bogus 404 -> false discontinued). Prefer koroseal.js's own mfr-code reconstruction.
    - Proven live: DWK-29052 Available (live 200 PDP) / DWK-32619 Discontinued (302->/NotFound), price:null, $0.03 each
    - build-coverage VERIFIED note for Koroseal
---
 data/live-stock-coverage.json | 4 ++--
 scripts/adapters/koroseal.js  | 6 +++++-
 scripts/build-coverage.js     | 1 +
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/data/live-stock-coverage.json b/data/live-stock-coverage.json
index e8b57f3..0dfe660 100644
--- a/data/live-stock-coverage.json
+++ b/data/live-stock-coverage.json
@@ -1,5 +1,5 @@
 {
-  "generated_at": "2026-07-07T23:43:44.314Z",
+  "generated_at": "2026-07-07T23:53:09.694Z",
   "generator": "scripts/build-coverage.js",
   "total_display_vendors": 254,
   "counts": {
@@ -1394,7 +1394,7 @@
       "active": 2351,
       "resolvable_active": 2351,
       "resolvable_pct": 100,
-      "verified": "wired — not yet live-verified"
+      "verified": "live-verified 2026-07-07 (koroseal liveness — DWK-29052 Available via live 200 PDP / DWK-32619 Discontinued via 302→/NotFound; mfr-code URL reconstruction; price:null; $0.03 each)"
     },
     "Kravet": {
       "tier": "PORTAL_NO_CREDS",
diff --git a/scripts/adapters/koroseal.js b/scripts/adapters/koroseal.js
index bf85af2..7e18a74 100644
--- a/scripts/adapters/koroseal.js
+++ b/scripts/adapters/koroseal.js
@@ -125,7 +125,11 @@ async function recoverMfrSku(pool, sku) {
 // recovered MFR code (not the DWK dw_sku the server passes).
 async function resolveKorosealUrl(page, pool, catalogTable, sku) {
   const r = await resolveCatalogUrl(pool, catalogTable || 'koroseal_catalog', sku).catch(() => ({ error: 'resolve failed' }));
-  if (r && r.product_url) return { url: r.product_url, via: 'catalog' };
+  // Accept ONLY a REAL catalog product_url — never resolve.js's shape-general SYNTHESIZED template
+  // guess. koroseal_catalog's populated URLs are pattern-slug digital-lab paths, so substituting a
+  // spec/wallcovering mfr code into that template yields a bogus URL that 404s (reads as a false
+  // "discontinued"). Koroseal has its own correct mfr-code reconstruction below, so prefer that.
+  if (r && r.product_url && !r.synthesized) return { url: r.product_url, via: 'catalog' };
 
   // The reconstruction key is the mfr code — recover it from shopify_products, else use the raw sku.
   const mfr = (await recoverMfrSku(pool, sku)) || sku;
diff --git a/scripts/build-coverage.js b/scripts/build-coverage.js
index 1281a7b..2dc2a41 100644
--- a/scripts/build-coverage.js
+++ b/scripts/build-coverage.js
@@ -64,6 +64,7 @@ const VERIFIED = {
   'Designers Guild': 'live-verified 2026-07-07 (schema-public → in_stock:true via structured availability vote, $0.03)',
   'Marburg': 'live-verified 2026-07-07 (schema-public → in_stock:true via WooCommerce stock class, $0.03)',
   'Osborne & Little': 'live-verified 2026-07-07 (schema-public → in_stock:true via enabled add-to-cart; SKU remap by leading mfr code, $0.03)',
+  'Koroseal': 'live-verified 2026-07-07 (koroseal liveness — DWK-29052 Available via live 200 PDP / DWK-32619 Discontinued via 302→/NotFound; mfr-code URL reconstruction; price:null; $0.03 each)',
 };
 
 // PUBLIC-SCHEMA vendors — to-the-trade / Magento / custom storefronts whose ANONYMOUS product

← 1aabc95 Integrate 5 vendor live-stock adapters: enable Koroseal (liv  ·  back to All Designerwallcoverings  ·  auto-save: 2026-07-07T20:32:33 (2 files) — config/known-subd 59f752c →