Last updated

Playlist

The Playlist component displays a collection of media items from a Fluid playlist.

Usage

<!-- Display a Playlist -->
<fluid-media-widget playlist-id="your-playlist-id"></fluid-media-widget>

Attributes

AttributeTypeDefaultDescription
playlist-idstringPlaylist ID to fetch media from
hide-widgetbooleanfalseWhether to hide the component
class-namestringAdditional CSS classes
heightstringThumbnail height
widthstringThumbnail width

Display Options

AttributeTypeDefaultDescription
embed-typestring'default'Display mode: 'popover', 'inline', 'inline-shopping', 'default'
auto-openbooleanfalseAuto-open on load (popover mode only)
thumbnail-foambooleanfalseUse object-cover for thumbnail

Display Modes

Default Mode

Shows media with associated cta options (this is what is displayed on the shareable media pages)

<fluid-media-widget
  playlist-id="your-playlist-id"
  embed-type="default"
></fluid-media-widget>

Popover Mode

Shows a thumbnail that opens media in a popover overlay:

<fluid-media-widget
  playlist-id="your-playlist-id"
  embed-type="popover"
></fluid-media-widget>

Inline Mode

Embeds media directly in the page:

<fluid-media-widget
  playlist-id="your-playlist-id"
  embed-type="inline"
></fluid-media-widget>

Examples

Custom Dimensions

<fluid-media-widget
  playlist-id="your-playlist-id"
  height="300px"
  width="500px"
></fluid-media-widget>

Auto-Opening Popover

<fluid-media-widget
  playlist-id="your-playlist-id"
  embed-type="popover"
  auto-open="true"
></fluid-media-widget>

CTA Options

You can customize the Call-to-Action (CTA) displayed with media in playlists using client-side overrides. CTA options can be set via HTML attributes or the SDK API.

CTA Options Reference

OptionTypeRequiredDescription
typestringYesCTA type: 'cart', 'link', 'phone', or 'email'
urlstringIf type is 'link'URL to navigate to when CTA is clicked
buttonTextstringNoCustom button text (not applicable for 'cart' type)
buttonDescriptionstringNoDescription text below the button (not applicable for 'cart'

Setting CTA via HTML Attribute

Use the cta-options-manual-override attribute with a JSON string:

<!-- Link CTA -->
<fluid-media-widget
  playlist-id="12345"
  cta-options-manual-override='{"type":"link","url":"https://shop.example.com","buttonText":"Shop Now"}'
></fluid-media-widget>

<!-- Cart CTA, this section will display all tagged products if available -->
<fluid-media-widget
  playlist-id="12345"
  cta-options-manual-override='{"type":"cart"}'
></fluid-media-widget>

<!-- Email CTA with description -->
<fluid-media-widget
  playlist-id="12345"
  cta-options-manual-override='{"type":"email","buttonText":"Get Updates","buttonDescription":"Join 10,000+ subscribers"}'
></fluid-media-widget>

<!-- Phone CTA -->
<fluid-media-widget
  playlist-id="12345"
  cta-options-manual-override='{"type":"phone","buttonText":"Call Now"}'
></fluid-media-widget>

Setting CTA via SDK API

Media-Specific Settings (Higher Priority)

Set CTA options for specific media IDs using the SDK. These persist in localStorage and are page-scoped:

// Set CTA for a specific media item
window.FairShareSDK.media.settings.setForPlaylist("12345", {
  ctaOptionsManualOverride: {
    type: "email",
    buttonText: "Get Updates",
    buttonDescription: "Join 10,000+ subscribers",
  },
});

Default Settings (Lower Priority)

Set default CTA options that apply to all media widgets on the page when no specific override exists:

// Set default CTA for all media widgets on this page
window.FairShareSDK.media.settings.setDefault({
  ctaOptionsManualOverride: {
    type: "cart",
  },
});

Priority Order

CTA options are applied in the following priority (highest to lowest):

  1. HTML Attribute (cta-options-manual-override) — Highest priority
  2. SDK API - Media-Specific (setForMedia) — Medium priority
  3. SDK API - Default Settings (setDefault) — Lowest priority

JavaScript API

// Get playlist data
const playlist = await window.FairShareSDK.getLibrary("playlist-slug-or-id");

console.log('Playlist name:', playlist.name);
console.log('Media items:', playlist.media.length);
  • getLibrary — Get playlist data programmatically
  • Media — Display individual media items