Skip to main content
The live shopping channel can render as a single full-page block, or as independent mount points so your theme can place merchant HTML between sections (campaign banners, copy, dividers, and so on). The existing single-container embed is unchanged. Use the same production channel script for both layouts:
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:
If #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. Any div 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: hidden on wrappers around the mounts — overlays and modals can be clipped.
  • Avoid forcing text-align, font-family, or color on ancestors of the mounts if you need Videowise defaults.
  • Do not duplicate hero copy/CTAs in merchant HTML if #videowise_stream_channel_hero is present — use the Videowise hero as the source of truth.

Example: merchant framing around sections

Do not add #videowise_stream_channel on the same page as the section mounts. The monolith container takes precedence and the section mounts are ignored.

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.
See React Native SDK — Live Shopping Channel.