Provide Product Data
To be able to present products to the customer within the Calls Widget during a Video Consultation session you will need to follow the steps presented below.
Instead of handling the provide-product-data event, you can connect your product catalog using the Product Feed feature. This allows Bambuser to automatically sync your product data (including images, variations, prices, and availability) directly from your store's catalog.
Benefits:
- No need to implement the
provide-product-dataevent handler - Automatic product data synchronization
- Product data is shared across Live, Shoppable Video, and Video Consultation
To set up your Product Feed, go to Settings → Integration → Product Feed → +NEW in your BamHub. You can connect via:
- Public Feed URL (XML or CSV)
- SFTP Upload
Learn more about Product Feed setup.
Limitations:
- Multiple markets: Product Feed supports one product feed per BamHub. If you need to support multiple markets with different product catalogs in a single dashboard, you'll need to use the
provide-product-dataevent handler instead. - Update frequency: Product Feed syncs at a minimum interval of 6 hours. If you need real-time or near real-time product data updates (e.g., for inventory changes, price updates), the
provide-product-dataevent handler provides more immediate updates.
Note: If you use Product Feed, you can skip the implementation steps below. The product data will be automatically available when agents add products to the call.
The integration of products is purely frontend javascript communication between your site and Bambuser, although your frontend integration code needs to communicate with your backend for fetching the product data.
When an Agent enters a product identifier in the Agent Tool UI, the event provide-product-data will be triggered in the embed instance (BambuserOneToOneEmbed).
provide-product-data event you will need to: -
Fetch your product object
Your frontend integration code requests product data from your backend and forward the information back to the embed instance.
-
Product Mapping
Inside the
updateProduct()method you will need to map the product data into a predefined structure that we understand.

Fetch your product object
You should account for different ways to fetch your product object depending on how your agents will be adding products to the Calls Widget.
| Fetch product by | Device | Description | Mandatory |
|---|---|---|---|
| SKU |
|
| Yes |
| URL |
|
| Yes |
| Scanned Code |
|
| No |
Product mapping
Attribute (required)
Attribute plays a big part when it comes to providng product data and defining product variants. Attributes are passed inside two methods: product() and variations()
- First, you define different possible variations (e.g. size, color, material, ...) a product could have using
attributes()function inside theproduct()method. You will need to give a unique identifier to each attribute and its option.
e.g. attribute("attributeId") and option("optionId")
- Second, you map the attribute defined in the
product()method to each product variation inside thevariations()method to identify a unique variant. You map this using previously defined"attributeId"and"optionId".
e.g. attribute("attributeId", "optionId")
The presentation of products and possibility to compare product attributes will function better the more details (variations, attributes, info, rating etc) you have provided for each product. More information regarding this can be found below.
Related Products (optional)
When mapping your product, related products can also be specified. The related products will be presented to the agent in the tool UI and can easily be added to the Calls Widget.
If the agent adds one of the related products, the related product's SKU will get passed to provide-product-data event.