PS PrestaShop Średnio zaawansowany

Przesyłanie recepty i weryfikacja przez farmaceutę w PrestaShop: dokumentacja

Instalacja modułu, wskazanie produktów objętych regułami, ustawienie procesu i obsługa recept, wiadomości i kodów QR w panelu administracyjnym.

Zaktualizowano Wersja modułu 1.2.0

Zasada działania

Ty decydujesz, które produkty są objęte regułami. Gdy klient doda taki produkt do koszyka, pod koszykiem pojawia się blok „Recepta i zatwierdzenie farmaceuty”. Klient przesyła w nim receptę i składa zamówienie. Zamówienie pozostaje w statusie Oczekuje na zatwierdzenie farmaceuty, dopóki farmaceuta nie podejmie decyzji w panelu administracyjnym. Dokumenty są szyfrowane na Twoim serwerze i nigdy nie są udostępniane bezpośrednio przez serwer WWW.

  • Wymagana recepta: przed złożeniem zamówienia trzeba przesłać dokument.
  • Weryfikacja farmaceuty: dokument nie jest wymagany, ale zamówienie jest sprawdzane przed wysyłką.
  • Sprzedaż bez ograniczeń: bez zatwierdzania, obowiązuje tylko maksymalna ilość na zamówienie. Dla produktu ten tryb wyłącza go też z reguły jego kategorii.

Sprzedaż leków na receptę przez internet jest niedozwolona w kilku krajach, m.in. w Polsce i we Francji, a recepta zawiera dane o zdrowiu. Moduł dostarcza narzędzia techniczne; zezwolenie na sprzedaż i hosting pozostają w Twojej gestii.

Wymagania

  • PrestaShop od 8.0 do 9.x.
  • Rozszerzenie PHP openssl (sprawdzane przy instalacji).
  • Zadanie cron uruchamiane co godzinę, zalecane dla przypomnień, alertów i usuwania plików.
  • HTTPS w sklepie.

Instalacja

  1. W Moduły > Menedżer modułów kliknij Prześlij moduł i wyślij plik ZIP.
  2. Moduł tworzy status zamówienia Oczekuje na zatwierdzenie farmaceuty, szyfrowany folder przechowywania i dwa menu: Zamówienia > Recepty oraz Zamówienia > Reguły recept.
  3. Otwórz konfigurację modułu: panel Status pokazuje, czy folder przechowywania jest gotowy i chroniony przed bezpośrednim dostępem.

Wskazanie produktów objętych regułami

Menu Zamówienia > Reguły recept, przycisk Dodaj regułę:

  • Dotyczy: produktu (wyszukiwanie po nazwie, indeksie, EAN lub ID) albo kategorii wraz z podkategoriami.
  • Tryb: wymagana recepta, weryfikacja farmaceuty lub sprzedaż bez ograniczeń.
  • Maksymalna ilość na zamówienie: na produkt, łącznie dla wszystkich wariantów. Powyżej przejście do kasy jest zablokowane. 0 oznacza brak limitu.

Reguła produktu zawsze ma pierwszeństwo przed regułami kategorii. Jeśli produkt należy do kilku kategorii objętych regułami, „Wymagana recepta” ma pierwszeństwo przed „Weryfikacją farmaceuty”, a obowiązuje najmniejsza maksymalna ilość.

Regułę produktu można też ustawić w zakładce Moduły na stronie produktu. Zapisuje się od razu, bez zapisywania produktu.

Ustawienia modułu

Proces zatwierdzania

  • Po złożeniu zamówienia (domyślnie): klient płaci, a zamówienie czeka na zatwierdzenie. Odmowa oznacza zwrot pieniędzy klientowi ze strony zamówienia.
  • Przed płatnością: zalogowany klient wysyła koszyk do farmaceuty i może zapłacić dopiero po zatwierdzeniu. Jeśli koszyk zmieni się później, trzeba go wysłać ponownie.

Dokumenty

  • Akceptowane typy: PDF, JPEG, PNG, WebP. Rzeczywisty typ jest sprawdzany po sygnaturze pliku, a pliki PDF z JavaScriptem, akcjami uruchamiania lub załącznikami są odrzucane.
  • Maksymalny rozmiar pliku (domyślnie 8 MB) i maksymalna liczba plików na wniosek (domyślnie 5).
  • Ponowne użycie zatwierdzonych recept: zalogowany klient może dołączyć zatwierdzoną receptę do nowego koszyka do daty jej ważności.
  • Domyślna ważność (90 dni): wstępnie wypełniana w formularzu zatwierdzenia.
  • Treść zgody, dla każdego języka: klient musi zaznaczyć pole przed każdym przesłaniem.

Kwestionariusz zdrowotny

Po włączeniu pyta o pacjenta (klient lub inna osoba), wiek, wagę, wzrost, płeć, ciążę lub karmienie piersią, alergie, bieżące leczenie i historię choroby. Przejście do kasy czeka na odpowiedzi. Są szyfrowane i wypełniane automatycznie przy kolejnym zamówieniu zalogowanego klienta.

Przypomnienia i terminy

  • Przypomnienie dla klienta (2 dni): e-mail, gdy klient nie odpowiedział na prośbę o informacje.
  • Automatyczne anulowanie (10 dni): wniosek jest odrzucany z powodem „Brak odpowiedzi klienta”.
  • Alert dla farmaceuty (24 godziny): podsumowanie wniosków i wiadomości klientów oczekujących dłużej niż ten czas.

0 wyłącza daną funkcję.

Powiadomienia i statusy

  • Adresy e-mail powiadomień dla farmaceuty: jeden lub kilka adresów oddzielonych przecinkami.
  • Status odrzuconych zamówień: domyślnie Anulowane, co przywraca stany magazynowe.
  • Zapisane odpowiedzi: jedna w wierszu i dla każdego języka, wstawiane jednym kliknięciem do wiadomości lub decyzji.

Przechowywanie

  • Folder przechowywania: domyślnie var/dfprescription/. Zalecana jest ścieżka bezwzględna poza katalogiem głównym serwera WWW. Po zapisaniu dokumentów nie można jej już zmienić.
  • Przechowywanie dokumentów (365 dni): pliki są usuwane po tym czasie, z wyjątkiem wniosków w toku i wciąż ważnych recept. Metadane i dziennik audytu są zachowywane.

Ścieżka klienta

  1. Karta produktu pokazuje oznaczenie: wymagana recepta, weryfikacja farmaceuty lub limit na zamówienie.
  2. W koszyku klient przeciąga dokumenty lub robi zdjęcie telefonem, zaznacza zgodę, w razie potrzeby wypełnia kwestionariusz i może zostawić notatkę dla farmaceuty.
  3. Dopóki czegoś brakuje, linki do zamówienia są wyłączone, a bezpośrednie otwarcie strony zamówienia przekierowuje do koszyka z komunikatem.
  4. Po złożeniu zamówienia strona potwierdzenia, szczegóły zamówienia i strona Moje recepty na koncie pokazują status wniosku. Goście śledzą wniosek przez prywatny link wysłany e-mailem.

Obsługa wniosku

Menu Zamówienia > Recepty. Lista pokazuje status, liczbę dokumentów i nieprzeczytane wiadomości, z licznikami u góry strony. Karta wniosku zawiera:

  • dokumenty w podglądzie (osadzony PDF, obrazy z obracaniem i powiększaniem), z otwieraniem i pobieraniem;
  • klienta, zamówienie lub zamówienia, produkty i ich reguły;
  • odpowiedzi z kwestionariusza zdrowotnego z wyróżnionymi punktami ryzyka;
  • wątek wiadomości z klientem;
  • formularz decyzji i dziennik audytu.

Podejmowanie decyzji

  • Zatwierdź: ustaw datę ważności recepty. Zamówienie wraca do statusu sprzed wstrzymania, na przykład Płatność przyjęta.
  • Poproś o informacje: wiadomość jest wymagana. Klient dostaje e-mail i odpowiada na koncie lub przez prywatny link.
  • Odrzuć: wybierz powód. Zamówienie przechodzi do statusu ustawionego dla odmów.

Imię i nazwisko farmaceuty oraz jego numer zawodowy są zapisywane z każdą decyzją i zapamiętywane dla pracownika. Do każdego wniosku można dodać notatkę wewnętrzną, niewidoczną dla klienta.

Jeśli moduł płatności zmieni status wstrzymanego zamówienia (na przykład przez webhook płatności), moduł zapamiętuje ten status i ponownie wstrzymuje zamówienie. Ręczna zmiana wykonana przez pracownika jest respektowana i zapisywana w dzienniku.

Wiadomości klient ↔ farmaceuta

Każdy wniosek ma własny wątek wiadomości, szyfrowany jak dokumenty. Farmaceuta odpowiada na karcie wniosku, w razie potrzeby wstawiając zapisaną odpowiedź. Klient dostaje treść e-mailem i odpowiada na stronie Moje recepty. Farmaceuta dostaje e-mail bez treści wiadomości, tylko z linkiem do wniosku. Klient może wysłać najwyżej 20 wiadomości dziennie na wniosek.

Kod QR e-recept

Po otwarciu wniosku kod QR każdego dokumentu jest odczytywany w Twojej przeglądarce, z obrazów i z pierwszych 3 stron plików PDF. Blok Kod QR e-recepty pokazuje:

  • wykryty identyfikator i pełną zawartość kodu QR;
  • alert, jeśli ta sama recepta została już przesłana w innym wniosku w sklepie, z dopiskiem „inny klient”, gdy dotyczy;
  • pole do ręcznego wpisania numeru, gdy kodu QR nie da się odczytać, oraz przycisk ponownego odczytu.

Tylko certyfikowane oprogramowanie apteczne może odpytywać oficjalne systemy e-recept. Moduł przygotowuje weryfikację i wykrywa ponowne użycie; farmaceuta sprawdza następnie identyfikator w swoim oprogramowaniu.

Zadanie cykliczne

Konfiguracja modułu pokazuje adres URL crona. Wywołuj go co godzinę:

0 * * * * curl -s "https://twoj-sklep.pl/module/dfprescription/cron?key=TWOJ_KLUCZ" >/dev/null

Wysyła przypomnienia i alerty, anuluje wnioski bez odpowiedzi i usuwa wygasłe pliki. Bez crona zadania te są wykonywane najwyżej raz na godzinę przy otwarciu strony Recepty.

Bezpieczeństwo i zgodność

  • Szyfrowanie AES-256-GCM dokumentów, odpowiedzi z kwestionariusza, wiadomości i zawartości kodów QR. Klucz jest wyprowadzany z sekretu modułu i z _COOKIE_KEY_ sklepu.
  • Dziennik audytu każdego przesłania, wyświetlenia, pobrania, wiadomości i decyzji, z adresem IP.
  • Eksport CSV rejestru w Zamówienia > Recepty (przycisk Eksportuj rejestr), bez dokumentów i odpowiedzi zdrowotnych.
  • Współpraca z oficjalnym modułem RODO: eksport danych klienta obejmuje wnioski, a usunięcie klienta kasuje jego dokumenty i wiadomości.

Przy migracji zachowaj _COOKIE_KEY_ sklepu i wartość konfiguracji DFPRESCRIPTION_KEY. Bez jednej z nich zapisanych dokumentów nie da się już odszyfrować.

Rozwiązywanie problemów

Panel Status informuje, że folder jest dostępny z internetu

Pliki pozostają zaszyfrowane, ale nginx ignoruje plik .htaccess. Dodaj regułę deny all dla folderu lub wybierz folder poza katalogiem głównym serwera WWW.

Klient nie widzi bloku recepty

Sprawdź, czy reguła obejmuje produkt lub jedną z jego kategorii i czy szablon wyświetla hook displayShoppingCartFooter na stronie koszyka.

Kod QR nie jest odczytywany

Kod QR musi być ostry i w całości widoczny. Użyj Odczytaj ponownie po otrzymaniu lepszego zdjęcia lub wpisz numer recepty ręcznie.

Odinstalowanie

Odinstalowanie trwale usuwa wszystkie zapisane dokumenty i tabele modułu. Dedykowany status zamówienia zostaje ukryty, ale zachowany dla historii zamówień. Wyeksportuj rejestr przed odinstalowaniem, jeśli musisz zachować ślad.

Czy ta strona była pomocna?

Nadal utknąłeś? Napisz do wsparcia