Argo Order Sync — E2E Handoff 보드
Argo Order Sync — E2E Handoff 보드
⚠️ 2026-04-30 — 이 spec 은 1차 검증 자료로 보존됨. 후속 작업은
fulfillment-dispatch사이클에서 진행.
ArgoOrderRouter클래스 자체 삭제 (fulfillment-dispatch 사이클에서 일반화된 dispatcher 로 완전 대체)- Argo 측 산출물 (argo-oms
makitt-order-eventconsumer + internal endpoint, wms-outbound NPE 방어 패치) 은 그대로 유효 —makitt-order-eventtopic 이름 + 메시지 schema 동일- dev 배포 (
argo-oms@deploy-dev,wms-outbound@test) 도 그대로 유효즉 이 spec 의 Argo 측 spec + 검증 결과 는 production 자료로 살아있고, MAKITT 측 ArgoOrderRouter 는 fulfillment-dispatch 의 ArgoFulfillmentDispatchStrategy 로 흡수됨.
| 단계 | 결과 |
|---|---|
kcat -P -t makitt-order-event -k MK-E2E-KR-006 (kcat publish) | ✅ |
MakittOrderEventConsumerContainer.handle (oms-consumer) | ✅ "[MAKITT order event] received. eventType=OrderPaid orderId=MK-E2E-KR-006" |
OmsInternalMakittClient.createOrder (WebClient → localhost:10002) | ✅ |
InternalMakittOrderController + MakittOrderSyncApplication (oms-api) | ✅ argoOrderInternalId=CO0000000365464 |
| OMS → distribution → wms-outbound | ✅ SH0000000172754 INIT |
| Step 1~7 출고완료 | ✅ OUTBOUND_COMPLETED |
| OMS 피드백 | ✅ DELIVERY_START / OUTBOUND_COMPLETE |
중간 발견: OmsInternalMakittClient default base URL 이 https://oms-api.argoport.co (dev cluster) 라 로컬 검증 시 dev OMS 가 받았는데 dev OMS 엔 우리 신규 endpoint 없어서 silent null 응답 → 주문 미생성. 로컬 검증 시 --argo.oms.base-url=http://localhost:10002 명시 필요. 또한 run-argo.sh 가 ARGO_OMS_BASE_URL env var 를 EXTRA_ARGS 로 전달 안 함 → run-argo.sh 보강 또는 직접 gradle bootRun --args 사용. 운영 환경에선 default 가 정상.
| 단계 | 결과 |
|---|---|
POST /internal/api/makitt/orders (KR-004) | ✅ argoOrderInternalId=CO0000000365463 |
| OMS → distribution → wms-outbound | ✅ SH0000000172753 INIT |
| Step 1 create-by-workplace | ✅ OB0000002159328, READY_TO_PICK |
| Step 2 produce-batch (dev wms-job 자동) | ✅ batch BT0000001305840, job JB0000000063481 STANDBY |
| Step 3 worker assign | ✅ JB0000000063481 STANDBY, worker=makitt_test_worker_03 |
| Step 4a container 할당 (TT0000000015710) | ✅ |
| Step 4b v2/picking-process | ✅ READY_TO_PACK |
| Step 5 box-scan (ARG601) | ✅ PACKING |
| Step 6 sku-scan + packing-complete | ✅ PACKED |
| Step 7 outbound-complete (수동 label TEST-MAKITT-365463) | ✅ OUTBOUND_COMPLETED |
| OMS 피드백 (order_tracking) | ✅ DELIVERY_START / OUTBOUND_COMPLETE |
진행 중 발견한 핵심 이슈 (수정 필요)
-
OMS OrderValidator: deliveryServiceCode 만 있고 deliveryCompanyCode 없으면 거부 —
MakittOrderSyncApplication.toCreateOrderDto수정으로 우회 (deliveryCompanyCode null 이면 deliveryServiceType 도 안 보냄). distribution 이 알아서 routeType 결정. -
wms-outbound
OmsCustomerOrderOutboundInitializer.isUseNaaverBoxNPE —Set.of(...).contains(null)이 NPE 던짐. MAKITT-TECHTAKA channel 의commercePlatformCode=null가 그대로 wms-outbound 까지 propagate. 로컬 working tree 패치:commercePlatformCode != null && NAVER_COMMERCES.contains(commercePlatformCode). 미커밋 — wms-outboundmakitt브랜치 신규 생성 + commit 결정 사용자 대기. -
commercePlatformCode propagation 누락: OMS RegisterCustomerOrderVoGenerator 가 cms 의
getVendorSalesChannel응답에서 commercePlatformId 만 사용하고 platformCode 는 안 가져옴. distribution OrderDropDto 와 wms-outbound 메시지 모두 platformCode=null. 임시로 NPE 방어로 우회했으나 정상 path 는 platformCode 가 채워져야 함 (e.g., MAKITT, SELF_PLATFORM 식별 위해). -
dev DB 사전 세팅 필요 (MAKITT-TECHTAKA channel 신규) — Phase 0 link 시 cms.sales_channel 만 만들고 oms.sales_channel 은 cms→oms 전파에 의존. 우리 검증에선 직접 INSERT 함. spec 보강 필요.
미진행 (다음 사이클)
-
US 시나리오 — workplace 1280 stock 추가 했지만 dev 의 US route_type / delivery_company 매핑 부재 + worker setup 부재로 출고완료까지 어려움. KR 검증으로 해피 패스 1차 완료. US 는 별도 dev 인프라 검증 필요 (handoff 항목).
-
wms-outbound OrderPool 분기에서 막힘 — 우리 신규 channel 11200 (MAKITT-TECHTAKA) + vendor 900938 메시지가 wms-outbound consumer 에서 SUCCESS 로 처리되지만
outbound_orderINSERT 가 안 됨. 핵심 로그:divideRecuresive orderPoolId : OP0000000000519 isTrue key=VENDOR_ID, actual=900938, expected=[OrderPoolConditionValue(start=900671)], operation=EQUAL → false Set Order Pool [null] ERROR: Invalid delivery company code : HANJIN- 동일 vendor 900938 + channel 11070 (SELF_PLATFORM) 으로는 과거 정상 처리됨 (
SH0000000171894등). 신규 channel 11200 만 막힘. - 가능한 원인 후보: (a)
wms.outbound.order_pool*테이블에 channel 11200 또는 collect_group_code MAKITT-TECHTAKA 매핑 부재, (b)DeliveryCompanyCodeenum 에 HANJIN 없음 (DUMMY fallback) — 이게 주 원인이면 코드 수정 필요, (c) wms-metadata 의 vendor↔channel 매핑이 11200 에 대해 미세팅. - 결정 필요: 어느 경로로 풀까?
- dev
wms.outboundOrderPool 테이블에 channel 11200 매핑 INSERT — 사용자가 Argo 도메인으로 어디 INSERT 하면 되는지 알려줘야 함. - MAKITT 측이 임시로 channel 11070 (SELF_PLATFORM) 로 보내는 path — 그러나 spec 의도(MAKITT-TECHTAKA) 위배.
- wms-outbound 코드 분석으로 어떤 테이블이 OrderPool/DeliveryCompany 결정하는지 추적 (시간 소요).
- dev
- 동일 vendor 900938 + channel 11070 (SELF_PLATFORM) 으로는 과거 정상 처리됨 (
| 단계 | 결과 |
|---|---|
| dev DB 선행 세팅 (cms.sales_channel 11200, oms.sales_channel 11200, wms.inventory.sku_stock workplace 1280) | ✅ |
| oms-api 로컬 기동 | ✅ port 10002 |
| oms-consumer 로컬 기동 | ✅ port 10072 |
| wms-outbound-api 로컬 기동 | ✅ port 10080 |
| wms-outbound-consumer 로컬 기동 | ✅ |
| wms-outbound-batch-api 로컬 기동 | ✅ port 10082 |
MakittOrderSyncApplication 수정: deliveryCompanyCode 없으면 deliveryServiceType 도 안 보냄 (OrderValidator 우회) | ✅ |
POST /internal/api/makitt/orders (KR-003) | ✅ argoOrderInternalId=CO0000000365462 |
| oms.orders / order_vendor_item / order_address INSERT | ✅ |
| Kafka argo-order-event-dropped → distribution.original_orders | ✅ out_of_stock=false, refine 성공 |
| distribution.outbound_order_instruction (workplace=376, NORMAL, EXSD/PDD 산출) | ✅ OI0000000194921 |
| Kafka oms-external-outbound-order-instruction → wms-outbound consumer | ✅ 메시지 수신 + 처리 SUCCESS |
| wms.outbound.outbound_order INSERT | ❌ 위 OrderPool null + Invalid delivery company HANJIN 로 막힘 |
| Step 1~7 출고완료 | ⏸ 위 막힘 풀려야 진행 가능 |
비어 있음
당신이 처리할 항목