From f53d2841e97040131d76928511443969e1a1a40e Mon Sep 17 00:00:00 2001 From: giles Date: Tue, 24 Feb 2026 09:57:42 +0000 Subject: [PATCH] Fix product slug resolution: fall back to g.post_slug App-level url_value_preprocessor pops slug into g.post_slug before the blueprint preprocessor runs, leaving values empty. Fall back to g.post_slug so resolve_product and cart route get the slug. Co-Authored-By: Claude Opus 4.6 --- bp/product/routes.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bp/product/routes.py b/bp/product/routes.py index 7eae4c6..dc05d74 100644 --- a/bp/product/routes.py +++ b/bp/product/routes.py @@ -25,7 +25,9 @@ def register(): bp = Blueprint("product", __name__, url_prefix="/product/") @bp.url_value_preprocessor def pull_blog(endpoint, values): - g.product_slug = values.get("slug") + # App-level preprocessor pops "slug" into g.post_slug before this runs, + # so values.get("slug") is None. Fall back to g.post_slug. + g.product_slug = values.get("slug") or getattr(g, "post_slug", None) # ───────────────────────────────────────────────────────────── # BEFORE REQUEST: Slug or numeric ID resolver