From f48e657e127788d32fe4a2b93abafb54dc1d0327 Mon Sep 17 00:00:00 2001 From: thug0bin Date: Fri, 6 Mar 2026 22:19:48 +0900 Subject: [PATCH] =?UTF-8?q?fix(order):=20=EC=A7=80=EC=98=A4=EC=98=81=20int?= =?UTF-8?q?ernal=5Fcode=20=EC=9E=88=EC=9C=BC=EB=A9=B4=20=EA=B2=80=EC=83=89?= =?UTF-8?q?=20=EC=8A=A4=ED=82=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 프론트에서 이미 선택한 품목의 internal_code 사용 - 검색 없이 바로 add_to_cart 호출 - 재고 불일치 문제 해결 --- backend/order_api.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/backend/order_api.py b/backend/order_api.py index 88ba9ad..ff3b505 100644 --- a/backend/order_api.py +++ b/backend/order_api.py @@ -287,23 +287,30 @@ def submit_geoyoung_order(order: dict, dry_run: bool, cart_only: bool = True) -> geo_session = get_geo_session() - # 1단계: 모든 품목을 장바구니에 담기 (full_order, auto_confirm=False) + # 1단계: 모든 품목을 장바구니에 담기 for item in items: kd_code = item.get('kd_code') or item.get('drug_code') order_qty = item['order_qty'] spec = item.get('specification', '') + item_internal_code = item.get('internal_code') # 프론트에서 이미 선택한 품목 result = {} try: - # 장바구니에만 담기 (주문 확정은 나중에 한번에) - result = geo_session.full_order( - kd_code=kd_code, - quantity=order_qty, - specification=spec if spec else None, - check_stock=True, - auto_confirm=False, # 장바구니만! - memo=f"자동주문 - {item.get('product_name', '')}" - ) + if item_internal_code: + # internal_code가 있으면 검색 없이 바로 장바구니 추가! + result = geo_session.add_to_cart(item_internal_code, order_qty) + if result.get('success'): + result['product'] = {'internal_code': item_internal_code, 'name': item.get('product_name', '')} + else: + # internal_code 없으면 검색 후 장바구니 추가 + result = geo_session.full_order( + kd_code=kd_code, + quantity=order_qty, + specification=spec if spec else None, + check_stock=True, + auto_confirm=False, + memo=f"자동주문 - {item.get('product_name', '')}" + ) if result.get('success'): status = 'success'