Digital Gift Sender - Ofereça Produtos Virtuais e Envie Links de Download a um Amigo
Permita que um cliente compre um produto digital para outra pessoa. Quando o carrinho contém apenas artigos virtuais ou descarregáveis, surge na página do carrinho a opção enviar como presente; o cliente indica o endereço de um amigo e o link de download é enviado por e-mail a esse amigo assim que a encomenda for paga. Sem fatura, sem preço, sem dados da encomenda — apenas o ficheiro. A página da encomenda mostra a quem foi o presente e se chegou mesmo ao destino, com reenvio num só clique quando não chegou. Sem overrides do core. Para PrestaShop 1.7 – 9.
O caso de uso que falta ao seu catálogo digital
Alguém quer comprar o seu e-book, o seu sample pack, o seu curso ou a sua chave de licença para oferecer a um amigo. Hoje, ou compra, descarrega o ficheiro e reencaminha-o à mão, ou simplesmente desiste da compra. Este módulo resolve essa falha com uma única caixa de seleção na página do carrinho e sem qualquer passo adicional na finalização da compra.
Uma opção, exatamente no sítio certo
Quando todos os artigos do carrinho são virtuais ou descarregáveis, aparece no carrinho a opção Enviar esta encomenda como presente a um amigo. Ao ativá-la, surge um campo de e-mail; a preferência é guardada de imediato em segundo plano, sem recarregar a página. O cliente finaliza a compra exatamente como sempre fez — nada é acrescentado ao seu processo de checkout — e um lembrete discreto, apenas de leitura, confirma durante a finalização a quem se destina o presente, com uma ligação Editar de regresso ao carrinho.
Nos carrinhos mistos a opção nem sequer aparece. E é propositado: um artigo físico não pode ser oferecido por e-mail, e oferecer só metade de uma encomenda apenas geraria confusão.
O amigo recebe o ficheiro, não o recibo
Assim que a encomenda atinge pela primeira vez um estado de paga ou em processamento, o módulo envia por e-mail o link ou os links de download para o endereço do amigo, através do seu próprio template gift_download_ready. O que o amigo recebe é o download e mais nada — sem fatura, sem preço, sem referência da encomenda, sem morada. O comprador continua a receber a sua confirmação de encomenda como habitualmente.
Consegue confirmar se resultou
A página da encomenda no back office ganha um painel Pedido de presente: quem é o destinatário, se o e-mail foi enviado e um botão Reenviar e-mail de presente para as vezes em que não foi. Endereços que devolvem a mensagem e falhas de SMTP acontecem; recuperar de uma delas não deveria obrigar a escavar registos de correio. A página de configuração lista ainda os 20 pedidos de presente mais recentes — encomenda, data, destinatário, enviado ou pendente — para ver a funcionalidade a trabalhar num relance.
Construído sobre hooks, não sobre overrides
A versão 1.x incluía cinco overrides completos do core — Cart, Order, OrderHistory, PaymentModule e CheckoutAddressesStep — apenas para acrescentar duas colunas e enxertar meia dúzia de linhas no fluxo da encomenda. Cada atualização do PrestaShop era uma oportunidade para quebrar silenciosamente o checkout de todas as lojas que o utilizavam.
A versão 2.0 elimina os cinco. Os pedidos de presente passam a viver numa tabela própria, indexada pelo carrinho e depois pela encomenda, e o módulo liga-se a pontos de extensão documentados: actionValidateOrder quando a encomenda é criada e actionOrderStatusUpdate quando se torna paga. Nada no core é tocado, logo nada no core se pode partir.
Segurança e privacidade levadas a sério
O campo que decide para onde é reencaminhado um ficheiro já pago é precisamente o tipo de coisa que não pode ser falsificável. Na versão 1.x não tinha qualquer proteção CSRF — um pedido forjado entre sites poderia ter desviado o download do próprio cliente para o endereço de um atacante. O endpoint de gravação exige agora um token assinado por carrinho que só a própria página do módulo consegue produzir.
O endereço do amigo é um dado pessoal de alguém que não é seu cliente, por isso a eliminação de clientes segundo o RGPD está integrada: apagar um cliente através das ferramentas de privacidade do PrestaShop remove com ele os respetivos pedidos de presente.
Um widget que acompanha o carrinho
A página do carrinho muda sem recarregar, e a opção de presente tem de a acompanhar. Esta volta a verificar a elegibilidade quando o tema dispara um evento de atualização do carrinho, escuta os vários nomes de evento que os diferentes temas usam e recorre a uma reverificação periódica nos temas que não disparam nenhum — sem nunca interromper um cliente a meio da escrita. A elegibilidade é decidida por uma leitura direta e sem cache do conteúdo do carrinho, para que um carrinho esvaziado nunca continue a mostrar a opção e um carrinho que acabou de ficar totalmente digital a mostre de imediato.
As respostas AJAX do próprio módulo enviam Cache-Control: no-store, e o seu CSS e JavaScript são incorporados diretamente no template em vez de registados através do pipeline de assets — porque esse registo não faz absolutamente nada quando o bloco é obtido de novo por AJAX. Não fica nada que possa falhar ao carregar.
Compatibilidade
PrestaShop 1.7, 8 e 9, em oito idiomas: alemão, espanhol, francês, inglês, italiano, neerlandês, polaco e turco. Sem overrides do core, uma pequena tabela na base de dados, três hooks e nenhuma alteração ao tema. Compatível com multiloja — o interruptor Permitir oferta é definido por loja. A atualização a partir da versão 1.x remove os cinco overrides e limpa as linhas de Configuration que a 1.x criava por carrinho e nunca eliminava.
Perguntas frequentes
Quando é que o amigo recebe o e-mail?
Na primeira vez que a encomenda atinge um estado de paga ou em processamento. Uma encomenda parada em "Aguarda pagamento" nunca o desencadeia, e é mesmo esse o objetivo — ninguém recebe um ficheiro que não foi pago.
O amigo vê o preço ou a fatura?
Não. O e-mail de presente contém o link ou os links de download e mais nada. Sem preço, sem fatura, sem dados da encomenda.
E um carrinho com um produto físico e outro digital?
A opção não aparece. Só os carrinhos totalmente digitais podem ser oferecidos, porque um artigo físico não pode ser entregue por e-mail.
O e-mail nunca chegou — o que devo verificar?
Que a oferta estava ativa quando a encomenda foi criada, que o carrinho era totalmente digital, que a encomenda atingiu um estado de paga, que o produto tem mesmo um ficheiro associado no separador Produto virtual e que o endereço não está a filtrar a sua loja como spam. Depois, use Reenviar e-mail de presente na encomenda.
O cliente pode alterar o endereço depois de finalizar a compra?
A partir da loja não, por decisão de design — implicaria mexer numa encomenda já paga. Pode alterá-lo na página da encomenda e reenviar.
O módulo substitui algum ficheiro do core?
Não. A versão 2.0 eliminou os cinco overrides que a 1.x incluía e substituiu-os por hooks e por uma tabela própria.
A opção não aparece na página do carrinho. Verifique a definição e confirme que o carrinho é inteiramente digital. Se ambos estiverem corretos, é quase sempre cache — limpe a cache da loja depois de atualizar e certifique-se de que qualquer CDN ou proxy inverso à frente da sua loja exclui as páginas de carrinho, finalização de compra e conta.
-
CompatibilidadePrestashop 1.7
Prestashop 8
Prestashop 9 -
Traduções Disponíveis do MóduloAlemão
Espanhol
Francês
Inglês
Italiano
Neerlandês
Polonês
Turco
MEG Venture
4 other products in the same category
| Versão | 2.0.7 |
|---|---|
| Última atualização | 2026-07-28 |
| Registo de alterações | - [2026-07-26] Slow the cart widget's fallback poll and pause it on hidden tabs - [2026-07-24] Add translations for gift file to friend module in Italian, Dutch, Polish, and Turkish - [2026-07-23] Translate giftfiletofriend module strings to Dutch, Polish, and Turkish for improved localization. - [2026-07-23] Translate module messages to English in multiple language files for the Digital Gift Sender module, ensuring consistency in terminology and improving user experience. Updated phrases include settings confirmation, order status, and troubleshooting instructions across French, Italian, Dutch, Polish, and Turkish translations. - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add missing translation files (fr, de, pl, nl, tr, it, es) - [2026-07-12] Update version to 2.0.6, fix cart-page widget bugs, inline CSS/JS for reliability, and enhance AJAX handling - [2026-07-12] Update version to 2.0.5, enhance caching mechanisms for cart state accuracy, and improve AJAX response handling - [2026-07-12] Update version to 2.0.4, enhance cart eligibility check, and improve widget auto-refresh functionality - [2026-07-12] Update widget styles and inline CSS for improved rendering in version 2.0.3 - [2026-07-12] Fix gifting eligibility check for non-empty virtual carts and update version to 2.0.2 - [2026-07-12] Update README and enhance gift widget functionality in version 2.0.1 - [2026-07-12] Add gift file to friend module with email notifications - [2026-06-21] Refactor OrderHistory class and add email templates for gift downloads - [2023-09-24] v1.1.4 - [2023-09-06] v1.1.3 - [2022-05-22] v1.1.2 - [2021-12-15] v1.1.1 - [2021-09-10] hookActionCartSave modification - [2021-08-29] v1.1.0 - [2021-08-24] Initial commit |
Comentários (1)
Não é possível enviar a apreciação da sua avaliação.
Denunciar comentário
Denúncia enviada
O seu relatório não pode ser enviado