# Smart Offers: documentação completa

> Guia completo das Ofertas combinadas 3.0 para PrestaShop 1.7.8, 8 e 9: os quatro tipos de oferta, o editor com pré-visualização em direto, o banner de produto, o carrinho, as definições, a segurança e os impostos.

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

As Ofertas combinadas permitem-lhe lançar no PrestaShop as quatro promoções combinadas mais comuns: compre X e receba Y do mesmo produto, uma oferta por produtos comprados em conjunto, ofertas à escolha numa seleção e lotes. O módulo adiciona os artigos de recompensa ao carrinho, aplica o desconto e mostra a oferta na página de produto e no carrinho, no PrestaShop 1.7.8, 8 e 9.

**Novidades da 3.0:** desconto à escolha (grátis ou percentagem), adição automática opcional, máximo por carrinho, grupos de clientes, painel com resultados por oferta, editor com pré-visualização em direto, um carrinho que indica o que falta para desbloquear uma oferta e um motor reforçado (uma regra de carrinho por produto com desconto, códigos não reutilizáveis, nunca um desconto duplo).

## Compatibilidade

| Elemento | Suportado |
| --- | --- |
| PrestaShop | 1.7.8, 8.0 a 8.2, 9.0 e posteriores (um único ZIP) |
| PHP | 7.2 ou superior (aplica-se a versão exigida pelo seu PrestaShop) |
| Temas | Classic, Hummingbird e respetivos temas-filho |
| Multiloja, várias moedas, combinações | Sim |
| Idiomas | inglês, francês, espanhol, alemão, italiano, polaco, neerlandês, português |

## Instalação e atualização

1. No back office, abra **Módulos → Gestor de módulos** e clique em **Carregar um módulo**.
2. Largue o ficheiro `dfoffers-3.0.0.zip`.
3. O módulo aparece em **Catálogo → Descontos → Ofertas combinadas**, junto às regras de carrinho.

Atualização a partir da 2.x: carregue o novo ZIP por cima do anterior. As suas ofertas, produtos, traduções e lojas são mantidos. O script de atualização adiciona as novas opções, move a entrada do menu e protege as regras de carrinho já criadas pela 2.x (deixa de ser possível gerar um vale com o valor restante).

## O painel

A página **Ofertas** mostra as ofertas em curso, as encomendas válidas dos últimos 30 dias que usaram uma oferta, a sua receita e o desconto concedido. Cada oferta mostra a sua regra em linguagem simples, o estado (em curso, agendada, terminada, desativada), as datas, as encomendas e o desconto. Pode pesquisar, filtrar por estado, ativar ou desativar com um clique, duplicar, eliminar e aplicar ações em massa.

![Painel de Ofertas combinadas no back office do PrestaShop: ofertas em curso, encomendas, receita e desconto por oferta](https://www.datafirefly.com/wp-content/uploads/2026/11/painel-ofertas-combinadas-prestashop-dfoffers-pt.webp)

Painel de Ofertas combinadas no back office do PrestaShop: ofertas em curso, encomendas, receita e desconto por oferta

## Os quatro tipos de oferta

- **Compre X, receba Y do mesmo produto**: o clássico 1+1 ou 2+1. Cada produto da lista tem a sua própria oferta; deixe «qualquer combinação» para contar todas as variantes em conjunto.
- **Compre produtos em conjunto, receba uma oferta**: todos os produtos ativadores têm de estar no carrinho; os produtos de recompensa ficam então grátis ou com desconto.
- **À escolha numa seleção**: o cliente escolhe N artigos entre produtos ou combinações e os mais baratos ficam grátis ou com desconto (por exemplo, 3 por 2 em todas as canecas).
- **Lote**: por cada lote de X unidades de um produto, o cliente recebe Y unidades de outro produto.

## Criar uma oferta

Clique em **Nova oferta** ou escolha um dos quatro modelos quando ainda não existe nenhuma oferta. O editor tem cinco passos e, à direita, uma **pré-visualização em direto** do banner de produto e um resumo da regra em linguagem simples.

1. **Tipo de oferta**: um dos quatro cartões. Só são mostrados os campos úteis.
2. **Produtos e quantidades**: adicione os produtos com a janela de pesquisa, por nome, referência ou ID. Um produto com combinações pode ser adicionado para todas as combinações ou para uma ou várias.
3. **Recompensa**: grátis (100%) ou percentagem (50 para «o segundo a metade do preço»), adição automática ao carrinho ou não, repetição em cada lote completo, máximo por carrinho.
4. **Apresentação**: nome, texto do selo e texto adicional em cada idioma, cor da oferta. A cor do texto do selo é escolhida automaticamente para continuar legível.
5. **Disponibilidade**: estado, datas de início e fim, prioridade, grupos de clientes e lojas.

![Editor de ofertas com os quatro tipos de oferta e a pré-visualização em direto do banner de produto](https://www.datafirefly.com/wp-content/uploads/2026/11/editor-oferta-compre-x-receba-y-pre-visualizacao-dfoffers-pt.webp)

Editor de ofertas com os quatro tipos de oferta e a pré-visualização em direto do banner de produto

![Pesquisa de produtos do editor de ofertas com escolha de combinações num clique](https://www.datafirefly.com/wp-content/uploads/2026/11/pesquisa-produto-escolha-combinacoes-dfoffers-pt.webp)

Pesquisa de produtos do editor de ofertas com escolha de combinações num clique

Quando os artigos de recompensa não são adicionados automaticamente, o cliente adiciona-os e o desconto aplica-se assim que estão no carrinho; o carrinho lembra-o então da recompensa à espera.

![Produtos, tamanho do lote e definições da recompensa de uma oferta por lote: -50%, adição manual, máximo por carrinho](https://www.datafirefly.com/wp-content/uploads/2026/11/lote-produtos-e-definicoes-recompensa-dfoffers-pt.webp)

Produtos, tamanho do lote e definições da recompensa de uma oferta por lote: -50%, adição manual, máximo por carrinho

O formulário volta a verificar tudo no servidor: os produtos desconhecidos e as combinações de outro produto são descartados e, em caso de erro, tudo o que escreveu é mantido.

## O banner da página de produto

Em cada produto abrangido, um banner explica a oferta com os produtos a comprar e a recompensa, o preço habitual riscado junto aos artigos grátis ou com desconto, a data de fim da oferta e o estado «Aplicada no seu carrinho» assim que o cliente a obtém. Adapta-se a colunas estreitas e ao telemóvel.

![Banner compre 1, leve outro grátis numa página de produto PrestaShop](https://www.datafirefly.com/wp-content/uploads/2026/11/banner-compre-1-leve-2-pagina-produto-dfoffers-pt.webp)

Banner compre 1, leve outro grátis numa página de produto PrestaShop

![Banner 3 por 2 à escolha: o artigo mais barato da seleção é grátis](https://www.datafirefly.com/wp-content/uploads/2026/11/banner-3-por-2-a-escolha-pagina-produto-dfoffers-pt.webp)

Banner 3 por 2 à escolha: o artigo mais barato da seleção é grátis

![Banner de oferta combinada: camisola e almofada compradas, caderno oferecido](https://www.datafirefly.com/wp-content/uploads/2026/11/banner-oferta-conjunto-pagina-produto-dfoffers-pt.webp)

Banner de oferta combinada: camisola e almofada compradas, caderno oferecido

![Banners de ofertas numa página de produto em telemóvel](https://www.datafirefly.com/wp-content/uploads/2026/11/banners-ofertas-pagina-produto-movel-dfoffers-pt.webp)

Banners de ofertas numa página de produto em telemóvel

## O carrinho

Por baixo das linhas do carrinho, o cliente vê as ofertas aplicadas com o valor poupado e os artigos recebidos. Um selo («Grátis ×1», «1 a -50%») assinala as linhas com unidades com desconto, no carrinho e no resumo da encomenda. O bloco atualiza-se após cada alteração de quantidade, tanto no Classic como no Hummingbird.

![Carrinho com três ofertas aplicadas: artigos grátis adicionados, selos nas linhas e poupança por oferta](https://www.datafirefly.com/wp-content/uploads/2026/11/carrinho-ofertas-aplicadas-artigos-gratis-dfoffers-pt.webp)

Carrinho com três ofertas aplicadas: artigos grátis adicionados, selos nas linhas e poupança por oferta

**Está quase** indica o que falta para desbloquear uma oferta («Adicione 1 × T-shirt») e **Tem uma recompensa à sua espera** lembra o cliente de adicionar uma recompensa que não é adicionada automaticamente.

![Avisos do carrinho: o que falta para desbloquear uma oferta e uma recompensa por adicionar](https://www.datafirefly.com/wp-content/uploads/2026/11/carrinho-quase-recompensa-a-espera-dfoffers-pt.webp)

Avisos do carrinho: o que falta para desbloquear uma oferta e uma recompensa por adicionar

Se o cliente remover uma oferta, ela não volta a ser imposta: a promoção fica de parte e aparece um botão **Voltar a adicionar**. Num «compre X, receba Y» do mesmo produto, as unidades removidas são primeiro as grátis: o cliente nunca perde uma unidade paga.

![Oferta removida pelo cliente: o carrinho propõe voltar a adicioná-la](https://www.datafirefly.com/wp-content/uploads/2026/11/carrinho-oferta-removida-voltar-a-adicionar-dfoffers-pt.webp)

Oferta removida pelo cliente: o carrinho propõe voltar a adicioná-la

## Definições

- **Posição do banner**: por baixo do botão Adicionar ao carrinho (recomendado), logo abaixo do preço, por baixo das imagens, no bloco de garantias ou em largura total por baixo da descrição.
- **Banner compacto**, **preços no banner** e **data de fim**.
- **Carrinho**: mostrar o que falta para desbloquear uma oferta, selo nas linhas do carrinho.
- **Registo de depuração**: escreve cada cálculo do carrinho em Parâmetros avançados → Registos; deixe desativado em produção.
- **Manutenção**: número de regras de carrinho criadas pelo módulo e limpeza das de carrinhos abandonados.

![Definições do módulo: posição do banner, modo compacto, preços, data de fim, avisos do carrinho e manutenção das regras](https://www.datafirefly.com/wp-content/uploads/2026/11/definicoes-modulo-ofertas-banner-carrinho-dfoffers-pt.webp)

Definições do módulo: posição do banner, modo compacto, preços, data de fim, avisos do carrinho e manutenção das regras

## Como funciona o motor

1. Em cada alteração do carrinho (e ao abrir o carrinho ou o checkout), o módulo lê o carrinho e distingue as unidades pagas pelo cliente das que ele próprio adicionou.
2. As ofertas são avaliadas por prioridade (1 primeiro). Uma unidade usada por uma oferta não é reutilizada por outra: o mesmo artigo nunca tem desconto duas vezes.
3. Para cada oferta aplicável, as recompensas em falta são adicionadas (se o escolheu) e é criada ou atualizada uma regra de carrinho por produto com desconto (código `DFOFFER_…`).
4. As ofertas que deixam de se aplicar são retiradas: unidades adicionadas retiradas, regras de carrinho eliminadas.

### Segurança e impostos

- Tudo é calculado no servidor a partir do carrinho e das suas ofertas; nada do que o navegador envia entra num preço.
- Cada regra de carrinho está limitada ao produto com desconto: nunca pode exceder o que o cliente tem desse produto no carrinho, e ao desconto aplica-se a taxa de IVA desse produto, também na fatura.
- As regras nunca geram um vale com o valor restante, não aparecem em «Os meus vales» e um código copiado de outro carrinho é removido antes do pagamento.
- Uma recompensa esgotada ou desativada não tem desconto. Uma encomenda já feita nunca é alterada.
- As ações do back office respeitam as permissões do separador por funcionário (ver, adicionar, editar, eliminar).

As regras de carrinho dos carrinhos abandonados há 30 dias são removidas automaticamente uma vez por dia ao abrir o módulo; as usadas numa encomenda são sempre mantidas para a sua contabilidade.

## Ajuda e resolução de problemas

O separador **Ajuda** do módulo explica o funcionamento e responde às perguntas mais frequentes.

- **O banner não aparece**: verifique se a oferta está ativada, dentro das datas, disponível para o grupo de clientes e a loja, e se o produto está ativo. Depois experimente outra posição do banner: alguns temas não chamam todos os hooks.
- **Um dos seus vales é recusado com uma oferta**: um vale definido como «não acumulável com outras regras de carrinho» pode recusar a combinação; ajuste-o em Catálogo → Descontos.
- **Falta o selo nas linhas do carrinho**: o seu tema tem de incluir `{hook h='displayProductPriceBlock' product=$product type="unit_price"}` ou `{hook h='displayCartExtraProductActions' product=$product}` no template da linha do carrinho.

![Ajuda integrada: funcionamento, os quatro tipos de oferta e as perguntas frequentes sobre segurança e impostos](https://www.datafirefly.com/wp-content/uploads/2026/11/ajuda-modulo-ofertas-faq-dfoffers-pt.webp)

Ajuda integrada: funcionamento, os quatro tipos de oferta e as perguntas frequentes sobre segurança e impostos

## Detalhes técnicos

- **Hooks**: displayProductAdditionalInfo (ou a posição escolhida), displayProductPriceBlock, displayAfterProductThumbs, displayReassurance, displayFooterProduct, displayShoppingCartFooter, displayCartExtraProductActions, actionCartSave, actionFrontControllerSetMedia, actionObjectProductDeleteAfter, actionObjectCombinationDeleteAfter.
- **Tabelas**: ps_dfoffers_offer, _offer_lang, _trigger, _reward, _shop, _cart_auto, _rule, _cart_declined.
- **Templates** que pode substituir no seu tema: `views/templates/hook/product-banner.tpl`, `cart-offer.tpl`, `cart-line-gift.tpl`. As classes CSS usam o prefixo `dfoffers-`.
- Sem override, sem tarefa cron, sem serviço externo. A desinstalação elimina as ofertas e as regras de carrinho não usadas; as usadas em encomendas são mantidas.
