출고 요청과 완료
출고 요청은 고객사가 지정한 상품과 수량을 창고에서 준비해 외부로 넘기도록 요청한 업무 기록입니다. outboundId로 구분합니다.
출고 완료 수량(dispatchedQuantity)은 해당 출고에서 실제로 창고 밖으로 나간 누적 수량입니다. 완료된 수량만큼 현재고와 예약 수량이 함께 줄어듭니다.
출고 전체 완료는 요청한 모든 상품과 수량의 출고가 끝나 COMPLETED가 된 상태입니다. 일부 수량만 완료했다면 출고 요청은 IN_PROGRESS로 남습니다.
피킹은 출고할 상품을 보관 위치에서 꺼내 모으는 작업입니다. 포장은 상품을 실제로 보낼 박스 등의 포장 단위에 담고 구성을 기록하는 작업입니다.
인계는 창고가 상품을 운송사나 픽업 담당자에게 넘기는 작업입니다. 인계 계획에는 예정일과 픽업·택배 방식 등의 정보를 등록합니다. 창고가 실제로 넘긴 결과를 기록하면 해당 수량이 출고 완료 수량에 반영됩니다.
다른 개념과의 관계
섹션 제목: “다른 개념과의 관계”- 출고 요청은 상품 행마다 SKU와 요청 수량을 가집니다. 생성할 때 같은 고객사·SKU의 미사용 예약 수량을 확보합니다.
- 포장 결과의 패키지(
Package)는 실제로 보낼 박스 등의 단위입니다. 팔레트(Pallet)는 하나 이상의 패키지를 묶은 단위입니다. 팔레트 사용은 업무에 따라 달라집니다. - 한 출고에 여러 인계 계획(
Dispatch)을 등록할 수 있습니다. 창고는 각 인계에서 실제로 넘긴 패키지나 팔레트를 기록합니다. - 운송장 번호는 포장 단위와 연결해 조회합니다. 운송장 등록, 창고의 출고 완료, 배송사의 배송 완료는 서로 다른 사실입니다.
생성과 상태 변화
섹션 제목: “생성과 상태 변화”출고 생성에 성공하면 창고가 바로 작업을 시작할 수 있습니다. Maybox에 작업용 초안을 저장하는 단계로 취급하지 않습니다.
출고의 status는 진행 중인 IN_PROGRESS, 전체 완료한 COMPLETED, 취소한 CANCELED입니다. 피킹·포장·인계의 상세 결과와 수량은 출고 상세에서 함께 조회합니다.
창고가 피킹·포장을 진행해도 현재고는 줄지 않습니다. 출고 완료 수량이 늘면 그 수량만큼 현재고와 예약 수량이 줄어듭니다. 일부만 출고했다면 남은 수량은 진행 중인 출고가 계속 확보합니다.
부분 완료와 출고 전체 완료
섹션 제목: “부분 완료와 출고 전체 완료”12개를 요청하고 5개를 먼저 출고한 뒤 나머지 7개를 출고하는 예제입니다.
| 출고 완료 수량 | 출고 상태 | 남은 수량 |
|---|---|---|
| 0 | IN_PROGRESS |
12 |
| 5 | IN_PROGRESS |
7 |
| 12 | COMPLETED |
0 |
출고 상세의 lines[].requestedQuantity는 요청 수량, lines[].dispatchedQuantity는 출고 완료 수량입니다. 남은 수량은 두 값의 차이로 확인합니다. packedQuantity는 포장 수량이므로 출고 완료로 세지 않습니다. 여러 SKU가 있다면 모든 행의 요청 수량이 출고돼야 전체 완료입니다.
인계 준비 지시와 확인 정책
섹션 제목: “인계 준비 지시와 확인 정책”팔레트 구성이나 문서 부착처럼 추가 인계 준비가 필요한 경우 고객사가 지시를 전달하고 그 내용을 확정할 수 있습니다.
출고 생성 시의 dispatchPreparationConfirmationPolicy는 이 추가 지시의 확인 절차를 정합니다. NOT_REQUIRED와 CONFIRMATION_REQUIRED를 구분하며, 출고 전체의 작업 시작을 승인하는 정책은 아닙니다.
연동 규칙
섹션 제목: “연동 규칙”- 창고가 작업을 시작해도 되는 시점에 출고를 제출합니다. 생성 후 SKU·수량·확인 정책은 바꿀 수 없습니다.
- 인계 계획 등록만으로 운송사 예약·운임 결제·라벨 발급·인계 완료가 처리되지는 않습니다.
- 운송장 번호만으로 출고나 배송 완료를 판단하지 않습니다. 출고 상태와 SKU별 출고 완료 수량을 함께 조회하고, 개별 인계 결과는
dispatches에서 확인합니다. - 출고 취소는 진행 상태에 따라 거부될 수 있습니다. 오류가 나면 최신 상태를 다시 조회합니다.
- 공개 API로 출고를 취소해도 예약 수량은 자동 해제되지 않습니다. 남은 미사용 예약이 필요한지 판단한 뒤 별도로 해제합니다.