feat(order): 지오영/수인 선택적 주문 + 장바구니 보존 기능
- internal_code DB 저장 → 프론트에서 선택한 제품 그대로 주문 - 기존 장바구니 백업/복구로 사용자 장바구니 보존 - 수인약품 submit_order() 수정 (체크박스 제외 방식) - 테스트 파일 정리 및 문서 추가
This commit is contained in:
@@ -295,14 +295,22 @@ def submit_geoyoung_order(order: dict, dry_run: bool, cart_only: bool = True) ->
|
||||
item_internal_code = item.get('internal_code') # 프론트에서 이미 선택한 품목
|
||||
result = {}
|
||||
|
||||
# 🔍 디버그 로그
|
||||
logger.info(f"[GEO DEBUG] item keys: {list(item.keys())}")
|
||||
logger.info(f"[GEO DEBUG] kd_code={kd_code}, internal_code={item_internal_code}, qty={order_qty}, spec={spec}")
|
||||
logger.info(f"[GEO DEBUG] full item: {item}")
|
||||
|
||||
try:
|
||||
if item_internal_code:
|
||||
# internal_code가 있으면 검색 없이 바로 장바구니 추가!
|
||||
logger.info(f"[GEO DEBUG] Using internal_code directly: {item_internal_code}")
|
||||
result = geo_session.add_to_cart(item_internal_code, order_qty)
|
||||
logger.info(f"[GEO DEBUG] add_to_cart result: {result}")
|
||||
if result.get('success'):
|
||||
result['product'] = {'internal_code': item_internal_code, 'name': item.get('product_name', '')}
|
||||
else:
|
||||
# internal_code 없으면 검색 후 장바구니 추가
|
||||
logger.info(f"[GEO DEBUG] No internal_code, using full_order with kd_code={kd_code}")
|
||||
result = geo_session.full_order(
|
||||
kd_code=kd_code,
|
||||
quantity=order_qty,
|
||||
@@ -311,6 +319,7 @@ def submit_geoyoung_order(order: dict, dry_run: bool, cart_only: bool = True) ->
|
||||
auto_confirm=False,
|
||||
memo=f"자동주문 - {item.get('product_name', '')}"
|
||||
)
|
||||
logger.info(f"[GEO DEBUG] full_order result: {result}")
|
||||
|
||||
if result.get('success'):
|
||||
status = 'success'
|
||||
@@ -366,6 +375,11 @@ def submit_geoyoung_order(order: dict, dry_run: bool, cart_only: bool = True) ->
|
||||
ordered_codes = [r['internal_code'] for r in results
|
||||
if r['status'] == 'success' and r.get('internal_code')]
|
||||
|
||||
# 🔧 디버그: 선별 주문 전 상세 로그
|
||||
logger.info(f"[GEO DEBUG] 선별 주문 시작")
|
||||
logger.info(f"[GEO DEBUG] ordered_codes: {ordered_codes}")
|
||||
logger.info(f"[GEO DEBUG] results: {[(r.get('product_name', '')[:20], r.get('internal_code')) for r in results if r['status'] == 'success']}")
|
||||
|
||||
if ordered_codes:
|
||||
# 선별 주문: 기존 품목은 건드리지 않고, 이번에 담은 것만 주문
|
||||
confirm_result = geo_session.submit_order_selective(ordered_codes)
|
||||
|
||||
Reference in New Issue
Block a user