Learn how to integrate FastPix Shoppable Video features to embed product links, configure interactive hotspots, and sync eCommerce data through API.
FastPix Player now supports shoppable video themes, giving you the ability to embed interactive shopping experiences directly inside your videos. Instead of just watching, viewers can click, explore, and even purchase products while engaging with your content.
There are two themes you can choose from, depending on the type of video experience you want to build:
Both themes allow you to add clickable products, hotspots, and calls-to-action seamlessly. The main difference lies in how product data is configured and displayed.
Theme behavior
shoppable-video-player expects product data passed programmatically through the addShoppableData() method. Any product-link attribute you set will be ignored.shoppable-shorts only uses the product-link attribute. No product data configuration is needed or processed.A full, interactive shopping experience with an expandable sidebar and detailed product catalog. This theme is best suited for multi-product or long-form content where viewers can browse items while watching.
Use cases
A simplified, call-to-action driven theme for quick, single-product experiences. Designed for mobile-first and social platforms.
Use cases
This theme is the full-featured option, designed for multi-product or catalog-style experiences. It requires a little configuration, but gives you far more control over how products are displayed and how they interact with the video timeline.
At the most basic level, you only need to include the FastPix player with the correct theme and a playback ID:
This creates a player with shoppable capability, but it won’t show any products yet. To make the sidebar and hotspots come alive, you’ll need to pass product data to the player.
To load product information, use the addShoppableData() method. This method expects a JSON configuration that defines both sidebar behavior and the product catalog.
With this setup:
This theme is the lightweight option, optimized for single products and mobile-first consumption (e.g., TikTok, Instagram Reels). Unlike shoppable video player, it doesn’t need a product catalog. Instead, it only requires a single link.
Add the FastPix player with the theme set to shoppable-shorts, plus a product-link attribute. When the video plays, a cart button will automatically appear. Tapping it redirects viewers to the specified product link.
PLEASE NOTE
For shoppable-shorts, only the
product-linkattribute is required. No additional JavaScript configuration needed.
shoppable-video-player:
addShoppableData(config) with a product array.shoppable-shorts:
The data is structured as a JSON object with two main parts:
productSidebarConfig - defines how the sidebar behaves (when it opens, closes, and whether overlays appear).products - an array of product objects, each representing a clickable product inside your video.Here’s the complete structure:
Products are defined inside the products array. Each product has required fields (which the player needs to function) and optional fields (to enrich interactivity).
Required fields
Optional fields
Products can trigger two types of interactivity:
Click actions
Defines what happens when a product is selected in the sidebar or overlay.
Click action configuration example:
Hover actions
Hover actions control what happens when a user moves their mouse over a product in the sidebar.
Hover action configuration example:
The productSidebarConfig object customizes how the sidebar behaves during playback.
Example:
Hotspot markers let you place clickable pins directly inside the video frame. These markers can appear at specific times during playback, linking viewers to products or external pages. They’re a powerful way to make your video feel more interactive - imagine a furniture demo where pins appear directly on the chair or table being shown.
Each marker is defined inside the markers array of a product object.
Marker object structure
Example:
In this example:
Tooltip position options
Tooltips help keep the UI intuitive by making it clear what a marker represents without overwhelming the video with too much text.
By default, the shoppable themes follow FastPix’s built-in styles, ensuring the sidebar, buttons, and overlays adapt well across devices. But in most real-world cases, you’ll want the player to match your brand identity.
FastPix Player supports CSS custom properties (variables) that let you tweak the look and feel without digging into the player’s internals.
Available custom properties:
You can apply these variables directly to the <fastpix-player> element in your stylesheet:
Beyond displaying products, the shoppable player emits events you can listen for in JavaScript. These events allow you to:
Events are emitted both for sidebar interactions and for the post-play overlay. Some events also indicate sidebar state changes and video lifecycle actions (like replay).
Available events:
Event usage examples
Listening to product events is straightforward - attach event listeners to the player element:
Here’s a single snippet that wires up the shoppable player, passes product data, customizes CSS, and listens to events.
PLEASE NOTE
In examples elsewhere you may see
markersincludeseekTime. If present, it controls when a marker appears. If omitted, the marker’s visibility can be inferred from the product’sstartTime/endTime. Your implementation can support either pattern, but keep it consistent within your project.If both
markersandonProductClickare used,onProductClicktakes precedence.FastPix Player automatically handles responsiveness.
Cart Button Not Displaying
If the cart button isn’t appearing, check these common issues:
Make sure the player is fully loaded before adding shoppable data:
For shoppable-video-player, you must call addShoppableData():
Note: The product-link attribute is ignored for shoppable-video-player theme. Only shoppable-shorts theme uses the product-link attribute.
Ensure no CSS is hiding the cart button:
Common CSS issues:
If the cart button still doesn’t appear, you can force it to show:
Debug steps
theme="shoppable-video-player" or theme="shoppable-shorts" is set. When using shoppable-video-player, the correct method to pass configuration must be used player.addShoppableData(cartData);player.js is loading correctly (no 404/CORS).