Invio regalo digitale - Regala prodotti virtuali e link di download a un amico
Permetti ai tuoi clienti di acquistare un prodotto digitale per qualcun altro. Quando il carrello contiene solo articoli virtuali o scaricabili, sulla pagina del carrello compare l'opzione invia questo ordine come regalo; il cliente inserisce l'indirizzo di un amico e il link di download parte via e-mail non appena l'ordine risulta pagato. Nessuna fattura, nessun prezzo, nessun dettaglio dell'ordine: solo il file. La pagina dell'ordine mostra a chi è andato il regalo e se è arrivato davvero, con reinvio in un clic quando non è successo. Nessun override del core. Per PrestaShop 1.7 – 9.
Il caso d'uso regalo che manca già al tuo catalogo digitale
Qualcuno vuole comprare il tuo e-book, il tuo sample pack, il tuo corso o la tua chiave di licenza per un amico. Oggi ha due strade: acquistarlo, scaricarlo e inoltrare il file a mano, oppure rinunciare del tutto. Questo modulo colma il vuoto con una sola casella sulla pagina del carrello e senza aggiungere passaggi al checkout.
Un'opzione sola, esattamente dove serve
Quando ogni articolo del carrello è virtuale o scaricabile, nel carrello compare l'opzione Invia questo ordine come regalo a un amico. Selezionandola si apre un campo e-mail; la preferenza viene salvata all'istante in background, senza ricaricare la pagina. Il cliente completa poi il checkout esattamente come sempre: nulla viene aggiunto al tuo flusso d'acquisto e un breve promemoria in sola lettura durante il checkout conferma a chi è destinato il regalo, con un link Modifica che riporta al carrello.
Nei carrelli misti l'opzione non compare affatto. È una scelta voluta: un articolo fisico non si può regalare via e-mail e regalare mezzo ordine creerebbe solo confusione.
All'amico arriva il file, non la ricevuta
Quando l'ordine raggiunge per la prima volta uno stato pagato o in elaborazione, il modulo invia via e-mail il link (o i link) di download all'indirizzo dell'amico usando il proprio template gift_download_ready. L'amico riceve il download e nient'altro: nessuna fattura, nessun prezzo, nessun riferimento d'ordine, nessun indirizzo. Il cliente conserva come sempre la propria conferma d'ordine.
Vedi con i tuoi occhi se ha funzionato
Nel back office la pagina dell'ordine guadagna un pannello Richiesta regalo: chi è il destinatario, se l'e-mail è stata inviata e un pulsante Reinvia e-mail del regalo per le volte in cui non lo è stata. Indirizzi che rimbalzano e intoppi SMTP capitano; rimediare non dovrebbe significare scavare nei log di posta. La pagina di configurazione elenca anche le 20 richieste regalo più recenti — ordine, data, destinatario, stato Inviato o In attesa — così controlli a colpo d'occhio che tutto giri.
Costruito sugli hook, non sugli override
La versione 1.x installava cinque override di classi core — Cart, Order, OrderHistory, PaymentModule e CheckoutAddressesStep — solo per aggiungere due colonne e infilare qualche riga nel flusso d'ordine. Ogni aggiornamento di PrestaShop era un'occasione per rompere silenziosamente il checkout di tutti gli shop che lo usavano.
La versione 2.0 li elimina tutti e cinque. Le richieste regalo vivono in una tabella dedicata, indicizzate prima per carrello e poi per ordine, e il modulo si aggancia a punti di estensione documentati: actionValidateOrder quando l'ordine viene creato, actionOrderStatusUpdate quando diventa pagabile. Il core non viene toccato, quindi nel core non si può rompere nulla.
Sicurezza e privacy prese sul serio
Il campo che decide dove viene inoltrato un file già pagato è esattamente il tipo di dato che non deve essere falsificabile. Nella 1.x non aveva alcuna protezione CSRF: una richiesta cross-site contraffatta avrebbe potuto dirottare il download del cliente verso l'indirizzo di un malintenzionato. Oggi l'endpoint di salvataggio richiede un token firmato, specifico per carrello, che solo la pagina del modulo è in grado di generare.
L'indirizzo dell'amico è un dato personale di una persona che non è tua cliente, perciò la cancellazione cliente GDPR è già integrata: eliminando un cliente con gli strumenti privacy di PrestaShop spariscono anche le sue richieste regalo.
Un widget che sta al passo con il carrello
La pagina del carrello cambia senza ricaricarsi e l'opzione regalo deve seguirla. Questa ricontrolla l'idoneità quando il tema emette un evento di aggiornamento carrello, resta in ascolto dei diversi nomi di evento usati dai vari temi e ripiega su un controllo periodico per i temi che non ne emettono nessuno, senza mai interrompere un cliente che sta digitando. L'idoneità viene decisa con una lettura diretta e non memorizzata in cache del contenuto del carrello: così un carrello svuotato non continua a mostrare l'opzione e un carrello appena diventato tutto digitale la mostra subito.
Le risposte AJAX del modulo inviano Cache-Control: no-store, e CSS e JavaScript sono inseriti direttamente nel template anziché registrati tramite la pipeline degli asset, perché quella registrazione non produce alcun effetto quando il blocco viene ricaricato via AJAX. Non resta nulla che possa non caricarsi.
Compatibilità
PrestaShop 1.7, 8 e 9, in otto lingue: francese, inglese, italiano, olandese, polacco, spagnolo, tedesco e turco. Nessun override del core, una piccola tabella nel database, tre hook e nessuna modifica al tema. Compatibile con il multistore: l'interruttore Consenti regali è per singolo negozio. L'aggiornamento dalla 1.x rimuove i cinque override e ripulisce le righe di Configuration che la 1.x creava per ogni carrello senza mai cancellarle.
Domande frequenti
Quando riceve l'e-mail l'amico?
La prima volta che l'ordine raggiunge uno stato pagato o in elaborazione. Un ordine fermo su "In attesa di pagamento" non la fa mai partire, ed è proprio questo il punto: nessuno riceve un file che non è stato pagato.
L'amico vede il prezzo o la fattura?
No. L'e-mail del regalo contiene il link (o i link) di download e nient'altro. Nessun prezzo, nessuna fattura, nessun dettaglio dell'ordine.
E un carrello con un prodotto fisico e uno digitale?
L'opzione non compare. Solo i carrelli interamente digitali possono essere regalati, perché un articolo fisico non si consegna via e-mail.
L'e-mail non è mai arrivata: cosa controllo?
Che i regali fossero abilitati al momento dell'ordine, che il carrello fosse tutto digitale, che l'ordine abbia raggiunto uno stato pagato, che il prodotto abbia davvero un file allegato nella scheda Prodotto virtuale e che l'indirizzo non stia filtrando come spam le e-mail del tuo negozio. Poi usa Reinvia e-mail del regalo sull'ordine.
Il cliente può cambiare l'indirizzo dopo il checkout?
Non dal front office, per scelta progettuale: significherebbe mettere mano a un ordine già pagato. Puoi modificarlo tu dalla pagina dell'ordine e reinviare.
Il modulo sovrascrive file del core?
No. La versione 2.0 ha eliminato tutti e cinque gli override della 1.x, sostituendoli con hook e una tabella dedicata.
L'opzione non compare sulla pagina del carrello. Verifica l'impostazione e che il carrello sia interamente digitale. Se entrambe le condizioni sono soddisfatte, quasi sempre è la cache: svuota la cache del negozio dopo l'aggiornamento e assicurati che eventuali CDN o reverse proxy davanti al tuo shop escludano le pagine di carrello, checkout e account.
-
CompatibilitàPrestashop 1.7
Prestashop 8
Prestashop 9 -
Traduzioni del Modulo DisponibiliFrancese
Inglese
Italiano
Olandese
Polacco
Spagnolo
Tedesco
Turco
MEG Venture
4 altri prodotti nella stessa categoria
| Versione | 2.0.7 |
|---|---|
| Ultimo aggiornamento | 2026-07-28 |
| Registro delle modifiche | - [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 |
Commenti (1)
Non è stato possibile inviare il tuo giudizio sulla recensione
Segnala commento
Segnalazione inviata
Non è stato possibile inviare la tua segnalazione