DataFirefly Order Vouchers: kompletny przewodnik
Instalacja i praca z wyświetlaniem użytych kodów rabatowych oraz kwoty obniżki w liście zamówień panelu administracyjnego PrestaShop 8 i 9.
Prezentacja i wymagania
DataFirefly Order Vouchers dodaje dwie kolumny do listy zamówień w panelu administracyjnym: kod lub kody rabatowe użyte w każdym zamówieniu oraz łączną kwotę obniżki (sformatowaną w walucie zamówienia). Moduł nie tworzy żadnej tabeli, niczego nie zapisuje w bazie i nie nadpisuje żadnego kontrolera: po prostu odczytuje bony rabatowe zapisane już na Twoich zamówieniach i wyświetla je w siatce.
- Zgodny z PrestaShop 8.0 do 9.x.
- PHP 7.4 do 8.3.
- Multisklep i wielojęzyczność (FR/EN/ES/DE/IT).
- Brak nadpisywania plików: wyłącznie natywne hooki siatki Symfony zamówień.
Dane pochodzą z tabel order_cart_rule i cart_rule. Zamówienie bez bonu rabatowego wyświetla po prostu pustą komórkę w obu kolumnach.
Instalacja
- Pobierz archiwum
dfordervouchers.zipze swojego konta klienta. - W panelu administracyjnym przejdź do Moduły > Menedżer modułów.
- Kliknij Wgraj moduł i wskaż archiwum.
- Instalacja rejestruje dwa hooki siatki zamówień. Żadna konfiguracja nie jest potrzebna.
Zaraz po instalacji otwórz Zamówienia > Zamówienia: dwie nowe kolumny pojawiają się zaraz za kolumną „Razem”.
Moduł nie ma strony konfiguracji: działa natychmiast po instalacji, bez żadnych ustawień.
Dwie dodane kolumny
Kod(y) rabatowe
Ta kolumna wyświetla kod każdego bonu rabatowego faktycznie zastosowanego do zamówienia. Gdy zamówienie łączy kilka kodów, są one zgrupowane, zdeduplikowane i oddzielone przecinkami. Promocje automatyczne (reguły koszyka bez kodu) nie są wyświetlane w tej kolumnie, ponieważ nie mają kodu do pokazania.
Obniżka
Ta kolumna sumuje kwotę rabatu na zamówieniu, w postaci zapisanej w chwili zatwierdzenia (domyślnie brutto), i wyświetla ją w walucie zamówienia. Zamówienie w funtach lub dolarach pokazuje więc swoją kwotę we własnej walucie. Jeśli żaden rabat nie został zastosowany, komórka pozostaje pusta.
Działanie techniczne
Od PrestaShop 1.7.7 lista zamówień opiera się na siatce Symfony. Moduł podpina się do niej przez dwa oficjalne hooki:
actionOrderGridDefinitionModifier: dodaje dwie kolumny do definicji siatki, zaraz za kolumną „Razem”.actionOrderGridQueryBuilderModifier: wzbogaca zapytanie siatki o dwa skorelowane podzapytania naorder_cart_ruleicart_rule.
Ponieważ podzapytania są skorelowane z identyfikatorem zamówienia, nie powodują duplikacji wierszy i nie kolidują z wewnętrznym grupowaniem siatki. Kwota wykorzystuje walutę dołączoną już przez rdzeń w zapytaniu siatki.
Moduł działa w trybie tylko do odczytu: nigdy nie zapisuje do bazy i nie modyfikuje żadnego zamówienia. Można go zainstalować i odinstalować bez jakiegokolwiek wpływu na Twoje dane.
Przypadki szczególne
Kilka kodów w jednym zamówieniu
Wszystkie kody są wyświetlane, oddzielone przecinkami. Kwota w kolumnie „Obniżka” sumuje wszystkie bony zastosowane do zamówienia.
Promocje automatyczne bez kodu
Domyślnie kolumna „Obniżka” sumuje wszystkie rabaty zamówienia, włącznie z ewentualnymi promocjami automatycznymi bez kodu. Kolumna „Kod(y) rabatowe” pokazuje natomiast wyłącznie bony posiadające kod. Wariant ograniczający kwotę wyłącznie do bonów z kodem jest dostępny na życzenie.
Wielowalutowość
Kwota jest zawsze wyświetlana w walucie danego zamówienia, z wykorzystaniem waluty dołączonej przez natywną siatkę.
Multisklep
Wyświetlanie respektuje bieżący kontekst sklepu w panelu administracyjnym, dokładnie tak jak natywna siatka zamówień.
Sortowanie i personalizacja
Etykiety obu kolumn są tłumaczone przez system tłumaczeń modułów PrestaShop, w pięciu językach. Ponieważ natywne sortowanie siatki opiera się na białej liście pól, kliknięcie nagłówka tych obliczanych kolumn nie uruchamia sortowania, ale też nie powoduje żadnego błędu.
FAQ i rozwiązywanie problemów
Kolumny się nie pojawiają
Sprawdź, czy moduł jest zainstalowany i aktywny w Menedżerze modułów, a następnie przeładuj stronę Zamówienia > Zamówienia. Kolumny pojawiają się zaraz za kolumną „Razem”.
Kolumna „Obniżka” jest pusta mimo wyświetlonego kodu
Może się to zdarzyć, gdy bon zapisany na zamówieniu ma wartość zerową, na przykład bon darmowej dostawy. Kod nadal się wyświetla, ale kwota rabatu wynosi zero.
Czy moduł działa na PrestaShop 8 i 9?
Tak. Opiera się na siatce Symfony zamówień obecnej w obu wersjach, przez oficjalne hooki definicji i query buildera.
Co dzieje się przy odinstalowaniu?
Odinstalowanie po prostu usuwa dwa hooki. Ponieważ żadna tabela nie została utworzona i żadne dane nie zostały zapisane, w bazie nie pozostaje nic.