On non-Shopify or headless storefronts, set
window.videowiseInfo.shop (and/or window.Shopify.shop) to your *.myshopify.com domain before the channel script runs. See Custom platforms.Monolith (default)
One container receives the hero, live now, upcoming shows, and past recordings:#videowise_stream_channel is on the page, it always wins. Section containers on the same page are ignored.
Section layout (modular)
Omit#videowise_stream_channel. Place empty divs where each section should appear. Any HTML between them is left alone — Videowise only fills the mounts.
Container ids
You can use a subset of sections. A page with only
#videowise_stream_channel_past still loads recordings.
A missing or empty section stays empty when there is nothing to show (for example no live show is on air, or the hero banner is disabled in channel settings).
Shared container (optional)
RSVP, the channel socket, and popup portals are not tied to a visible section. They run from#videowise_stream_channel_shared.
You do not need to add this div. If it is missing, the widget appends a hidden one to document.body. Add it yourself only when you want that host in a specific place in the DOM (for example outside a clipped layout wrapper):
How it works
One React tree still owns channel settings, data fetching, sockets, RSVP, and autoplay. In section mode that tree mounts on the shared host and portals each section into the matching container. The same embed loader is used for both layouts. Anydiv whose id starts with videowise_stream_channel is enough to load the channel assets.
Styling tips
Videowise owns the look of each section. Keep theme CSS from fighting the embed:- Prefer class-scoped merchant styles. Avoid global rules on
button,input,form, or*that cascade into Videowise UI (including the subscribe modal). - Do not put
overflow: hiddenon wrappers around the mounts — overlays and modals can be clipped. - Avoid forcing
text-align,font-family, orcoloron ancestors of the mounts if you need Videowise defaults. - Do not duplicate hero copy/CTAs in merchant HTML if
#videowise_stream_channel_herois present — use the Videowise hero as the source of truth.
Example: merchant framing around sections
React Native SDK
In@videowisehq/videowise-react-native-sdk, pass the same section markup via channelBodyHtml on LiveShoppingChannel. The SDK injects that string into the WebView <body> instead of the default monolith #videowise_stream_channel div.
Related
- Live shopping overview
- Launch a live stream — open a specific show with
videowiseLaunchLiveorvwLsId - Live shopping custom events
- Custom platforms
- React Native SDK — use
channelBodyHtmlonLiveShoppingChannelfor the same section mounts inside the app WebView - Order tracking
- Cookies