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_a656e072c60d | 200 (단 후속 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
| # | 이슈 | 임시 조치 / 후속 |
|---|---|---|
| 1 | ArgoOrderRouter 가 partner-bound 한 점 | 일반화된 dispatcher 로 대체 (이번 사이클) |
| 2 | KafkaTemplate 이 makitt broker 만 가리켜 makitt-order-event produce 실패 | argoStringKafkaTemplate 신규 + @Qualifier 분기 (이번 사이클) |
| 3 | commerce_platforms 에 MAKITT(10093) 미동기화 → seller dashboard JOIN 실패로 row 안 보임 | 직접 INSERT (임시), 정식 sync path 보강 필요 |
| 4 | sales_channel.mall_id 가 link 시 빈 값 (Argo LinkedSalesChannelInfo 에 mallId 없음) | 직접 update (임시), Argo 측 mallId 추가 필요 |
| 5 | PartnerConnection.shop_sales_channel_mapping 빈 맵 (link path) | 직접 update (임시), 4 와 같이 해결 |
| 6 | checkoutService.complete(DRAFT) 가 500 (manual-payment flow 의 state advance 빠짐) | 임시 무시 (dispatch 와 무관). 정식 fix: PROCESSING 으로 advance 후 complete |
| 7 | 모든 OMS 주문 except_external_api=true (registration_channel=API 라) | seller dashboard 가 그 필드 안 보고 있음 — 영향 없음 (확인됨) |
| 8 | FulfillmentOrder.status=PENDING 유지 (dispatch 후 PROCESSING 전이 미구현, callback 미구현) | 다음 사이클 (Shipment callback + status propagate) |
- Argo → MAKITT 상태 콜백 —
argo-outbound-completeconsumer + Shipment INSERT + FulfillmentOrder.status 전이 (PENDING → PROCESSING → SHIPPED → COMPLETED) commercePlatformCodepropagation — OMS RegisterCustomerOrderVoGenerator 가 cms.sales_channel 의 store_platform_code 까지 끌어와 distribution → wms-outbound 메시지에 채움 (현 임시 NPE 방어 제거)commerce_platforms자동 sync — cms.store_platform → oms.commerce_platforms 동기화 path. MAKITT-TECHTAKA / 추후 추가될 platform 자동 등록- Argo
LinkedSalesChannelInfo.mallId추가 — link 시 PartnerConnection.shop_sales_channel_mapping 자동 채움 (Phase 1 README 항목) checkoutService.completeflow 보강 — DRAFT → PROCESSING advance 후 complete 가능하게- 셀러 priority list — Resolver candidate 우선순위 (현재 첫 후보)
- Self fulfillment 어드민 UI — PENDING FO 들 보고 송장 입력 → Shipment INSERT
- ShopShippingOption multi-partner 차단 — 한 옵션의 planLinks 가 같은 partner 만 갖도록 어드민 검증
- Resolver 실패 알림 — Order 상태 표시 + 셀러 알림 (notification rule 통합)
- 취소/환불 — OrderCancelled / OrderRefunded eventType + DispatchStrategy 별 cancel 액션
-
makitt-servergit commit + push — 이번 사이클 변경 (6 신규 + 2 수정 + 1 삭제 + KafkaConfig 의 argoStringKafkaTemplate 추가). dev 배포 path 가 master 인지 별도 브랜치인지 결정 필요 - 향후 과업 1~10 중 다음 사이클 우선순위 결정 (제안: 1번 callback → 2번 platformCode propagation → 5번 checkout flow → 4번 mallId)
-
argo-order-syncspec 폴더는 1차 검증 자료로 보존, 신규 작업은fulfillment-dispatch폴더로
비어 있음
당신이 처리할 항목
docs / spec / finished / fulfillment-dispatch / e2e.md