Bol Update Offer Stock
Summary of Changes: (The purpose of this table is to keep traceability and Product team to highlight the things that were changed into the scope, based on comments or discussions)
Date | Version | Created / Updated | Notes |
---|---|---|---|
10/05/2023 | v1.0 | Bogomil Pavlov | First publish |
The purpose of this document is to describe how we update offer stock and end item on Bol We want stock updates and zero stock updates to be as per our standards. We want all triggers, validations and standardizations which are not mentioned to be a per Stock Update general requirements
Please note this request should work for all accounts which have Account Bol > Fulfilment Method = FBR
API Call: PUT https://api.bol.com/retailer/offers/{offer-id}/stockAPI Docs:https://api.bol.com/retailer/public/redoc/v9/retailer.html#tag/Offers/operation/update-offer-stock
The offer-id is our Product Account > Channel Item ID. The offer price updates are product per product
Sample Request:
{
"amount": 6,
"managedByRetailer": false
}
Mapping:
Bol Field | Bol Comment | Required | Hemi Field | Comment |
---|---|---|---|---|
amount |
The amount of stock available for the specified product present in the retailers warehouse. Note: this should not be the FBB stock! Defaults to 0. | Yes | Product Account > Quantity | |
managedByRetailer |
Configures whether the retailer manages the stock levels or that bol should calculate the corrected stock based on actual open orders. In case the configuration is set to 'false', all open orders are used to calculate the corrected stock. In case the configuration is set to 'true', only orders that are placed after the last offer update are taken into account. | Yes | “true“ | Hardcoded as “true” |
Sample Response:
{
"processStatusId": "1234567",
"entityId": "987654321",
"eventType": "UPDATE_OFFER_STOCK",
"description": "Example process status description for processing 987654321.",
"status": "SUCCESS",
"errorMessage": "Example process status error message.",
"createTimestamp": "2018-11-14T09:34:41+01:00",
"links": [
{
"rel": "self",
"href": "https://api.bol.com/shared/process-status/1234567",
"method": "GET"
}
]
}
The offer stock update is asynchronous and we will have to create a new feed in Marketplace Feeds table.
After each successfully sent feed for offer stock update i we will receive the processStatusId
from the response and need to store it in Marketplace Feeds table with the rest of the details as follows.
Bol Field | Hemi Field | Comment |
---|---|---|
processStatusId |
Marketplace Feed > External ID | |
Marketplace Feed > Account | For which account is the feed generated. | |
eventType |
Marketplace Feed > External Type | |
Marketplace Feed > Type | Hardcoded as “Update Stock “ |
|
createTimestamp |
Marketplace Feed > Submitted Date | When the feed is submitted |
Marketplace Feed > Sent Objects Count | How many products we have pushed in the feed | |
Marketplace Feed > Status | If the external status is “PENDING“ we want to set the status as “Processing“. | |
If the external status is “SUCCESS“ or “FAILURE” or “TIMEOUT” we want to set the status as “Completed“. | ||
status |
Marketplace Feed > External Status |
If any errors are returned we want to store them in Product Account > Update Quantity Error after the Bol Product Response Reader
Please note we will also add the feed objects which after processing need to be removed.