PS PrestaShop Intermediate

DataFirefly Live Shopping — Complete Guide

Install, configure and run live sales: native video (HLS / MP4 / embed), real-time Studio, flash deals, chat and native cart for PrestaShop 8 and 9.

Updated Module version 1.0.0

Overview

The DataFirefly Live Shopping module (dflive) turns your PrestaShop store into a live video selling platform. You broadcast a live show, pin products in real time, launch flash deals, let customers add to cart without leaving the broadcast, and the session stays available as a replay. Everything runs on your store: no third-party live shopping platform, no recurring subscription.

Three pillars: native video (HLS, MP4 or embed), a real-time Studio built into the back office to drive the live, and a shopping layer (product pinning, flash deals, native cart, chat, reactions, social proof).

Compatibility

  • PrestaShop 8.0 to 9.x
  • PHP 7.4 to 8.3
  • Single-store and multistore
  • Multilingual (5 languages included: FR, EN, ES, DE, IT)
  • No dependency (no Composer, no framework); hls.js is bundled into the module
  • Shared-hosting compatible (real-time sync via AJAX polling, no WebSocket or SFU)

Requirements

The module handles video playback and the entire shopping layer, but you provide the video source. Depending on the chosen mode:

  • HLS: an .m3u8 stream served by your own HLS server, by Mux or by Cloudflare Stream, fed by an encoder such as OBS.
  • MP4: a URL pointing to a publicly accessible .mp4 file.
  • Embed: a YouTube, Twitch or Vimeo live (URL or embed code).

HTTPS is recommended: autoplay and fullscreen behave better on a store served over HTTPS, which nearly all production stores already use.

Installation

  1. In the back office, open Modules > Module Manager.
  2. Click Upload a module and select the dflive.zip file.
  3. Once installed, open the Sell > Live Shopping menu.

On installation, the module creates its tables (sessions, session products, messages, events, presence, reminders), registers the tabs under Sell, adds the /live and /live/{id}-{slug} routes, and enables the homepage widget.

Creating a live

From Sell > Live Shopping, click Add. The form is organized into tabs:

General

  • Title and description of the live (multilingual).
  • Host: name shown as the host in the chat and under the video.
  • Scheduled date: triggers the viewer-side countdown.
  • Status: scheduled, live or ended.
  • Cover image: shown before the live and in listings.

Video

  • Video type: HLS, MP4 or embed.
  • Video source: the .m3u8 URL, the .mp4 URL or the embed URL / code depending on the type.
  • Replay URL (optional): for example the VOD recording from your HLS server, served after the live.

Products

Associate the products that will be presented during the live using the AJAX-search picker. These products feed the viewer-side rail and become pinnable from the Studio.

Options & SEO

Enable or disable the chat, guest chat, reactions and social proof for this session, and set the SEO title and description of the live page.

Broadcasting the stream

For an HLS live, the principle is as follows:

  1. Configure your encoder (OBS, for example) to stream to your HLS server, Mux or Cloudflare Stream.
  2. Retrieve the output .m3u8 URL and paste it into the session’s Video source field.
  3. Start broadcasting from your encoder, then open the Studio and click Go live.

The module locks you into no infrastructure: you choose your broadcasting chain (self-hosted or cloud) and simply paste the URL. For a quick test, an MP4 file or a YouTube / Twitch embed is enough.

The Studio (control room)

The Studio is the control room built into the back office. Open it from the Studio button in the lives list.

  • Go live / End live: toggles the session status. When it ends, running flash deals are cleaned up automatically.
  • Pin a product: its card appears immediately as an overlay for viewers. Pinning a product automatically unpins the previous one.
  • Flash deal: enter a discount (for example 20% or 10€). The module creates a SpecificPrice on the fly and the recalculated price appears instantly for viewers. A dedicated button stops the deal.
  • Announcement: broadcasts a pinned host message in the chat.
  • Moderation: hide, show or pin any chat message.
  • Live stats: viewer and reaction counts in real time.

The Studio pushes events (pinning, deal, announcement, status change) that viewers pick up on the next polling cycle. The interval is configurable in the module settings.

Viewer side

A live page (/live/{id}-{slug}) presents:

  • The video player with a “LIVE” banner and the viewer count.
  • The pinned product card as an overlay, with an add-to-cart button.
  • The live product rail, each product addable to the native PrestaShop cart in one click.
  • The chat (customers and, if enabled, guests) with anti-flood, host messages and animated heart reactions.
  • The social-proof toasts “Someone just added…” on add-to-cart actions.

For a scheduled session, the viewer sees a countdown and can sign up by e-mail to be notified when it starts. After the live, the session switches to replay and stays accessible.

Module settings

The configuration page gathers the global settings, in particular:

  • Polling interval (3,000 ms by default): refresh rate of the chat and events.
  • Chat enabled and guest chat: allow the chat and, where applicable, participation by logged-out visitors.
  • Reactions and social proof: enable the hearts and the add-to-cart toasts.
  • Presence timeout: duration after which an inactive viewer is no longer counted.
  • Maximum message length and anti-flood: frame the chat.
  • Homepage widget and number of lives shown: drive the homepage block.

Listing page and homepage widget

The /live page lists live, upcoming and replay sessions. The homepage widget highlights active and scheduled sessions, up to the configured limit.

FAQ and troubleshooting

The video does not start

Check the video type and source. For an HLS stream, make sure the .m3u8 URL is publicly accessible and that your encoder is actually broadcasting. For an embed, check that the YouTube, Twitch or Vimeo URL is valid.

The flash deal price does not change for viewers

The deal is applied via a SpecificPrice created on the fly and propagated on the next polling cycle. Check the polling interval and that the deal has not already been stopped. Running deals are cleaned up automatically when the live ends.

The chat does not appear or rejects my messages

Make sure the chat is enabled for the session and globally. Guest chat must be enabled to allow logged-out visitors. Anti-flood enforces a minimum delay between two messages.

The countdown does not show

The countdown only appears for sessions with the scheduled status whose date is in the future. Check the status and the scheduled date.

Does the module work on shared hosting?

Yes. Real-time sync uses AJAX polling, with no WebSocket server or SFU, which guarantees compatibility with common shared hosting.

Was this page helpful?

Still stuck? Contact support