Custom Checkout Fields: dokumentacja
Instalacja i konfiguracja pól niestandardowych przy zamówieniu i rejestracji oraz ich wyświetlanie na fakturze, w e-mailach, eksportach i API.
Omówienie
DataFirefly Custom Checkout Fields dodaje pola niestandardowe do procesu zamówienia i formularza rejestracji w PrestaShop 8 i 9: numer zamówienia zakupu, preferowaną datę dostawy, SIRET, branżę, załącznik lub dowolne inne pole, które utworzysz. Wartości są sprawdzane przed złożeniem zamówienia, a następnie przenoszone na stronę zamówienia, fakturę PDF, dokument dostawy, do e-maili, list w panelu, eksportów CSV i webservice.
Instalacja
- W panelu otwórz Moduły > Menedżer modułów i kliknij Wgraj moduł.
- Wybierz plik dfcheckoutfields.zip.
- Instalacja tworzy trzy tabele, chroniony folder upload/dfcheckoutfields, menu Zamówienia > Pola niestandardowe i Zamówienia > Eksport pól oraz pięć gotowych pól.
- Kliknij Konfiguruj, aby ustawić opcje ogólne.
Aby zaktualizować, wgraj nowy plik ZIP na poprzedni: skrypty aktualizacji dodają nowe kolumny bez zmiany Twoich pól i zapisanych wartości.
Pola tworzone przy instalacji
- Numer zamówienia zakupu (po_number): tekst do 50 znaków, zapisywany w zamówieniu, widoczny na fakturze, dokumencie dostawy i jako kolumna listy zamówień.
- Preferowana data dostawy (desired_date): najwcześniej dziś + 2 dni, tylko dni robocze.
- Numer SIRET (siret): sprawdzany kluczem Luhna, zapisywany na koncie klienta, wymagany przy rejestracji i zamówieniu, ograniczony do klientów z Francji.
- Branża (sector): lista ośmiu branż, zapisywana na koncie klienta, pytana przy rejestracji.
- Załącznik (attachment): PDF, obrazy i dokumenty Office, maks. 8 MB.
Żadne z tych pól nie jest domyślnie wymagane. Zmieniaj, wyłączaj lub usuwaj je według potrzeb.
Ustawienia ogólne
Moduły > Menedżer modułów > Pola niestandardowe zamówienia i rejestracji > Konfiguruj.
- Położenie bloku w procesie zamówienia: krok płatności, nad metodami płatności (domyślnie), lub krok dostawy, pod przewoźnikami. Koszyki zawierające wyłącznie produkty wirtualne zawsze używają kroku płatności.
- Tytuł bloku: wyświetlany przy zamówieniu, na stronach zamówienia, w PDF i e-mailach, dla każdego języka.
- Położenie na fakturze PDF: nagłówek pod numerem faktury albo dół faktury. Zobacz Faktura i dokument dostawy.
- Notatka prywatna, gdy brakuje wymaganego pola: dopisuje listę brakujących pól do notatki prywatnej zamówienia, gdy moduł płatności pomija kontrolę.
- Kopiuj pola SIRET do natywnego pola SIRET klienta: aktualizuje pole SIRET w karcie klienta, używane przez tryb B2B PrestaShop.
Tworzenie i edycja pola
Zamówienia > Pola niestandardowe, następnie Dodaj pole lub ikona ołówka w wierszu. Formularz pokazuje tylko opcje przydatne dla wybranego typu i miejsca zapisu.
Pole
- Etykieta, tekst zastępczy i tekst pomocy: dla każdego języka. Pusty język przejmuje etykietę języka domyślnego.
- Kod: identyfikator techniczny z małych liter, cyfr i podkreśleń. Służy też jako zmienna e-mail {dfcf_CODE} i w webservice.
- Typ: tekst, tekst wielowierszowy, liczba, e-mail, data, lista rozwijana, pole wyboru, SIRET lub plik.
- Zapisywane w: Zamówienie (jedna wartość na zamówienie) lub Konto klienta (wartość w karcie klienta, wstępnie wypełniana przy zamówieniu i kopiowana do każdego zamówienia).
- Opcje listy: jedna opcja na wiersz w formacie klucz|Etykieta, np.
industry|Przemysł. Zachowaj te same klucze we wszystkich językach.
Gdzie i kiedy
- Pokaż przy rejestracji i wymagane przy rejestracji: tylko pola konta klienta, bez typu plik. Pojawiają się też w formularzu Moje dane.
- Pokaż przy zamówieniu i wymagane przy zamówieniu.
- Pokaż tylko, jeśli: zobacz Wyświetlanie warunkowe.
- Kraje: kraj adresu rozliczeniowego przy zamówieniu, kraj odwiedzającego przy rejestracji. Puste dla wszystkich krajów.
- Grupy klientów: wszystko niezaznaczone dla wszystkich grup.
Walidacja
- Maksymalna długość: 0 dla wartości domyślnej (255 znaków, 2000 dla tekstu wielowierszowego).
- Wzorzec walidacji: wyrażenie regularne bez ograniczników, np.
^[A-Z]{2}[0-9]{6}$. - Minimalny czas realizacji i maksymalny horyzont w dniach dla daty zapisywanej w zamówieniu.
- Tylko dni robocze: odrzuca sobotę i niedzielę.
- Dni zamknięcia: jeden na wiersz,
2026-12-24dla dnia,2026-08-01:2026-08-21dla okresu,12-25dla każdego roku. - Dozwolone rozszerzenia i maksymalny rozmiar dla pliku. Skrypty i pliki wykonywalne są zawsze odrzucane.
Dokumenty i eksporty
Pokaż klientowi (potwierdzenie, konto klienta, e-maile do klienta), na fakturze PDF, na dokumencie dostawy, jako kolumna z wyszukiwaniem na listach panelu, w eksportach CSV.
Lista pól
Ikony na liście włączają lub wyłączają ustawienie jednym kliknięciem. Przeciągaj wiersze, aby zmienić kolejność. Akcja Duplikuj tworzy wyłączoną kopię z kodem code_copy. Pola z wartościami w zamówieniach nie można usunąć: wyłącz je, aby zachować historię.
Wyświetlanie warunkowe
Przykład: pokazywanie SIRET tylko firmom.
- Utwórz pole wyboru zapisywane na koncie klienta, kod
is_company, etykieta Jestem firmą. - Edytuj pole SIRET, sekcja Gdzie i kiedy, i wybierz Pokaż tylko, jeśli: Jestem firmą. Pozostaw puste „ma jedną z tych wartości”: dla pola wyboru oznacza to zaznaczone.
Dla listy rozwijanej podaj oczekiwane klucze oddzielone przecinkami, np. health,public. Warunki można łączyć w łańcuch: pole, którego pole nadrzędne jest ukryte, również jest ukryte. Ukryte pole nigdy nie jest wymagane, a jego wartość nie jest zapisywana. Pole nadrzędne musi być wyświetlane w tym samym miejscu (rejestracja lub zamówienie) albo już wypełnione na koncie klienta.
Po stronie klienta
Przy zamówieniu
Blok pojawia się w wybranym kroku. Każda wartość zapisuje się podczas wpisywania. Dopóki wymagane pole jest puste lub niepoprawne, kliknięcie Złóż zamówienie (lub Dalej w kroku dostawy) jest zablokowane, komunikat pojawia się pod polem, a strona przewija się do niego. Załącznik wysyła się przez przeciągnięcie lub kliknięcie, z paskiem postępu. Klient może go usunąć i wysłać inny.
Przy rejestracji i w Moich danych
Pola konta klienta oznaczone Pokaż przy rejestracji są dodawane do natywnego formularza zakładania konta, formularza gościa przy zamówieniu i formularza Moje dane. Błędy są wyświetlane tak jak dla pól PrestaShop.
Po zamówieniu
Wartości oznaczone Pokaż klientowi pojawiają się na stronie potwierdzenia i w szczegółach zamówienia na koncie klienta. Klient, do którego należy zamówienie, może tam pobrać załącznik.
Faktura i dokument dostawy
Dół faktury: moduł używa hooka displayPDFInvoice i drukuje tabelę po sumach. Żaden plik nie jest modyfikowany.
Nagłówek, pod numerem faktury: PrestaShop nie ma tam hooka. Po zapisaniu tego ustawienia moduł dodaje blok ograniczony znacznikami {* dfcf:start *} i {* dfcf:end *} na końcu pliku themes/TWÓJ_MOTYW/pdf/invoice.summary-tab.tpl. Jeśli plik nie istnieje, powstaje na podstawie pliku PrestaShop. Jeśli już istnieje, moduł go uzupełnia i zachowuje kopię .dfcf-backup. Powrót do ustawienia Dół faktury lub odinstalowanie usuwa blok. Jeśli pliku nie można zapisać, komunikat podaje jego ścieżkę.
Z DataFirefly Invoice Editor, który zastępuje renderowanie faktury, używaj ustawienia Dół faktury: edytor zachowuje treści modułów w wybranym przez Ciebie miejscu.
Dokument dostawy używa hooka displayPDFDeliverySlip, pole po polu.
E-maile
W e-mailach zawierających ID zamówienia, m.in. order_conf i new_order, dostępne są dwa rodzaje zmiennych:
{dfcf_fields}: wszystkie wartości w tabeli. W order_conf tylko pola oznaczone Pokaż klientowi, w new_order, wysyłanym do sprzedawcy, wszystkie pola.{dfcf_CODE}: jedna wartość, np.{dfcf_po_number}lub{dfcf_desired_date}.
Dodaj je w Wygląd > Motyw e-maili lub w plikach e-maili swojego motywu.
Panel administracyjny
- Strona zamówienia: karta Pola niestandardowe ze wszystkimi wartościami. Przycisk Edytuj pozwala poprawić wartość lub zastąpić załącznik.
- Karta klienta: karta z polami konta klienta, edytowalna w ten sam sposób.
- Listy: każde pole oznaczone jako kolumna z wyszukiwaniem pojawia się na liście zamówień z filtrem tekstowym. Pola konta klienta pojawiają się także na liście klientów.
Eksport CSV
Zamówienia > Eksport pól. Wybierz Zamówienia lub Klienci, okres, statusy zamówień (wszystko niezaznaczone dla wszystkich), separator i czy eksportować tylko wiersze z co najmniej jedną wartością. Plik jest w UTF-8 z BOM i otwiera się bezpośrednio w Excelu. Zamówienia są eksportowane z numerem referencyjnym, datą, statusem, klientem, sumami netto i brutto oraz walutą, a następnie z polami oznaczonymi Uwzględnij w eksportach CSV.
Webservice
- Zaawansowane > Webservice: włącz webservice i utwórz lub edytuj klucz.
- Zaznacz GET dla zasobu dfcf_values.
- Wywołaj
/api/dfcf_values?filter[id_order]=[123]&display=full.
Każda wartość jest zwracana z id_dfcf_field, id_order, id_customer, id_cart, value, value_display, field_code, field_label i has_file. Wartości profilu klienta mają id_order i id_cart równe 0.
Załączniki i bezpieczeństwo
Każdy plik jest sprawdzany pod kątem rozszerzenia (lista pola) i rzeczywistej zawartości: skrypt przemianowany na .pdf zostanie odrzucony. Plik jest zapisywany w upload/dfcheckoutfields pod losową nazwą, bez rozszerzenia, w folderze, do którego plik .htaccess blokuje dostęp bezpośredni. Na Nginx dodaj regułę location ^~ /upload/dfcheckoutfields/ { deny all; }. Pobieranie zawsze przechodzi przez moduł, który sprawdza, czy odwiedzający jest klientem zamówienia lub pracownikiem.
RODO
Wartości zapisane na koncie klienta są usuwane razem z klientem. Moduł odpowiada na żądania eksportu i usunięcia danych z oficjalnego modułu RODO PrestaShop. Wartości skopiowane do zamówień pozostają z zamówieniem.
Rozwiązywanie problemów
Blok nie pojawia się przy zamówieniu
Sprawdź, czy pole jest aktywne i oznaczone Pokaż przy zamówieniu oraz czy grupa i kraj klienta odpowiadają jego ograniczeniom. Jeśli wybrano krok dostawy, sprawdź, czy motyw wywołuje hook displayAfterCarrier.
Przycisk Złóż zamówienie nie jest blokowany
Moduł rozpoznaje przycisk motywów Classic i Hummingbird. Motyw, który zastępuje ten przycisk innym elementem, lub płatność ekspresowa uruchamiana z karty produktu nie są objęte kontrolą: włącz notatkę prywatną, aby otrzymywać informację o niepełnych zamówieniach.
Pola nie pojawiają się w nagłówku faktury
Sprawdź, czy plik motywu pdf/invoice.summary-tab.tpl jest zapisywalny, zapisz ponownie ustawienia i wyczyść pamięć podręczną w Zaawansowane > Wydajność.
Zmienna e-mail wyświetla się dosłownie
Jest wypełniana tylko w e-mailach zawierających ID zamówienia. Sprawdź też, czy kod dokładnie odpowiada kodowi pola.