Bulk Request Adjustment
To give best experience and fair usage of rate limit, we will implement new bulk limit calculation for all endpoint with bulk request payload.
Current flow are if user hit one of our endpoint with bulk request for example endpoint Edit Product V2, it will treat as 1 request even there are multiple payload. For new flow, it will treat one payload as 1 request, so if there are 4 payload products in one endpoint, it will treat as 4 requests.
This changes will fully take effect at 03 August 2020 . After fully rollout, we will compensate by increase rate limit with reasonable rate to impacted endpoint.
Below are the list of endpoint that impact for this new calculation :
- Update Stock
- Update Price
- Increment/Decrement Stock
- Create Product V2
- Edit Product V2
- Set Active Product
- Set Inactive Product
- Delete Product V2
- Add Slash Price
- Update Slash Price
- Cancel Slash Price
Partial Rate Limit Response
There are partial fail response when get rate limit for specific payload. User can identify payload that get rate limit with error message ERR_TOO_MANY_REQUEST
.
Below are the example partial rate limit response:
Update Stock
{
"header": {
"process_time": 0,
"messages": "Your request has been processed successfully"
},
"data": {
"total_data": 2,
"succeed_rows": 1,
"succeed_rows_data": [
{
"productID": 15362362,
"warehouseID": 1610,
"shopID": 479573,
"stock": 45,
"price": 27000
}
],
"failed_rows": 1,
"failed_rows_data": [
{
"product_id": 15362365,
"new_stock": 45,
"message": "ERR_TOO_MANY_REQUEST"
}
]
}
}
Update Price
{
"header": {
"process_time": 0,
"messages": "Your request has been processed successfully"
},
"data": {
"succeed_rows": 1,
"failed_rows": 1,
"failed_rows_data": [
{
"product_id": 15362365,
"new_price": 15000,
"new_stock": 0,
"message": "ERR_TOO_MANY_REQUEST"
}
]
}
}
Increment & Decrement Stock
{
"header": {
"process_time": 1.009137004,
"messages": "Your request has been processed successfully"
},
"data": {
"total_data": 2,
"succeed_rows": 1,
"succeed_rows_data": [
{
"productID": 15362365,
"warehouseID": 1610,
"shopID": 479573,
"stock": 47,
"price": 15000
}
],
"failed_rows": 1,
"failed_rows_data": [
{
"product_id": 15362362,
"new_stock": 0,
"message": "ERR_TOO_MANY_REQUEST",
"stock_value": 2
}
]
}
}
Create Product V2
{
"header": {
"process_time": 0.235238346,
"messages": "Your request has been processed successfully"
},
"data": {
"upload_id": 6,
"total_data": 2,
"failed_rows": 1,
"failed_rows_data": [
{
"product_name": "Product Testing V3 1.51",
"product_price": 10000,
"sku": "TST21",
"error": [
"ERR_TOO_MANY_REQUEST"
]
}
]
}
}
Edit Product V2
{
"header": {
"process_time": 0,
"messages": "Your request has been processed successfully"
},
"data": {
"upload_id": 4,
"total_data": 5,
"failed_rows": 1,
"failed_rows_data": [
{
"product_id": 2147610676,
"product_name": "Product Testing V3 1.50",
"product_price": 10000,
"sku": "TST21",
"error": [
"ERR_TOO_MANY_REQUEST"
]
}
]
}
}
Set Active, Inactive, & Delete Product
{
"header": {
"process_time": 1.189266249,
"messages": "Your request has been processed successfully"
},
"data": {
"total_data": 7,
"succeed_rows": 5,
"failed_rows": 2,
"failed_rows_data": [
"Error Product ID [15324790] : ERR_TOO_MANY_REQUEST",
"Error Product ID [15318604] : ERR_TOO_MANY_REQUEST"
]
}
}
Add & Update Slash Price
{
"header": {
"process_time": 1.315370454,
"messages": "Your request has been processed successfully"
},
"data": {
"total_data": 3,
"succeed_rows": 1,
"failed_rows": 2,
"failed_rows_data": [
"Error Product ID [15318639] : ERR_TOO_MANY_REQUEST",
"Error Product ID [15318602] : ERR_TOO_MANY_REQUEST"
]
}
}
Cancel Slash Price
{
"header": {
"process_time": 1.288318058,
"messages": "Your request has been processed successfully"
},
"data": {
"total_data": 3,
"succeed_rows": 1,
"failed_rows": 2,
"failed_rows_data": [
"Error Slash Price Product ID [21567183] : ERR_TOO_MANY_REQUEST",
"Error Slash Price Product ID [21567181] : ERR_TOO_MANY_REQUEST"
]
}
}