Purchase Order
발주 요청을 Vendor에 전달하는 API 입니다.
- API 호출 방향 : Coupang -> Vendor
- URL : /v1/3pfl/purchaseOrder
- Interface Style : Restful API
- HTTP Protocol : HTTPS
- Method : POST
Request Body
| Property Name | Parent Object | Data Type | Size | Mandatory | Description |
| purchaseOrderId | Root | String | 20 | Y | |
| partnerId | Root | String | 20 | Y |
productPartnerId 입니다. **중요: vendorPartnerId가 아닙니다. |
| status | Root | Enum | 20 | Y |
PENDING, CANCELED, UNSIPPED, RECEIVEING, FINISHED, CLOSED |
| purchaseOrderedAt | Root | String | Y |
YYYY-MM-DD HH:MI:SS |
|
| logisticsType | Root | String | 255 | Y |
|
| purchaseOrderCenterDtoList | Root | Array | Y |
|
|
| centerCode | purchaseOrderCenterDtoList | String | 20 | Y |
|
| purchaseOrderItemDtoList | purchaseOrderCenterDtoList | Array | Y |
|
|
| receivingPlannedAt | purchaseOrderCenterDtoList | String | Y |
YYYY-MM-DD HH:MI:SS |
|
| transportType | purchaseOrderCenterDtoList | Enum | 20 |
TRUNK, MILKRUN, PARCEL, SHIPMENT |
|
| expiredAt | purchaseOrderItemDtoList | String |
YYYY-MM-DD HH:CDM:SS |
||
| manufacturedEndAt | purchaseOrderItemDtoList | String |
YYYY-MM-DD HH:MI:SS |
||
| manufacturedStartAt | purchaseOrderItemDtoList | String |
YYYY-MM-DD HH:MI:SS |
||
| originalPrice | purchaseOrderItemDtoList | Long | 20 |
|
|
| producedAt | purchaseOrderItemDtoList | String |
|
||
| quantity | purchaseOrderItemDtoList | Long | 20 | Y |
|
| receivingPrice | purchaseOrderItemDtoList | Long | 20 | Y |
|
| skuId | purchaseOrderItemDtoList | Long | 20 | Y |
External SKU ID |
| storageType | purchaseOrderItemDtoList | String | 100 |
|
|
| supplierTxType | purchaseOrderItemDtoList | String | 50 |
|
|
| unitDescription | purchaseOrderItemDtoList | String | 255 |
|
Request Example
{
"purchaseOrderId": "11000001",
"partnerId": "A00012345",
"status": "PENDING",
"purchaseOrderedAt": "2019-12-01 14:34:38",
"logisticsType": "RETAIL",
"purchaseOrderCenterDtoList": [
{
"centerCode": "CENTER001",
"receivingPlannedAt": "2019-12-10 00:00:00",
"transportType": "PARCEL",
"purchaseOrderItemDtoList": [
{
"expiredAt": null,
"manufacturedEndAt": null,
"manufacturedStartAt": null,
"originalPrice": 0,
"producedAt": null,
"quantity": 3,
"receivingPrice": 11455,
"skuId": 10001234,
"storageType": "NON_TOTABLE_SLOW",
"supplierTxType": "DIRECT_IMPORT",
"unitDescription": "제품 이름"
}
]
}
]
}
Response
| Property Name | Data Type | Size | Mandatory | Description |
| errorCode | String | 20 | N | 결과값
|
| errorReason | String | 100 | N | 에러 사유 |
Response Example
{
"errorCode": "0",
"errorReason": null
}
유의사항
- 발주는 같은 purchaseOrderId에 대해, 다음 3 가지 status로 인입됩니다.
- PENDING
- 발주가 새로 생성된 상태입니다.
- 발주를 진행하여 입고를 쿠팡으로 전달해주시면 됩니다.
- CANCELED
- 발주가 취소된 상태입니다.
- 진행중인 발주를 취소할 수 있으면 취소를 진행해주시고 errorCode를 "0"으로 리턴해주시면 됩니다.
- 진행중인 발주를 취소할 수 없는 상태면(ex. 발주 신청한 물품이 이미 센터에 하차), errorCode를 "CANCEL_FAILED"로 인입해주시고, errorReason에 자세한 이유를 넣으셔서 response를 주시면 됩니다.
- CLOSED
- 이전에 생성되었던 발주가 마감된 상태입니다.
- 발주에 관련된 입고를 쿠팡으로 더 이상 전달하지 않도록 blocking 시켜주시면 됩니다.
- PENDING
- partnerId는 발주를 신청한 공급업체의 partnerId 입니다.
- 3PF&L Vendor의 partnerId가 아닌, 공급업체의 partnerId 입니다.
- 3PF&L Vendor의 partnerId = vendorPartnerId
- 공급업체의 partnerId = productPartnerId
- 해당 partnerId는, 이후 발주에 따른 입고 API를 전송하실 때, partnerId 필드에 그대로 입력하셔서 전달해주시면 됩니다.
- 3PF&L Vendor의 partnerId가 아닌, 공급업체의 partnerId 입니다.