From 497aeee75f04774c30684495690b3d90ef460fd7 Mon Sep 17 00:00:00 2001 From: thug0bin Date: Sat, 7 Mar 2026 21:42:15 +0900 Subject: [PATCH] =?UTF-8?q?feat(baekje):=20order=5Fapi=EC=97=90=EC=84=9C?= =?UTF-8?q?=20=EC=84=A0=EB=B3=84=20=EC=A3=BC=EB=AC=B8=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - submit_order_selective로 기존 장바구니 보존 - 지오영/수인과 동일한 방식 적용 --- backend/order_api.py | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/backend/order_api.py b/backend/order_api.py index 6336305..7bbbc61 100644 --- a/backend/order_api.py +++ b/backend/order_api.py @@ -982,21 +982,34 @@ def submit_baekje_order(order: dict, dry_run: bool, cart_only: bool = True) -> d 'internal_code': internal_code }) - # cart_only=False면 주문 확정까지 진행 + # cart_only=False면 주문 확정까지 진행 (선별 주문!) if not cart_only and success_count > 0: try: - confirm_result = baekje_session.submit_order() - if confirm_result.get('success'): - update_order_status(order_id, 'submitted', - f'백제 주문 확정 완료: {success_count}개') - # 결과 메시지 업데이트 - for r in results: - if r['status'] == 'success': - r['result_code'] = 'OK' - r['result_message'] = '주문 확정 완료' + # 이번에 담은 품목의 internal_code만 수집 + ordered_codes = [r['internal_code'] for r in results + if r['status'] == 'success' and r.get('internal_code')] + + logger.info(f"[BAEKJE DEBUG] 선별 주문 시작, ordered_codes: {ordered_codes}") + + if ordered_codes: + # 선별 주문: 기존 품목은 건드리지 않고, 이번에 담은 것만 주문 + confirm_result = baekje_session.submit_order_selective(ordered_codes) + + if confirm_result.get('success'): + restored_info = f", 기존 {confirm_result.get('restored_count', 0)}개 복원" if confirm_result.get('restored_count', 0) > 0 else "" + update_order_status(order_id, 'submitted', + f'백제 주문 확정 완료: {success_count}개{restored_info}') + # 결과 메시지 업데이트 + for r in results: + if r['status'] == 'success': + r['result_code'] = 'OK' + r['result_message'] = '주문 확정 완료' + else: + update_order_status(order_id, 'partial', + f'백제 장바구니 담김, 확정 실패: {confirm_result.get("error", "알 수 없는 오류")}') else: update_order_status(order_id, 'partial', - f'백제 장바구니 담김, 확정 실패: {confirm_result.get("error", "알 수 없는 오류")}') + f'백제 장바구니 담김, internal_code 없음') except Exception as e: logger.error(f"백제 주문 확정 오류: {e}") update_order_status(order_id, 'partial',