From 76a9436ea1d932bef1b591a15455552d6649b2c1 Mon Sep 17 00:00:00 2001 From: giles Date: Thu, 26 Feb 2026 22:27:52 +0000 Subject: [PATCH] Fetch product data from market service in cart's add_to_cart route The global add_to_cart route was calling find_or_create_cart_item without denormalized product data, leaving NULL columns. Now fetches product info via fetch_data("market", "products-by-ids") before creating the cart item. Co-Authored-By: Claude Opus 4.6 --- cart/bp/cart/global_routes.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cart/bp/cart/global_routes.py b/cart/bp/cart/global_routes.py index 87c2908..c1151cc 100644 --- a/cart/bp/cart/global_routes.py +++ b/cart/bp/cart/global_routes.py @@ -37,13 +37,28 @@ def register(url_prefix: str) -> Blueprint: @bp.post("/add//") async def add_to_cart(product_id: int): + from shared.infrastructure.data_client import fetch_data + ident = current_cart_identity() + # Fetch product data from market service (cart DB doesn't have products) + products_raw = await fetch_data( + "market", "products-by-ids", + params={"ids": str(product_id)}, + required=False, + ) or [] + product_data = products_raw[0] if products_raw else None + cart_item = await find_or_create_cart_item( g.s, product_id, ident["user_id"], ident["session_id"], + product_title=product_data["title"] if product_data else None, + product_slug=product_data["slug"] if product_data else None, + product_image=product_data["image"] if product_data else None, + product_regular_price=product_data["regular_price"] if product_data else None, + product_special_price=product_data["special_price"] if product_data else None, ) if not cart_item: