Marketplaces / BOL Technical Scope [In Progress] / Bol Product Management / Bol Create Product

Bol Create Product

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 create product on Bol.  We want all triggers, validations and standardizations which are not mentioned here to be a per Product Listing general requirements

The trigger for Product Creation is: Product Account > Product Status = “Product not created”Product Account > List / Update the Whole Item = PendingPlease note we can push up to 10 products at the same time.

API Call: POST https://api.bol.com/retailer/content/productsAPI Docs: https://api.bol.com/retailer/public/redoc/v9/retailer.html#tag/Product-Content/operation/post-product-content

Sample Body Request:

{
    "language": "nl",
    "attributes": [
        {
            "id": "EAN",
            "values": [
                {
                    "value": "3275055840834"

                }
            ]
        },
        {
            "id": "Internal Reference",
            "values": [
                {
                    "value": "Test12345"

                }
            ]
        },
        {
            "id": "Name",
            "values": [
                {
                    "value": "Test Product Do Not Buy"

                }
            ]
        },
        {
            "id": "Product Classification",
            "values": [
                {
                    "value": "Blush"

                }
            ]
        },
        {
            "id": "Brand",
            "values": [
                {
                    "value": "Candide"

                }
            ]
        },
        {
            "id": "Description",
            "values": [
                {
                    "value": "Test Description"

                }
            ]
        }
    ],
    "assets": [
        {
            "url": "https://bebemama.info/Candide/3275055840834_1.jpg",
            "labels": [
                "FRONT"
            ],
            {
            "url": "https://bebemama.info/Candide/3275055840834_1.jpg",
            "labels": [
                "OTHER"
            ]
        }
    ]
}

Mapping:

Bol Field Hemi Field Comment
language Account > Country If we have different Account > Country from Belgium and Netherlands we want to return an error.
attributes
id Product Account > Item Specifics Name

OR Product Account > Variation Specifics Name OR {{pre-mapped attribute id}} | pre-mapped attributes added below | | | | values | Product Account > Item Specifics Value OR Product Account > Variation Specifics Value OR {{pre-mapped attribute value}} | pre-mapped attributes added below | | | assets | | | | | | | url | Product > Main Image OR Product > More Picture ULR OR Product Account Bol > Main Image OR Product Account Bol > More Images | | | | | labels | “OTHER“ OR ”FRONT” | Only for the leading image we want to push ”FRONT” for the Additional Images we use “OTHER“ |

Pre-mapped attributes

These attributes are part of the taxonomy however we map them to internal fields. Please note if we have added Height for example however the category do not support this attribute we do not want to push it. Which mean all validations against the taxonomy have to be made as well.

Bol Field (Attribute id) Hemi Field (Attribute value) Required for MP Comment
EAN Product > EAN

OR Product Account > Marketplace EAN | Based on taxonomy | Product Account > Marketplace EAN with priority | | Internal Reference | Product > SKU | Based on taxonomy | | | Family Key | Product Account > Variation Group | Based on taxonomy | | | Name | Product Account > Title | Based on taxonomy | | | Product Classification | Product Account > Primary Category ID | Based on taxonomy | | | Brand | Product > Brands OR Product Account > Item Specifics | Based on taxonomy | Product Account > Item Specifics with priority | | Description | Product Account >Description | Based on taxonomy | | | Height | Product > Height | Based on taxonomy | | | Length | Product > Length | Based on taxonomy | | | Weight | Product > Weight | Based on taxonomy | | | Width | Product > Width | Based on taxonomy | |

Sample Response:

{
    "processStatusId": "99576230722",
    "eventType": "CREATE_PRODUCT_CONTENT",
    "description": "Create content for product(s).",
    "status": "PENDING",
    "createTimestamp": "2023-08-16T14:56:08+02:00",
    "links": [
        {
            "rel": "self",
            "href": "https://api.bol.com/shared/process-status/99576230722",
            "method": "GET"
        }
    ]
}

The product content creation is asynchronous and we will have to create a new feed in Marketplace Feeds table. After each successfully sent feed for product content creation 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 “Product Create“
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

Based on the response reader afterwards we need to mark the products as Product Created and leave them on pending so we can push the offer. Product Account > Product Status = “Product created”Product Account > List / Update the Whole Item = Pending If any errors are returned we want to store them in Product Account > Update Item Error field after the Bol Order Response Reader

Please note we will also add the feed objects which after processing need to be removed.

Is this article helpful?
0 0 0