diff --git a/src/asquare.py b/src/asquare.py index fb0bb5e..0e59e38 100644 --- a/src/asquare.py +++ b/src/asquare.py @@ -266,6 +266,25 @@ async def update_itm(item_id: str, lego_set: dict, item_data: dict = None): print(f"[@DEBUG] Fresh variation version: {variation_version}") # Build upsert body + variation_obj = { + "type": "ITEM_VARIATION", + "id": variation_id if variation_id else "#TEMP_VARIATION_ID", + "item_variation_data": { + "item_id": item_id, + "name": "Regular", + "pricing_type": "FIXED_PRICING", + "price_money": { + "amount": price_in_cents, + "currency": "USD", + }, + "sku": set_upc if set_upc else None, + }, + } + + # Include variation version if it exists (required for updates) + if variation_version is not None: + variation_obj["version"] = variation_version + upsert_body = { "idempotency_key": str(uuid.uuid4()), "object": { @@ -275,35 +294,14 @@ async def update_itm(item_id: str, lego_set: dict, item_data: dict = None): "item_data": { "name": pw_name, "description": f"{set_name} - {set_theme}", - "variations": [ - { - "type": "ITEM_VARIATION", - "id": ( - variation_id - if variation_id - else "#TEMP_VARIATION_ID" - ), - "item_variation_data": { - "item_id": item_id, - "name": "Regular", - "pricing_type": "FIXED_PRICING", - "price_money": { - "amount": price_in_cents, - "currency": "USD", - }, - "sku": set_upc if set_upc else None, - }, - } - ], + "variations": [variation_obj], }, }, } # Remove None values if not set_upc: - del upsert_body["object"]["item_data"]["variations"][0][ - "item_variation_data" - ]["sku"] + del variation_obj["item_variation_data"]["sku"] print(f"[@DEBUG] Upserting item {item_id} with name: {pw_name}")