# DataFirefly Live Shopping: guia completo

> Apresentação O módulo DataFirefly Live Shopping (dflive) transforma a sua loja PrestaShop numa plataforma de venda por vídeo em direto. Difunde um live, fixa produtos em tempo real, lança ofertas…

- Página: <https://www.datafirefly.com/pt/documentation/dflive/>
- Idioma: pt
- Atualizado em: 2026-09-02
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/dflive/index.md), [en](https://www.datafirefly.com/en/documentation/dflive/index.md), [es](https://www.datafirefly.com/es/documentation/dflive/index.md), [de](https://www.datafirefly.com/de/documentation/dflive/index.md), [it](https://www.datafirefly.com/it/documentation/dflive/index.md), [pl](https://www.datafirefly.com/pl/documentation/dflive/index.md), [nl](https://www.datafirefly.com/nl/documentation/dflive/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Apresentação

O módulo **DataFirefly Live Shopping** (`dflive`) transforma a sua loja PrestaShop numa plataforma de **venda por vídeo em direto**. Difunde um live, fixa produtos em tempo real, lança ofertas relâmpago, os seus clientes adicionam ao carrinho sem sair da emissão, e a sessão fica acessível em replay. Tudo funciona na sua loja: nenhuma plataforma de live shopping de terceiros, nenhuma subscrição recorrente.

Três pilares: um **vídeo nativo** (HLS, MP4 ou embed), um **Estúdio em tempo real** integrado no back-office para comandar o live, e uma **camada de shopping** (fixação de produto, ofertas relâmpago, carrinho nativo, chat, reações, prova social).

**Adaptação para Portugal:** o módulo é entregue com 5 idiomas (FR, EN, ES, DE, IT). O português não está incluído: traduza as cadeias do módulo em **Internacional → Traduções** (tipo «Módulos instalados») antes do primeiro live, caso contrário a interface do espetador e do chat aparecerá em inglês.

## Compatibilidade

- PrestaShop 8.0 a 9.x
- PHP 7.4 a 8.3
- Loja única e multiloja
- Multilingue (5 idiomas incluídos: FR, EN, ES, DE, IT)
- Nenhuma dependência (nem Composer nem framework); o `hls.js` vem incluído no módulo
- Compatível com alojamento partilhado (sincronização por polling AJAX, sem WebSocket nem SFU)

## Pré-requisitos

O módulo gere a **reprodução** do vídeo e toda a camada de shopping, mas é a loja que fornece a **fonte de vídeo**. Consoante o modo escolhido:

- **HLS**: um fluxo `.m3u8` servido pelo seu próprio servidor HLS, pelo Mux ou pelo Cloudflare Stream, alimentado por um codificador como o OBS.
- **MP4**: um URL que aponta para um ficheiro `.mp4` acessível publicamente.
- **Embed**: um live YouTube, Twitch ou Vimeo (URL ou código de incorporação).

Recomenda-se HTTPS: a reprodução automática e o ecrã inteiro comportam-se melhor numa loja servida em HTTPS, o que já é o caso da quase totalidade das lojas em produção.

## Instalação

1. No back-office, abra **Módulos > Gestor de módulos**.
2. Clique em **Instalar um módulo** e selecione o ficheiro `dflive.zip`.
3. Uma vez instalado, abra o menu **Vender > Live Shopping**.

Na instalação, o módulo cria as suas tabelas (sessões, produtos de sessão, mensagens, eventos, presença, lembretes), regista os separadores em **Vender**, adiciona as rotas `/live` e `/live/{id}-{slug}` e ativa o widget da página inicial.

## Criar um live

A partir de **Vender > Live Shopping**, clique em **Adicionar**. O formulário está organizado em separadores:

### Geral

- **Título** e **descrição** do live (multilingue).
- **Apresentador**: nome apresentado como anfitrião no chat e por baixo do vídeo.
- **Data programada**: aciona a contagem decrescente do lado do espetador.
- **Estado**: programado, em direto ou terminado.
- **Imagem de capa**: apresentada antes do live e nas listas.

### Vídeo

- **Tipo de vídeo**: HLS, MP4 ou embed.
- **Fonte de vídeo**: o URL `.m3u8`, o URL `.mp4` ou o URL / código embed consoante o tipo.
- **URL de replay** (opcional): por exemplo a gravação VOD do seu servidor HLS, servida depois do live.

### Produtos

Associe os produtos que serão apresentados durante o live com o seletor de pesquisa AJAX. Esses produtos alimentam o carrossel do lado do espetador e passam a poder ser fixados a partir do Estúdio.

### Opções e SEO

Ative ou não o chat, o chat de convidados, as reações e a prova social para esta sessão, e preencha o título e a descrição SEO da página do live.

## Difundir o fluxo

Para um live em HLS, o princípio é o seguinte:

1. Configure o seu codificador (OBS, por exemplo) para difundir para o seu servidor HLS, Mux ou Cloudflare Stream.
2. Obtenha o URL `.m3u8` de saída e cole-o no campo **Fonte de vídeo** da sessão.
3. Inicie a difusão a partir do seu codificador, abra depois o Estúdio e clique em **Iniciar o live**.

O módulo não o prende a nenhuma infraestrutura: escolhe a sua cadeia de difusão (auto-alojada ou na cloud) e cola simplesmente o URL. Para um teste rápido, basta um ficheiro MP4 ou um embed YouTube / Twitch.

## O Estúdio (régie)

O Estúdio é a sala de controlo integrada no back-office. Abra-o a partir do botão **Estúdio** da lista de lives.

- **Iniciar / Terminar o live**: alterna o estado da sessão. No fim, as ofertas relâmpago em curso são automaticamente limpas.
- **Fixar um produto**: o seu cartão aparece imediatamente em sobreposição para os espetadores. Fixar um produto desafixa automaticamente o anterior.
- **Oferta relâmpago**: introduza um desconto (por exemplo `20%` ou `10€`). O módulo cria um `SpecificPrice` no momento e o preço recalculado aparece instantaneamente do lado dos espetadores. O botão dedicado permite parar a oferta.
- **Anúncio**: difunde uma mensagem do anfitrião fixada no chat.
- **Moderação**: ocultar, mostrar ou fixar qualquer mensagem do chat.
- **Estatísticas em direto**: número de espetadores e de reações em tempo real.

O Estúdio envia eventos (fixação, oferta, anúncio, mudança de estado) que são recolhidos pelos espetadores no ciclo de polling seguinte. O intervalo é configurável nas definições do módulo.

## Do lado do espetador

A página de um live (`/live/{id}-{slug}`) apresenta:

- O **leitor de vídeo** com uma faixa «EM DIRETO» e o número de espetadores.
- O **cartão do produto fixado** em sobreposição, com botão de adicionar ao carrinho.
- O **carrossel de produtos** do live, cada um adicionável ao carrinho nativo do PrestaShop com um clique.
- O **chat** (clientes e, se ativo, convidados) com anti-flood, mensagens do anfitrião e reações de corações animadas.
- Os **toasts de prova social** «Alguém acabou de adicionar…» aquando das adições ao carrinho.

Para uma sessão **programada**, o espetador vê uma contagem decrescente e pode inscrever-se por e-mail para ser avisado do início. Depois do live, a sessão passa a **replay** e continua acessível.

## Definições do módulo

A página de configuração reúne as definições globais, nomeadamente:

- **Intervalo de polling** (3 000 ms por defeito): frequência de atualização do chat e dos eventos.
- **Chat ativo** e **chat de convidados**: autoriza o chat e, se for o caso, a participação dos visitantes sem sessão iniciada.
- **Reações** e **prova social**: ativa os corações e os toasts de adição ao carrinho.
- **Tempo de presença**: duração a partir da qual um espetador inativo deixa de ser contado.
- **Comprimento máximo de uma mensagem** e **anti-flood**: enquadram o chat.
- **Widget da página inicial** e **número de lives apresentados**: comandam o bloco da página inicial.

## Página de lista e widget da página inicial

A página `/live` lista os lives **em curso**, **a decorrer em breve** e os **replays**. O widget da página inicial destaca as sessões ativas e programadas, dentro do limite configurado.

## FAQ e resolução de problemas

### O vídeo não arranca

Verifique o tipo de vídeo e a fonte. Para um fluxo HLS, certifique-se de que o URL `.m3u8` está acessível publicamente e que o seu codificador está a difundir. Para um embed, verifique que o URL YouTube, Twitch ou Vimeo é válido.

### O preço da oferta relâmpago não muda para os espetadores

A oferta é aplicada através de um `SpecificPrice` criado no momento e propagada no ciclo de polling seguinte. Verifique o intervalo de polling e que a oferta não foi já parada. As ofertas em curso são limpas automaticamente no fim do live.

### O chat não aparece ou recusa as minhas mensagens

Confirme que o chat está ativo para a sessão e globalmente. O chat de convidados tem de estar ativo para autorizar os visitantes sem sessão iniciada. O anti-flood impõe um intervalo mínimo entre duas mensagens.

### A contagem decrescente não aparece

A contagem decrescente só aparece para as sessões com o estado **programado** cuja data está no futuro. Verifique o estado e a data programada.

### O módulo funciona em alojamento partilhado?

Sim. A sincronização em tempo real usa polling AJAX, sem servidor WebSocket nem SFU, o que garante a compatibilidade com os alojamentos partilhados correntes.
