Inventory Conversion
재고 전환 이력을 Vendor에서 쿠팡으로 전달하는 API 입니다.
- API 호출 방향 : Vendor -> Coupang
- URL : /v1/3pfl/inventory/conversion
- Interface Style : Restful API
- HTTP Protocol : HTTPS
- Method : POST
Request Body
| Property Name | Parent Object | Data Type | Size | Mandatory | Description |
| Root | Array | Y | Array 형식
|
||
| purchaseOrderId | Root Array | String | N |
변환 전 sku의 발주번호 |
|
| centerCode | Root Array | String | Y | 센터 코드 | |
| uniqueKey | Root Array | String | N | 재고전환 History을 특정할 수 있는 key | |
| originalExternalSkuId | Root Array | Long | Y | 변환 전 skuId | |
| originalQuantity | Root Array | Unsigned Long | Y | 변환 전 sku의 수량 | |
| convertedExternalSkuId | Root Array | Long | Y | 변환 후 skuId | |
| convertedQuantity | Root Array | Unsigned Long | Y | 변환 후 sku의 수량 | |
| countedAt | Root Array | String | Y | 변경 이벤트가 발생했던 시점 (yyyy-MM-dd HH:mm:ss.SSS) |
Request Example
[
{
"purchaseOrderId": "11000001",
"centerCode": "CENTER001",
"uniqueKey": "273626354",
"originalExternalSkuId": 12269989,
"originalQuantity": 1000,
"convertedExternalSkuId": 12269990,
"convertedQuantity": 200,
"countedAt": "2020-12-01 15:03:39.836"
},
{
"purchaseOrderId": "11000002",
"centerCode": "CENTER002",
"uniqueKey": "273626355",
"originalExternalSkuId": 12269991,
"originalQuantity": 1,
"convertedExternalSkuId": 12269992,
"convertedQuantity": 20,
"countedAt": "2020-12-01 15:03:40.836"
},
{
"purchaseOrderId": "11000003",
"centerCode": "CENTER003",
"uniqueKey": null,
"originalExternalSkuId": 12270000,
"originalQuantity": 5,
"convertedExternalSkuId": 12270001,
"convertedQuantity": 5,
"countedAt": "2020-12-01 15:03:41.836"
}
]
Response
| Property Name | Parent Object | Data Type | Size | Mandatory | Description |
| code | Root | String | 20 | N | 결과값
|
| message | Root | String | 100 | N | 에러 사유 |
| data | Root | null | N | Response Data (empty) |
Response Example
{
"code": "0",
"message": "",
"data": null
}
유의사항
- Vendor에서 발생한 재고에 대한 전환 이력을 해당 API로 보내주시면 됩니다.
- 재고전환 API는 다음 시나리오 중에 하나를 선택해서 호출해주시면 됩니다.
- 재고에 대한 전환이 발생할 때마다 실시간으로 재고전환 API 호출
- 재고에 대한 전환 이벤트를 모두 기록해두었다가, 하루에 한 번 Batch로 재고전환 API 호출
- Ex) 재고에 대한 전환 이벤트를 모두 저장해두었다가, 새벽 1시마다 Batch로 재고전환 API 호출
- uniqueKey
- 업체에서 해당 재고전환 이력을 지칭할 수 있는 Key(PK / UniqueKey)를 넣어서 보내주시면 됩니다.
- Ex) sequenceId
- 되도록 재고전환 이력을 지칭할 수 있는 Key를 만들어서 보내주시길 바라며, 만약 UniqueKey를 보낼 수 없다면, 꼭 쿠팡쪽에 문의 주시기 바랍니다.
- 만약 재고전환 데이터의 quantity를 잘못된 수량으로 보내셨다면, from과 to를 reverse하여 diff를 제거해주신 뒤, 전환 데이터를 올바른 수량으로 다시 보내주시길 바랍니다.
-
ex.
# 기존 잘못보낸 request body (sku 11001000 수량 1개 -> sku 11001001 수량 10개)
{
...
"uniqueKey": "123456789",
"originalExternalSkuId": "11001000",
"originalQuantity": 1,
"convertedExternalSkuId": "11001001",
"convertedQuantity": 10,
...
}
# sku 11001000 수량 2개 -> sku 11001001 수량 5개가 정상데이터였다면 다음과 같이 소급
{
...
"uniqueKey": "3372635228",
"originalExternalSkuId": "11001001",
"originalQuantity": 10,
"convertedExternalSkuId": "11001000",
"convertedQuantity": 1,
},
{
...
"uniqueKey": "4384736232",
"originalExternalSkuId": "11001000",
"originalQuantity": 2,
"convertedExternalSkuId": "11001001",
"convertedQuantity": 5,
}
-
- 업체에서 해당 재고전환 이력을 지칭할 수 있는 Key(PK / UniqueKey)를 넣어서 보내주시면 됩니다.
- countedAt
- Millisecond 단위까지 전송해주셔야 합니다.
- Ex) 2020-12-01 18:03:48.372
- 재고전환 API를 호출한 시간이 아닌, 해당 재고전환 이벤트가 실제로 발생했던 시간으로 보내주셔야 합니다.
- Bad
- 재고전환을 별도로 쌓아놓음
- 이후 배치로 재고전환 API를 호출할 때, countedAt에 currentTimeMillies()로 설정하여 보냄
- Good
- 재고전환이 발생할 때마다 countedAt에 발생시간을 각각 기록해둠
- 이후 배치로 재고전환 API 호출할 때, 기록했던 countedAt을 그대로 보냄
- Also Good
- 재고전환이 발생할 때마다 재고전환 API 호출
- 이 때, countedAt에 currentTimeMillis()를 설정하여 보냄
- Bad
- Millisecond 단위까지 전송해주셔야 합니다.