PS PrestaShop Intermedio

Caricamento ricetta medica e convalida del farmacista su PrestaShop: documentazione

Installare il modulo, definire i prodotti regolamentati, impostare il flusso e gestire ricette, messaggi e codici QR nel back office.

Aggiornato Versione del modulo 1.2.0

Come funziona

Decidi tu quali prodotti sono regolamentati. Quando un cliente ne aggiunge uno al carrello, sotto il carrello compare il blocco «Ricetta e convalida del farmacista». Il cliente vi carica la ricetta e ordina. L’ordine resta nello stato In attesa di convalida del farmacista finché il farmacista non decide nel back office. I documenti sono cifrati sul tuo server e non vengono mai serviti direttamente dal server web.

  • Ricetta obbligatoria: bisogna caricare un documento prima di ordinare.
  • Verifica del farmacista: nessun documento richiesto, ma l’ordine viene controllato prima della spedizione.
  • Vendita libera: nessuna convalida, si applica solo la quantità massima per ordine. Su un prodotto, questa modalità lo esclude anche dalla regola della sua categoria.

La vendita online dei farmaci con obbligo di ricetta non è consentita in diversi paesi, tra cui Italia e Francia, e una ricetta contiene dati sanitari. Il modulo fornisce gli strumenti tecnici; l’autorizzazione alla vendita e l’hosting restano sotto la tua responsabilità.

Requisiti

  • PrestaShop da 8.0 a 9.x.
  • Estensione PHP openssl (verificata all’installazione).
  • Un cron orario, consigliato per promemoria, avvisi ed eliminazione.
  • HTTPS sul negozio.

Installazione

  1. In Moduli > Gestione moduli, clicca su Carica un modulo e invia lo ZIP.
  2. Il modulo crea lo stato ordine In attesa di convalida del farmacista, la cartella di archiviazione cifrata e due menu: Ordini > Ricette e Ordini > Regole ricetta.
  3. Apri la configurazione del modulo: il pannello Stato indica se la cartella di archiviazione è pronta e protetta dall’accesso diretto.

Definire i prodotti regolamentati

Menu Ordini > Regole ricetta, pulsante Aggiungi una regola:

  • Si applica a: un prodotto (ricerca per nome, riferimento, EAN o ID) o una categoria con le sue sottocategorie.
  • Modalità: ricetta obbligatoria, verifica del farmacista o vendita libera.
  • Quantità massima per ordine: per prodotto, tutte le combinazioni sommate. Oltre questa soglia il checkout è bloccato. 0 significa nessun limite.

Una regola prodotto prevale sempre sulle regole di categoria. Se un prodotto appartiene a più categorie regolamentate, «Ricetta obbligatoria» prevale su «Verifica del farmacista» e si applica la quantità massima più bassa.

La regola di un prodotto si imposta anche dalla scheda Moduli della pagina prodotto. Viene salvata subito, senza salvare il prodotto.

Impostazioni del modulo

Flusso di convalida

  • Dopo l’ordine (predefinito): il cliente paga, poi l’ordine attende la convalida. Un rifiuto comporta il rimborso del cliente dalla pagina dell’ordine.
  • Prima del pagamento: il cliente connesso invia il carrello al farmacista e può pagare solo dopo la convalida. Se il carrello cambia dopo, va inviato di nuovo.

Documenti

  • Tipi accettati: PDF, JPEG, PNG, WebP. Il tipo reale viene controllato dalla firma del file, e i PDF con JavaScript, azioni di avvio o allegati vengono rifiutati.
  • Dimensione massima (8 MB per impostazione predefinita) e numero massimo di file per richiesta (5 per impostazione predefinita).
  • Riutilizzo delle ricette convalidate: un cliente connesso può allegare una ricetta già convalidata a un nuovo carrello fino alla data di validità.
  • Validità predefinita (90 giorni): precompilata nel modulo di convalida.
  • Testo del consenso, per lingua: il cliente deve spuntare la casella prima di ogni invio.

Questionario sanitario

Se attivo, chiede il paziente (sé o un’altra persona), età, peso, altezza, sesso, gravidanza o allattamento, allergie, terapie in corso e anamnesi. Il checkout attende le risposte. Vengono cifrate e precompilate all’ordine successivo per un cliente connesso.

Promemoria e termini

  • Promemoria al cliente (2 giorni): email quando il cliente non ha risposto a una richiesta di informazioni.
  • Annullamento automatico (10 giorni): la richiesta viene rifiutata con il motivo «Nessuna risposta dal cliente».
  • Avviso al farmacista (24 ore): riepilogo delle richieste e dei messaggi dei clienti in attesa oltre il termine.

0 disattiva ogni funzione.

Notifiche e stati

  • Email di notifica al farmacista: uno o più indirizzi separati da virgole.
  • Stato degli ordini rifiutati: Annullato per impostazione predefinita, che ripristina le giacenze.
  • Risposte salvate: una per riga e per lingua, inserite con un clic in un messaggio o in una decisione.

Archiviazione e conservazione

  • Cartella di archiviazione: var/dfprescription/ per impostazione predefinita. Si consiglia un percorso assoluto fuori dalla root web. Non si può più cambiare una volta archiviati dei documenti.
  • Conservazione dei documenti (365 giorni): i file vengono eliminati dopo questo periodo, tranne per le richieste in corso e le ricette ancora valide. Metadati e registro di controllo vengono conservati.

Percorso del cliente

  1. La scheda prodotto mostra un badge: ricetta obbligatoria, verifica del farmacista o limite per ordine.
  2. Nel carrello il cliente trascina i documenti o scatta una foto con il telefono, spunta il consenso, compila il questionario se serve e può lasciare una nota al farmacista.
  3. Finché manca qualcosa, i link al checkout sono disattivati e l’accesso diretto alla pagina dell’ordine riporta al carrello con un messaggio.
  4. Dopo l’ordine, la pagina di conferma, il dettaglio dell’ordine e la pagina Le mie ricette dell’account mostrano lo stato della richiesta. Gli ospiti seguono la richiesta tramite un link privato ricevuto via email.

Gestire una richiesta

Menu Ordini > Ricette. L’elenco mostra lo stato, il numero di documenti e i messaggi non letti, con contatori in alto. La scheda di una richiesta raccoglie:

  • i documenti in un visualizzatore (PDF integrato, immagini con rotazione e zoom), con apertura e download;
  • il cliente, l’ordine o gli ordini, i prodotti interessati e la loro regola;
  • le risposte al questionario sanitario, con i punti di rischio evidenziati;
  • il thread di messaggi con il cliente;
  • il modulo di decisione e il registro di controllo.

Decidere

  • Convalida: imposta la data di validità della ricetta. L’ordine riprende lo stato che aveva prima dell’attesa, ad esempio Pagamento accettato.
  • Richiedi informazioni: il messaggio è obbligatorio. Il cliente riceve un’email e risponde dal proprio account o dal link privato.
  • Rifiuta: scegli un motivo. L’ordine passa allo stato configurato per i rifiuti.

Il nome del farmacista e il suo numero professionale vengono salvati con ogni decisione e memorizzati per il dipendente. A ogni richiesta si può aggiungere una nota interna, mai visibile al cliente.

Se un modulo di pagamento cambia lo stato di un ordine in attesa (ad esempio un webhook di pagamento), il modulo memorizza quello stato e rimette l’ordine in attesa. Una modifica manuale di un dipendente viene rispettata e registrata.

Messaggistica cliente ↔ farmacista

Ogni richiesta ha il suo thread di messaggi, cifrato come i documenti. Il farmacista risponde dalla scheda della richiesta, inserendo se vuole una risposta salvata. Il cliente riceve il testo via email e risponde da Le mie ricette. Il farmacista riceve un’email senza il testo del messaggio, solo con un link alla richiesta. Il cliente può inviare al massimo 20 messaggi al giorno per richiesta.

Codice QR delle ricette elettroniche

All’apertura di una richiesta, il codice QR di ogni documento viene letto nel tuo browser, dalle immagini e dalle prime 3 pagine dei PDF. Il blocco Codice QR della ricetta elettronica mostra:

  • l’identificativo rilevato e il contenuto completo del codice QR;
  • un avviso se la stessa ricetta è già stata inviata in un’altra richiesta del negozio, con l’indicazione «altro cliente» se è il caso;
  • un campo per inserire il numero a mano se il codice QR è illeggibile, e un pulsante per rileggerlo.

Solo un software di farmacia certificato può interrogare i servizi ufficiali della ricetta elettronica. Il modulo prepara la verifica e rileva i riutilizzi; il farmacista controlla poi l’identificativo nel proprio software.

Attività pianificata

La configurazione del modulo mostra l’URL del cron. Chiamalo ogni ora:

0 * * * * curl -s "https://tuo-negozio.it/module/dfprescription/cron?key=TUA_CHIAVE" >/dev/null

Invia promemoria e avvisi, annulla le richieste senza risposta ed elimina i file scaduti. Senza cron, queste attività vengono eseguite al massimo una volta all’ora all’apertura della pagina Ricette.

Sicurezza e conformità

  • Cifratura AES-256-GCM di documenti, risposte al questionario, messaggi e contenuto dei codici QR. La chiave deriva da un segreto del modulo e dal _COOKIE_KEY_ del negozio.
  • Registro di controllo di ogni caricamento, visualizzazione, download, messaggio e decisione, con indirizzo IP.
  • Esportazione CSV del registro da Ordini > Ricette (pulsante Esporta il registro), senza documenti né risposte sanitarie.
  • Compatibile con il modulo GDPR ufficiale: l’esportazione dei dati del cliente include le richieste, e l’eliminazione di un cliente cancella documenti e messaggi.

In caso di migrazione, conserva il _COOKIE_KEY_ del negozio e il valore di configurazione DFPRESCRIPTION_KEY. Senza uno dei due, i documenti archiviati non possono più essere decifrati.

Risoluzione dei problemi

Il pannello Stato indica che la cartella è raggiungibile dal web

I file restano cifrati, ma nginx ignora il file .htaccess. Aggiungi una regola deny all sulla cartella o scegli una cartella fuori dalla root web.

Il cliente non vede il blocco ricetta

Verifica che una regola copra il prodotto o una delle sue categorie, e che il tuo tema mostri l’hook displayShoppingCartFooter nella pagina del carrello.

Il codice QR non viene letto

Il codice QR deve essere nitido e interamente visibile. Usa Rileggi dopo aver ricevuto una foto migliore, oppure inserisci a mano il numero di ricetta.

Disinstallazione

La disinstallazione elimina definitivamente tutti i documenti archiviati e le tabelle del modulo. Lo stato ordine dedicato viene nascosto ma conservato per lo storico degli ordini. Esporta il registro prima di disinstallare se devi conservarne traccia.

Questa pagina ti è stata utile?

Ancora bloccato? Contatta l'assistenza