feat(order): 지오영/수인 선택적 주문 + 장바구니 보존 기능

- internal_code DB 저장 → 프론트에서 선택한 제품 그대로 주문
- 기존 장바구니 백업/복구로 사용자 장바구니 보존
- 수인약품 submit_order() 수정 (체크박스 제외 방식)
- 테스트 파일 정리 및 문서 추가
This commit is contained in:
thug0bin
2026-03-06 23:26:44 +09:00
parent f48e657e12
commit a672c7a2a0
79 changed files with 4851 additions and 2672 deletions

View File

@@ -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)