PS PrestaShop Mittel

Rezept-Upload und Apothekerfreigabe für PrestaShop: Dokumentation

Modul installieren, regulierte Produkte festlegen, Ablauf einstellen und Rezepte, Nachrichten und QR-Codes im Backoffice bearbeiten.

Aktualisiert Modulversion 1.2.0

Funktionsweise

Sie legen fest, welche Produkte reguliert sind. Legt ein Kunde eines davon in den Warenkorb, erscheint darunter der Bereich „Rezept und Apothekerfreigabe“. Dort lädt der Kunde sein Rezept hoch und bestellt. Die Bestellung bleibt im Status Wartet auf Apothekerfreigabe, bis der Apotheker im Backoffice entscheidet. Die Dokumente werden auf Ihrem Server verschlüsselt und nie direkt vom Webserver ausgeliefert.

  • Rezept erforderlich: Vor der Bestellung muss ein Dokument hochgeladen werden.
  • Apothekerprüfung: Kein Dokument erforderlich, die Bestellung wird aber vor dem Versand geprüft.
  • Freiverkauf: Keine Freigabe, nur die Höchstmenge pro Bestellung gilt. Bei einem Produkt nimmt dieser Modus es außerdem von der Regel seiner Kategorie aus.

Der Onlineverkauf verschreibungspflichtiger Arzneimittel ist je nach Land eingeschränkt oder verboten (in Frankreich zum Beispiel verboten), und ein Rezept enthält Gesundheitsdaten. Das Modul liefert die technischen Werkzeuge; Verkaufsgenehmigung und Hosting bleiben in Ihrer Verantwortung.

Voraussetzungen

  • PrestaShop 8.0 bis 9.x.
  • PHP-Erweiterung openssl (wird bei der Installation geprüft).
  • Ein stündlicher Cronjob, empfohlen für Erinnerungen, Warnungen und Löschung.
  • HTTPS im Shop.

Installation

  1. Klicken Sie unter Module > Modulmanager auf Modul hochladen und senden Sie die ZIP-Datei.
  2. Das Modul legt den Bestellstatus Wartet auf Apothekerfreigabe, den verschlüsselten Speicherordner und zwei Menüs an: Bestellungen > Rezepte und Bestellungen > Rezeptregeln.
  3. Öffnen Sie die Modulkonfiguration: Der Bereich Status zeigt, ob der Speicherordner bereit und gegen direkten Zugriff geschützt ist.

Regulierte Produkte festlegen

Menü Bestellungen > Rezeptregeln, Schaltfläche Regel hinzufügen:

  • Gilt für: ein Produkt (Suche nach Name, Artikelnummer, EAN oder ID) oder eine Kategorie mit ihren Unterkategorien.
  • Modus: Rezept erforderlich, Apothekerprüfung oder Freiverkauf.
  • Höchstmenge pro Bestellung: pro Produkt, alle Varianten zusammen. Darüber ist der Checkout gesperrt. 0 bedeutet keine Grenze.

Eine Produktregel hat immer Vorrang vor Kategorieregeln. Gehört ein Produkt zu mehreren regulierten Kategorien, hat „Rezept erforderlich“ Vorrang vor „Apothekerprüfung“, und die kleinste Höchstmenge gilt.

Die Regel eines Produkts lässt sich auch im Tab Module der Produktseite festlegen. Sie wird sofort gespeichert, ohne das Produkt zu speichern.

Moduleinstellungen

Freigabeablauf

  • Nach der Bestellung (Standard): Der Kunde zahlt, dann wartet die Bestellung auf die Freigabe. Bei einer Ablehnung erstatten Sie den Betrag über die Bestellseite.
  • Vor der Zahlung: Der angemeldete Kunde sendet seinen Warenkorb an den Apotheker und kann erst nach der Freigabe zahlen. Ändert sich der Warenkorb danach, muss er erneut gesendet werden.

Dokumente

  • Akzeptierte Typen: PDF, JPEG, PNG, WebP. Der tatsächliche Typ wird anhand der Dateisignatur geprüft, PDFs mit JavaScript, Startaktionen oder Anhängen werden abgelehnt.
  • Maximale Dateigröße (standardmäßig 8 MB) und maximale Anzahl Dateien pro Anfrage (standardmäßig 5).
  • Wiederverwendung freigegebener Rezepte: Ein angemeldeter Kunde kann ein freigegebenes Rezept bis zu seinem Gültigkeitsdatum einem neuen Warenkorb hinzufügen.
  • Standardgültigkeit (90 Tage): im Freigabeformular vorausgefüllt.
  • Einwilligungstext, pro Sprache: Der Kunde muss das Kästchen vor jedem Upload ankreuzen.

Gesundheitsfragebogen

Ist er aktiviert, fragt er nach dem Patienten (selbst oder eine andere Person), Alter, Gewicht, Größe, Geschlecht, Schwangerschaft oder Stillzeit, Allergien, laufenden Behandlungen und Vorerkrankungen. Der Checkout wartet auf die Antworten. Sie werden verschlüsselt und bei der nächsten Bestellung eines angemeldeten Kunden vorausgefüllt.

Erinnerungen und Fristen

  • Erinnerung an den Kunden (2 Tage): E-Mail, wenn der Kunde eine Informationsanfrage nicht beantwortet hat.
  • Automatische Stornierung (10 Tage): Die Anfrage wird mit dem Grund „Keine Antwort des Kunden“ abgelehnt.
  • Warnung an den Apotheker (24 Stunden): Übersicht der Anfragen und Kundennachrichten, die länger als die Frist warten.

0 deaktiviert die jeweilige Funktion.

Benachrichtigungen und Status

  • Benachrichtigungs-E-Mails für den Apotheker: eine oder mehrere Adressen, durch Kommas getrennt.
  • Status abgelehnter Bestellungen: standardmäßig Storniert, wodurch der Bestand zurückgebucht wird.
  • Gespeicherte Antworten: eine pro Zeile und Sprache, mit einem Klick in eine Nachricht oder Entscheidung eingefügt.

Speicherung und Aufbewahrung

  • Speicherordner: standardmäßig var/dfprescription/. Empfohlen wird ein absoluter Pfad außerhalb des Webroots. Sobald Dokumente gespeichert sind, lässt er sich nicht mehr ändern.
  • Aufbewahrung der Dokumente (365 Tage): Dateien werden nach dieser Frist gelöscht, außer bei laufenden Anfragen und noch gültigen Rezepten. Metadaten und Prüfprotokoll bleiben erhalten.

Ablauf für den Kunden

  1. Die Produktseite zeigt einen Hinweis: Rezept erforderlich, Apothekerprüfung oder Grenze pro Bestellung.
  2. Im Warenkorb zieht der Kunde seine Dokumente hinein oder fotografiert sie mit dem Smartphone, kreuzt die Einwilligung an, füllt bei Bedarf den Fragebogen aus und kann dem Apotheker eine Notiz hinterlassen.
  3. Solange etwas fehlt, sind die Links zum Checkout deaktiviert, und ein direkter Aufruf der Bestellseite führt mit einem Hinweis zurück zum Warenkorb.
  4. Nach der Bestellung zeigen die Bestätigungsseite, die Bestelldetails und die Seite Meine Rezepte im Konto den Status der Anfrage. Gäste verfolgen ihre Anfrage über einen privaten Link per E-Mail.

Eine Anfrage bearbeiten

Menü Bestellungen > Rezepte. Die Liste zeigt Status, Anzahl der Dokumente und ungelesene Nachrichten, mit Zählern oben auf der Seite. Die Anfrageseite enthält:

  • die Dokumente in einem Betrachter (eingebettetes PDF, Bilder mit Drehen und Zoom), mit Öffnen und Herunterladen;
  • den Kunden, die Bestellung bzw. Bestellungen, die betroffenen Produkte und ihre Regel;
  • die Antworten des Gesundheitsfragebogens, Risikopunkte hervorgehoben;
  • den Nachrichtenverlauf mit dem Kunden;
  • das Entscheidungsformular und das Prüfprotokoll.

Entscheiden

  • Freigeben: Legen Sie das Gültigkeitsdatum des Rezepts fest. Die Bestellung erhält den Status zurück, den sie vor dem Zurückhalten hatte, zum Beispiel Zahlung eingegangen.
  • Informationen anfordern: Die Nachricht ist Pflicht. Der Kunde erhält eine E-Mail und antwortet im Konto oder über den privaten Link.
  • Ablehnen: Wählen Sie einen Grund. Die Bestellung wechselt in den für Ablehnungen eingestellten Status.

Name und Kennnummer des Apothekers werden mit jeder Entscheidung gespeichert und für den Mitarbeiter gemerkt. Jede Anfrage kann eine interne Notiz erhalten, die der Kunde nie sieht.

Ändert ein Zahlungsmodul den Status einer zurückgehaltenen Bestellung (etwa per Zahlungs-Webhook), speichert das Modul diesen Status und setzt die Bestellung wieder auf Warten. Eine manuelle Änderung durch einen Mitarbeiter wird respektiert und protokolliert.

Nachrichten zwischen Kunde und Apotheker

Jede Anfrage hat ihren eigenen Nachrichtenverlauf, verschlüsselt wie die Dokumente. Der Apotheker antwortet auf der Anfrageseite und fügt bei Bedarf eine gespeicherte Antwort ein. Der Kunde erhält den Text per E-Mail und antwortet unter Meine Rezepte. Der Apotheker erhält eine E-Mail ohne den Nachrichtentext, nur mit einem Link zur Anfrage. Kunden können pro Anfrage höchstens 20 Nachrichten am Tag senden.

QR-Code von E-Rezepten

Beim Öffnen einer Anfrage wird der QR-Code jedes Dokuments in Ihrem Browser gelesen, aus Bildern und aus den ersten 3 Seiten von PDFs. Der Bereich QR-Code des E-Rezepts zeigt:

  • die erkannte Kennung und den vollständigen Inhalt des QR-Codes;
  • eine Warnung, wenn dasselbe Rezept bereits in einer anderen Anfrage des Shops gesendet wurde, gegebenenfalls mit dem Hinweis „anderer Kunde“;
  • ein Feld für die manuelle Eingabe der Nummer, wenn der QR-Code unlesbar ist, und eine Schaltfläche zum erneuten Lesen.

Nur zertifizierte Apothekensoftware darf die offiziellen E-Rezept-Dienste abfragen. Das Modul bereitet die Prüfung vor und erkennt Mehrfachnutzung; der Apotheker prüft die Kennung anschließend in seiner Software.

Geplante Aufgabe

Die Modulkonfiguration zeigt die Cron-URL. Rufen Sie sie stündlich auf:

0 * * * * curl -s "https://ihr-shop.de/module/dfprescription/cron?key=IHR_SCHLUESSEL" >/dev/null

Sie versendet Erinnerungen und Warnungen, storniert unbeantwortete Anfragen und löscht abgelaufene Dateien. Ohne Cron laufen diese Aufgaben höchstens einmal pro Stunde beim Öffnen der Seite Rezepte.

Sicherheit und Konformität

  • AES-256-GCM-Verschlüsselung von Dokumenten, Fragebogenantworten, Nachrichten und QR-Code-Inhalten. Der Schlüssel wird aus einem Geheimnis des Moduls und dem _COOKIE_KEY_ des Shops abgeleitet.
  • Prüfprotokoll jedes Uploads, jeder Ansicht, jedes Downloads, jeder Nachricht und Entscheidung, mit IP-Adresse.
  • CSV-Export des Registers unter Bestellungen > Rezepte (Schaltfläche Register exportieren), ohne Dokumente und Gesundheitsangaben.
  • Funktioniert mit dem offiziellen DSGVO-Modul: Der Datenexport des Kunden enthält die Anfragen, und das Löschen eines Kunden entfernt seine Dokumente und Nachrichten.

Behalten Sie bei einer Migration den _COOKIE_KEY_ des Shops und den Konfigurationswert DFPRESCRIPTION_KEY. Fehlt einer davon, lassen sich die gespeicherten Dokumente nicht mehr entschlüsseln.

Fehlerbehebung

Der Statusbereich meldet, dass der Ordner aus dem Web erreichbar ist

Die Dateien bleiben verschlüsselt, aber nginx ignoriert die Datei .htaccess. Fügen Sie eine deny all-Regel für den Ordner hinzu oder wählen Sie einen Ordner außerhalb des Webroots.

Der Kunde sieht den Rezeptbereich nicht

Prüfen Sie, ob eine Regel das Produkt oder eine seiner Kategorien abdeckt und ob Ihr Theme den Hook displayShoppingCartFooter auf der Warenkorbseite ausgibt.

Der QR-Code wird nicht gelesen

Der QR-Code muss scharf und vollständig sichtbar sein. Nutzen Sie Erneut lesen, sobald ein besseres Foto vorliegt, oder geben Sie die Rezeptnummer manuell ein.

Deinstallation

Die Deinstallation löscht alle gespeicherten Dokumente und die Tabellen des Moduls endgültig. Der eigene Bestellstatus wird ausgeblendet, bleibt aber für die Bestellhistorie erhalten. Exportieren Sie das Register vor der Deinstallation, wenn Sie einen Nachweis aufbewahren müssen.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren