LiSA Social Commerce
Developers
Developers
  • Developers
  • Guides
    • Integration Guide
      • Web Integration
      • App Integration
        • Android
          • Communication
          • Storage
          • File Downloads
          • Theming
        • iOS
          • Communication
          • Storage
          • File Downloads
          • Theming
        • React Native
          • Communication
          • Storage
          • File Downloads
          • Theming
        • Picture in Picture
      • Entrypoints
        • Query Parameter (v1)
    • Player Communication
      • Message API Reference
        • App
          • App — Heartbeat
          • App — Message Acknowledge
          • App — Message Error
          • App — Listen
        • CTA
          • CTA — Link in Comments
          • CTA — Sponsor Badge
        • Cart — View Cart
        • Comments — Join
        • Media
          • Media — Complete
          • Media — Pause
          • Media — Progress
          • Media — Resume
        • Media Item
          • Media Item — Emoji
          • Media Item — Impression
        • Player
          • Player — Dismiss
          • Player — Native Picture-in-Picture (PiP)
          • Player — Pass Visual Viewport
          • Player — Request Visual Viewport
          • Player — UI Transition
        • Products
          • Products — Add to Cart
          • Products — Add to Wishlist
          • Products — Click
          • Products — Close Product List
          • Products — Emoji
          • Products — Emoji State Update
          • Products — Impression
          • Products — Open Product List
        • Stickers
          • Stickers — Activate
          • Stickers — Click
          • Stickers — Expire
          • Stickers — Impression
          • Stickers — Publish
          • Stickers — Unlock
          • Stickers — Unpublish
          • Stickers — Update
          • Stickers — Voucher Claim
        • Visitor — Pass User Context
        • Shared Legacy Message Properties
    • Products
      • Product Update Notification API
  • Widgets
    • Content Hub
    • Quick Start Guide
    • Appearance
      • Markup
      • Responsive design
    • Configuration options
      • Autoplay
      • Channel
      • Client
      • Data
      • Debug
      • Host node
      • Layout
      • Language
      • On
      • Player
      • Query string
      • Quick view
      • Sections
      • Store
      • Template
    • API reference
      • Library API reference
      • Player API reference
      • Quick View API reference
    • Customisations
      • Template
      • Bring your own template
      • Type definitions
    • Examples
    • Type definitions
      • Asset
      • Product
      • Other
    • Promo Widget
      • Quick Start Guide
      • Configuration options
        • Autoplay
        • Channel
        • Countdown (deprecated)
        • Enabled
        • Image modifier
        • Lead time
        • Live (deprecated)
        • Position
        • Replay (deprecated)
        • Show ID
        • URL
  • Media Player Introduction
    • Picture-in-Picture Mode
  • Analytics
  • REST API
    • Authentication
    • Rate limits
    • Response status and error codes
    • API Documentation
Powered by GitBook
On this page
  • Events
  • Methods
  • Type definitions
  1. Widgets
  2. API reference

Player API reference

Events

Listed below are all the events emitted by the LiSA player. Use .on() to register event listeners to each of these events.

library.player.Event.CART_VIEW

User clicks the shopping cart CTA.

Parameters:

url — The shopping cart URL.

Usage example:

player.on(player.Event.CART_VIEW, (url) => {
  // Open the shopping cart in the quick view component
  library.quickView.show(url);
});

library.player.Event.CLOSE

The player has been closed.

Usage example:

player.on(player.Event.CLOSE, () => {
  console.log('Player closed');
});

library.player.Event.ERROR

The player threw an error.

Parameters:

type — An error type indicator. message — The error message.

Usage example:

player.on(player.Event.ERROR, (type, message) => {
  console.log(`Error of type ${type} with message ${message}`);
});

library.player.Event.OPEN

The player has been opened.

Parameters:

showId — The identifier of the show that has been loaded.

Usage example:

player.on(player.Event.OPEN, (showId) => {
  console.log(`Show ${showId} is playing`);
});

library.player.Event.READY

LiSA player is ready for communication.

Usage example:

player.on(player.Event.READY, () => {
  player.joinUser({ id: 'f24f8c5f-e500-44db-a095-3781246100e9', name: 'John Doe' });
});

library.player.Event.PRODUCT_ADD_TO_CART

User adds a product to the shopping cart

Parameters:

data — An object providing the products identifier (id) and action. action can either be a product URL (to open its PDP) or a serialized JSON structure required for executing the desired event action. Type definition at the end of this document.

first — Indicator, whether it is the first time this event is triggered for the respective product.

product — The Product data.

Usage example:

player.on(player.Event.PRODUCT_ADD_TO_CART, (data, first, product) => {
  addToCart(product.origin.id);
});

library.player.Event.PRODUCT_GRANT_REACTION

User "likes" a product.

Parameters:

data — An object providing the products identifier (id) and action. action can either be a product URL (to open its PDP) or a serialized JSON structure required for executing the desired event action. Type definition at the end of this document.

first — Indicator, whether it is the first time this event is triggered for the respective product.

product — The Product data.

Usage example:

player.on(player.Event.PRODUCT_GRANT_REACTION, (data, first, product) => {
  addToWishList(product.origin.id);
});

library.player.Event.PRODUCT_REVOKE_REACTION

User "unlikes" a product.

Parameters:

data — An object providing the products identifier (id) and action. action can either be a product URL (to open its PDP) or a serialized JSON structure required for executing the desired event action. Type definition at the end of this document.

first — Indicator, whether it is the first time this event is triggered for the respective product.

product — The Product data.

Usage example:

player.on(player.Event.PRODUCT_REVOKE_REACTION, (data, first, product) => {
  removeFromWishList(product.origin.id);
});

library.player.Event.PRODUCT_VIEW

User clicks a product card to see its details.

Parameters:

data — An object providing the products identifier (id) and action. action can either be a product URL (to open its PDP) or a serialized JSON structure required for executing the desired event action. Type definition at the end of this document. first — Indicator, whether it is the first time this event is triggered for the respective product. product — The Product data.

Usage example:

player.on(player.Event.PRODUCT_VIEW, (data, first, product) => {
  // data action contains the product URL in this example
  library.quickView.show(data.action);
});

library.player.Event.SHOW_READY

The show has finished initialisation.

Parameters:

data — An object providing show related data and a map of products featured in the show. Type definition at the end of this document.

Usage example:

// Check, if any of the products that are featured in the show, is already
// on the user's wish list and invoke LiSA player's like product option.
player.on(player.Event.SHOW_READY, (data) => {
  Object.keys(data.products).forEach((id) => {
    if (wishListContains(id)) {
      player.grantLike(data.products[id]);
    }
  });
});

Methods

This section lists the public methods the LiSA player object exposes.

grantLike(input: CarouselItemInput)

Pre-fill the heart (or any other reaction icon) on a product carousel item. This can be useful, if you integrate the carousel item reaction feature with your wish list or favorites. LiSA does not store user data including product likes granted during a show. In order for you to reflect the current users wish list or favorites with the products featured in a show, grantLike helps pre-filling the reaction icon.

player.grantLike({
  id: '7df0f4f8-3b85-4b2c-80af-e6d7b1bf604a',
  type: 'product',
});

joinUser(input: UserJoinInput)

In case your storefront or website context provides access to profile data of authenticated users, you can pass a user's profile data to the LiSA player. This enables you to re-use the user's data for a more seamless user experience, e.g. displaying a user's avatar in the chat or using his name as chat handle. joinUser(input: UserJoinInput)

In case your storefront or website context provides access to profile data of authenticated users, you can pass a user's profile data to the LiSA player. This enables you to re-use the user's data for a more seamless user experience, e.g. displaying a user's avatar in the chat or using his name as chat handle.

player.joinUser({
  avatar: 'https://your-cdn.net/path/to/avatar.png',
  consent: true, // User must declare consent to chat disclaimer
  editable: false, // User may not edit their user name when joining the chat
  id: '7df0f4f8-3b85-4b2c-80af-e6d7b1bf604a',
  name: 'Jane Doe',
});

maximize()

When the LiSA player is minimized, invoke this method to maximize it again.

Usage example:

player.maximize();

minimize()

Minimizes the LiSA player.

Usage example:

player.minimize();

off(event: string, handler: () => void)

Removes a previously registered event listener from receiving any more events.

Parameters

event — A string which specifies the type of event for which to remove an event listener.

handler — The event listener function of the event handler to remove from the LiSA player.

The event listener function of the event handler must be the same as at the time of registration. Using .bind() changes the function reference.

Calling off() with arguments that do not identify any currently registered event listener on the LiSA player has no effect.

Usage example:

const handler = (err) => {
  console.error('Player threw error', err);
};

// Register the event handler
player.on(player.Event.ERROR, handler);

// Remove the event handler again
player.off(player.Event.ERROR, handler);

on(event: string, handler)

Registeres an event handler for any of the events listed above.

Usage example:

// Launch the quick view upon a product view event
player.on(player.Event.PRODUCT_VIEW, (payload, first, product) => {
  library.quickView.show(payload.action));
});

removeAllListeners(event: string)

Remove all event listeners previously registered to the LiSA player.

Usage example:

player.on(player.Event.CART_VIEW, (url) => console.log('View cart', url));

player.on(player.Event.OPEN, () => console.log('Player open'));

// Prevent all listeners from being invoked
player.removeAllListeners();

revokeLike(input: CarouselItemInput)

Oppsite of grantLike.

player.revokeLike({
  id: '7df0f4f8-3b85-4b2c-80af-e6d7b1bf604a',
  type: 'product',
});

Type definitions

Product event data

type ProductEventData = {
    /**
     * The value from a product's URL.
     * 
     * Depending on the implementation of processing LiSA product events, a
     * product's URL can either be a regular URL or a JSON object containing
     * implementation specific data.
     */
    action: Record<string,string> | string;
    /**
     * The original product id.
     */
    id: string;
    /**
     * The original product variant id, if available.
     */
    variantId?: string;
};

Show event data

type ShowEventData = {
    /**
     * A map of products featured in the show.
     * 
     * The key represents the original product ID, while value is the LiSA
     * internal product id.
     */
    products: { [key: string]: string };
    /**
     * The date of the current show in ISO 8601 format.
     * 
     * Example: "2022-09-20T07:50:00.000Z"
     */
    showDate?: string;
    /**
     * The ID of the current show.
     * 
     * Example: "23bd8b82-b89a-475d-bc56-6050a4ef9ca9"
     */
    showId?: string;
    /**
     * The state of the current show.
     * 
     * Example: "replay"
     */
    showState?: 'live' | 'postShow' | 'preShow' | 'replay';
    /**
     * The title of the current show.
     *
     * Since the title is a localized field, LiSA will use the viewers browser
     * locale or a language override (either by `language` or `store` query 
     * parameter) to determin the localized value.
     * 
     * Example: "Brushes Masterclass"
     */
    showTitle?: string;
    /**
     * The URL of the current show.
     * 
     * Example: "https://[client].loveslisa.tech/s/23bd8b82-b89a-475d-bc56-6050a4ef9ca9"
     */
    showUrl?: string;
};
PreviousLibrary API referenceNextQuick View API reference

Last updated 1 year ago