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 <noreply@anthropic.com>
This commit is contained in:
2026-02-26 22:27:52 +00:00
parent 8f8bc4fad9
commit 76a9436ea1

View File

@@ -37,13 +37,28 @@ def register(url_prefix: str) -> Blueprint:
@bp.post("/add/<int:product_id>/")
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: