주문·배송

발송처리

발송처리를 서버에서 끝내면 배송 추적이 알아서 붙어요.

주문에 딸린 발주(배송) 단위​​로 상태와 운송장을 갱신해요. 관리자 주문 상세의 [발송처리]와 같은 처리를 서버에서 하는 API예요.

발송 완료로 넘기면서 운송장을 같이 넣으면 배송 추적이 자동으로 붙어요. 그 뒤로는 택배사가 알려주는 단계가 자동으로 쌓여요 — 배송추적 조회로 읽으면 되고, 배송 완료를 받으면 발주 상태도 배송 완료로 스스로 넘어가요.

Basic 인증과 user:order_purchase_update scope가 필요해요. 입력과 오류 전체는 주문 API 원문를 확인해요.

API 엔드포인트

PUThttps://api.bootapi.com/v1/orders/:order_number/purchasesBasic Auth
경로의 주문에 딸린 발주만 갱신돼요

purchases[]에 다른 주문의 order_purchase_number를 섞으면 ORDER_PURCHASE_NOT_FOUND로 요청 전체가 거절돼요.

요청 파라미터

파라미터 타입 필수 설명
order_number String 필수 주문번호 (URL 경로)
purchases Array 필수 갱신할 발주 목록. 한 번에 최대 50건
purchases[].order_purchase_number String 필수 발주 번호 — 주문 상세 응답의 order_purchases[].order_purchase_number
purchases[].status Integer 필수 바꿀 발주 상태 — 2 발주 확인 · 3 상품 준비중 · 4 발송 완료 · 5 배송 완료
purchases[].delivery_company_code String 선택 택배사 코드 (예: CJGLS)
purchases[].tracking_number String 선택 운송장 번호
purchases[].delivery_type Integer 선택 배송 유형 — 커머스 Enum 참고
purchases[].chosen_product_option_id String 선택 발주 안에서 특정 옵션만 처리할 때

여러 발주는 순서대로 처리돼요. 중간 항목에서 오류가 나면 앞 항목의 변경은 남을 수 있어요. 오류 뒤에는 배송추적 조회로 현재 상태를 다시 확인해요.

취소·무효는 이 API로 못 해요

status는 위 네 가지만 받아요. 발주 취소·무효는 환불·클레임과 얽혀 있어 관리자에서만 처리해요.

코드 예제

curl -X PUT "https://api.bootapi.com/v1/orders/25071182085082524116/purchases" \
  -H "Authorization: Basic {base64(client_key:secret_key)}" \
  -H "Content-Type: application/json" \
  -d '{
    "purchases": [
      {
        "order_purchase_number": "P25071182085082524116",
        "status": 4,
        "delivery_company_code": "CJGLS",
        "tracking_number": "620148310301"
      }
    ]
  }'bash
Node.js 배포 버전의 전송 메서드

@bootpay/backend-js@2.13.1에는 order.updatePurchases가 없어요. 위처럼 SDK 공통 put에 { purchases: [...] } 본문을 전달해요. 다른 언어는 해당 버전의 메서드를 확인하거나 위 HTTP 계약을 사용해요.

응답

성공 응답

갱신이 끝난 뒤의 발주 목록이 그대로 돌아와요. 필드 설명은 주문 상세와 같아요.

[
  {
    "order_purchase_id": "6870824fb0eacea5cd974f12",
    "order_purchase_number": "P25071182085082524116",
    "status": 4,
    "delivery_company_code": "CJGLS",
    "tracking_number": "620148310301",
    "d_ts": 1,
    "sent_at": "2025-07-12T09:10:00Z",
    "tracking_histories": []
  }
]json
방금 등록한 운송장은 `d_ts`가 아직 낮아요

송장을 걸어둔 직후라 추적 이력이 비어 있어요. 택배사가 집화하면 그때부터 d_ts와 tracking_histories가 채워져요.

에러 코드

공통 에러

인증·권한 관련 에러는 에러 코드표를 참고해요.

코드 메시지 대처 방법
ORDER_NOT_FOUND 주문내역을 찾지 못했어요. order_number를 넣었는지 확인해요 (order_id 아님)
ORDER_DENIED 주문 정보를 조회할 권한이 없어요. 다른 프로젝트의 주문번호는 아닌지 확인해요
ORDER_PURCHASE_NOT_FOUND 존재하지 않는 발주기록이에요. 경로의 주문에 딸린 order_purchase_number인지 확인해요
REQUIRED_PARAMETER_IS_MISSING 필수 파라미터가 없어요. purchases 배열을 넣었는지 확인해요
INVALID_PARAMETER 파라미터가 올바르지 않아요. status가 2·3·4·5 중 하나인지, 발주가 50건을 넘지 않는지 확인해요