MAKITTHandoff
Handoff Boards
finishedfulfillment-dispatch

Fulfillment Dispatch — E2E Handoff 보드

Fulfillment Dispatch — E2E Handoff 보드

henriette 세피라샷 단품 (오늘출발) 결제 → ArgoOMS 주문 생성 → distribution → wms-outbound INIT → Argo seller dashboard 표시 까지 풀루프 통과.

검증 결과 (체인 전체)

단계결과
POST /api/v1/shops/{henriette}/orders/manual-payment/checkout_a656e072c60d200 (단 후속 checkoutService.complete(DRAFT) 가 500 — dispatch path 와 무관, 별도 이슈)
MAKITT Order order_14853a20cf59 PAID✅
Outbox PUBLISHED (eventId=3b4adafe-…)✅
OrderPaidFulfillmentDispatcher 수신✅
DefaultFulfillmentResolver: optionId=opt-605fd060-… (오늘출발) → planId=ARGO-376-SHIPPING_SAMEDAY partnerId=ARGO✅
FulfillmentOrder INSERT (fo_ac9b9889abac, partnerId=ARGO, status=PENDING)✅
ArgoFulfillmentDispatchStrategy → argoStringKafkaTemplate.send(makitt-order-event) (broker 분리 fix 적용)✅
Argo broker (tctkdevmskcluster) makitt-order-event produce✅
dev argo-oms MakittOrderEventConsumerContainer → POST /internal/api/makitt/orders✅
oms.orders CO0000000365475 INSERT (sales_channel_order_id = fo_ac9b9889abac, registration_channel=API)✅
distribution.outbound_order_instruction (workplace=376, route=SHIPPING_SAMEDAY)✅
wms.outbound.outbound_order SH0000000172768 INIT✅
Argo seller dashboard 주문 표시✅ (commerce_platforms 10093 INSERT 후)

상세 + 교훈: lessons-learned.md

#이슈임시 조치 / 후속
1ArgoOrderRouter 가 partner-bound 한 점일반화된 dispatcher 로 대체 (이번 사이클)
2KafkaTemplate 이 makitt broker 만 가리켜 makitt-order-event produce 실패argoStringKafkaTemplate 신규 + @Qualifier 분기 (이번 사이클)
3commerce_platforms 에 MAKITT(10093) 미동기화 → seller dashboard JOIN 실패로 row 안 보임직접 INSERT (임시), 정식 sync path 보강 필요
4sales_channel.mall_id 가 link 시 빈 값 (Argo LinkedSalesChannelInfo 에 mallId 없음)직접 update (임시), Argo 측 mallId 추가 필요
5PartnerConnection.shop_sales_channel_mapping 빈 맵 (link path)직접 update (임시), 4 와 같이 해결
6checkoutService.complete(DRAFT) 가 500 (manual-payment flow 의 state advance 빠짐)임시 무시 (dispatch 와 무관). 정식 fix: PROCESSING 으로 advance 후 complete
7모든 OMS 주문 except_external_api=true (registration_channel=API 라)seller dashboard 가 그 필드 안 보고 있음 — 영향 없음 (확인됨)
8FulfillmentOrder.status=PENDING 유지 (dispatch 후 PROCESSING 전이 미구현, callback 미구현)다음 사이클 (Shipment callback + status propagate)

상세: README.md 향후 확장 섹션

  1. Argo → MAKITT 상태 콜백 — argo-outbound-complete consumer + Shipment INSERT + FulfillmentOrder.status 전이 (PENDING → PROCESSING → SHIPPED → COMPLETED)
  2. commercePlatformCode propagation — OMS RegisterCustomerOrderVoGenerator 가 cms.sales_channel 의 store_platform_code 까지 끌어와 distribution → wms-outbound 메시지에 채움 (현 임시 NPE 방어 제거)
  3. commerce_platforms 자동 sync — cms.store_platform → oms.commerce_platforms 동기화 path. MAKITT-TECHTAKA / 추후 추가될 platform 자동 등록
  4. Argo LinkedSalesChannelInfo.mallId 추가 — link 시 PartnerConnection.shop_sales_channel_mapping 자동 채움 (Phase 1 README 항목)
  5. checkoutService.complete flow 보강 — DRAFT → PROCESSING advance 후 complete 가능하게
  6. 셀러 priority list — Resolver candidate 우선순위 (현재 첫 후보)
  7. Self fulfillment 어드민 UI — PENDING FO 들 보고 송장 입력 → Shipment INSERT
  8. ShopShippingOption multi-partner 차단 — 한 옵션의 planLinks 가 같은 partner 만 갖도록 어드민 검증
  9. Resolver 실패 알림 — Order 상태 표시 + 셀러 알림 (notification rule 통합)
  10. 취소/환불 — OrderCancelled / OrderRefunded eventType + DispatchStrategy 별 cancel 액션
  • makitt-server git commit + push — 이번 사이클 변경 (6 신규 + 2 수정 + 1 삭제 + KafkaConfig 의 argoStringKafkaTemplate 추가). dev 배포 path 가 master 인지 별도 브랜치인지 결정 필요
  • 향후 과업 1~10 중 다음 사이클 우선순위 결정 (제안: 1번 callback → 2번 platformCode propagation → 5번 checkout flow → 4번 mallId)
  • argo-order-sync spec 폴더는 1차 검증 자료로 보존, 신규 작업은 fulfillment-dispatch 폴더로

비어 있음

당신이 처리할 항목

docs / spec / finished / fulfillment-dispatch / e2e.md