diff --git a/src/asquare.py b/src/asquare.py index c5bdcf0..c09fdda 100644 --- a/src/asquare.py +++ b/src/asquare.py @@ -289,19 +289,22 @@ async def update_itm(item_id: str, lego_set: dict, item_data: dict = None): print(f"[@DEBUG] Upserting item {item_id} with name: {pw_name}") - # Perform upsert - result = await client.catalog.upsert_catalog_object(body=upsert_body) + # Perform upsert using batch_upsert_catalog_objects (async version) + result = await client.catalog.batch_upsert_catalog_objects( + body={ + "idempotency_key": upsert_body["idempotency_key"], + "batches": [{"objects": [upsert_body["object"]]}], + } + ) result_json = json.loads(result.model_dump_json()) - if result_json.get("catalog_object"): + if result_json.get("objects"): print(f"[@DEBUG] ✓ Successfully updated item {item_id}") # TODO: Handle image upload separately (Square Images API) # This requires multipart/form-data upload return True else: - print( - f"[@ERROR] Failed to update item {item_id}: No catalog_object in response" - ) + print(f"[@ERROR] Failed to update item {item_id}: No objects in response") return False except Exception as e: