[object Object]

← back to Hollywood Wallcoverings

CustomCreator configurator: graceful gallery fallback for unknown/retired design ids

8f6f5b97baf1c8bd899ece6c8cdfb43b7cc8d7e1 · 2026-06-21 16:43:06 -0700 · Steve

On /api/product not-found, redirect to /CustomCreator (gallery) instead of a dead 'Could not
load product'. Enables a single-rule SEO deep-redirect for the wallco.ai retirement (every
/design/<id> -> configurator?handle=wallco-<id>; non-cataloged ids land cleanly on the gallery).

Files touched

Diff

commit 8f6f5b97baf1c8bd899ece6c8cdfb43b7cc8d7e1
Author: Steve <steve@designerwallcoverings.com>
Date:   Sun Jun 21 16:43:06 2026 -0700

    CustomCreator configurator: graceful gallery fallback for unknown/retired design ids
    
    On /api/product not-found, redirect to /CustomCreator (gallery) instead of a dead 'Could not
    load product'. Enables a single-rule SEO deep-redirect for the wallco.ai retirement (every
    /design/<id> -> configurator?handle=wallco-<id>; non-cataloged ids land cleanly on the gallery).
---
 customcreator/configure.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/customcreator/configure.html b/customcreator/configure.html
index 813549f..33cbcf9 100644
--- a/customcreator/configure.html
+++ b/customcreator/configure.html
@@ -403,7 +403,7 @@ async function load(handle){
     const p=await r.json(); if(p.error)throw new Error(p.error);
     render(p);
     history.replaceState(null,'',location.pathname+'?handle='+p.sku.toLowerCase());
-  }catch(e){ $('title').textContent='Could not load product'; console.error(e); }
+  }catch(e){ console.error(e); location.replace('/CustomCreator'); return; }  // unknown/retired design → land on the gallery, never a dead end
   $('pdp').classList.remove('loading');
 }
 async function postCart(mode){

← fae2b73 Custom Creator: self-host design images via id-keyed write-t  ·  back to Hollywood Wallcoverings  ·  customcreator: reject blank/zero/NaN mural dimensions before 8226967 →