Najważniejsze cechy i funkcjonalności modułu
- Dane z API Narodowego Banku Polskiego: pobieranie tabel kursowych przez HTTPS, z kontrolą poprawności odpowiedzi i dat publikacji.
- Cztery warianty źródła kursów: tabela A, połączone tabele A i B, kurs kupna z tabeli C albo kurs sprzedaży z tabeli C.
- Wybór walut objętych aktualizacją: wskazanie istniejących, aktywnych walut obcych powiązanych z wybranym sklepem w PrestaShop.
- Bufor cenowy dla każdej waluty: osobna wartość procentowa od 0 do 50%, uwzględniana przy obliczaniu kursu sklepu.
- Obsługa różnych walut bazowych: przeliczenie przez wartości referencyjne w PLN, o ile waluta bazowa i wybrane waluty są dostępne w używanym źródle.
- Podgląd przed ręcznym zatwierdzeniem: porównanie kursu obecnego z proponowanym, różnicy procentowej, daty i numeru tabeli NBP oraz przeliczenia 100 jednostek waluty bazowej.
- Ważność podglądu przez 10 minut: zatwierdzenie przez pracownika, który go utworzył, po ponownym sprawdzeniu kursów, ustawień i waluty bazowej.
- Maksymalna dopuszczalna zmiana kursu: przekroczenie ustawionego progu przez jedną z wybranych walut blokuje zapis całego pakietu.
- Pomijanie drobnych zmian: próg minimalnej zmiany od 0 do 5%, pozwalający pozostawić kurs bez zapisu przy mniejszych różnicach.
- Kontrola wieku publikacji: limit od 1 do 30 dni kalendarzowych, uwzględniający daty danych używanych do przeliczenia.
- Wspólny zapis kursów i historii: transakcja bazy danych oraz blokada operacji tego modułu dla danego sklepu ograniczają ryzyko częściowego zapisu i równoległych aktualizacji.
- Historia z dostępem do szczegółów: data operacji, tryb ręczny lub CRON, status, przyczyna zapisanej blokady lub błędu oraz szczegóły utworzonego podglądu lub zmiany.
- Przywracanie wcześniejszych kursów: cofnięcie zapisanej aktualizacji jest dostępne, jeżeli objęte nią kursy nadal odpowiadają wynikowi tej operacji.
- Automatyzacja przez CRON: prywatny adres dla sklepu, minimalny odstęp między próbami od 15 do 1440 minut oraz możliwość zmiany klucza dostępu.
- Symulacja zadania automatycznego: parametr
dry_run=1sprawdza plan aktualizacji bez zmiany kursów sklepu. - Aktualizacja podzbioru walut przez CRON: parametr
currenciesogranicza wywołanie do wskazanych walut spośród wcześniej włączonych w module. - Informacja o przeliczeniu dla klienta: opcjonalny komunikat na stronie produktu i w koszyku pokazuje rzeczywisty kurs sklepu dla wybranej waluty obcej.
- Konfiguracja osobno dla sklepów: w multistore ustawienia, historia, klucz CRON i zapisy kursów dotyczą konkretnego sklepu.
- Panel z sześcioma zakładkami: Przegląd, Waluty, Ustawienia, Automatyzacja, Historia i Pomoc porządkują konfigurację oraz obsługę aktualizacji.
- Okres przechowywania historii: ustawienie od 7 do 365 dni, z czyszczeniem starszych wpisów po prawidłowo przetworzonych aktualizacjach CRON; symulacja nie uruchamia czyszczenia.
Jakie kursy NBP można wykorzystać w sklepie?
| Źródło | Rodzaj danych | Zastosowanie w module |
|---|---|---|
| Tabela A | Kursy średnie | Przeliczanie walut dostępnych w tabeli A. |
| Tabele A i B | Kursy średnie z obu tabel | Uwzględnienie również walut publikowanych w tabeli B, z kontrolą dat obu źródeł. |
| Tabela C — kupno | Kursy kupna | Obliczanie kursów sklepu na podstawie wartości kupna z tabeli C. |
| Tabela C — sprzedaż | Kursy sprzedaży | Obliczanie kursów sklepu na podstawie wartości sprzedaży z tabeli C. |
Wybrane źródło musi zawierać walutę bazową sklepu oraz aktualizowane waluty. PLN stanowi referencję o wartości 1. Tabele A i B mogą mieć różne daty publikacji, dlatego moduł sprawdza wiek danych potrzebnych do danego przeliczenia.
Jak działa przeliczanie kursów i bufor cenowy?
PrestaShop zapisuje liczbę jednostek waluty docelowej przypadającą na jedną jednostkę waluty bazowej sklepu. Moduł oblicza ten kurs jako: wartość waluty bazowej w PLN ÷ wartość waluty docelowej w PLN × (1 + bufor procentowy ÷ 100). Wynik zapisuje z dokładnością do sześciu miejsc po przecinku.
Przykład: przy PLN jako walucie bazowej i notowaniu 1 EUR = 4 PLN kurs sklepu wynosi 0,25 EUR za 1 PLN. Bufor 2% podnosi go do 0,255, więc kwota 100 PLN przeliczana według tego kursu daje 25,50 EUR. Bufor wpływa na standardowe przeliczenie cen, ale nie jest opłatą bankową ani gwarancją marży.
Co zyskuje obsługa sklepu?
- Mniej ręcznego przepisywania kursów: dane pochodzą z wybranego źródła NBP, a po dodaniu harmonogramu aktualizacje może wykonywać CRON.
- Kontrola przed zmianą cen w walutach obcych: podgląd pozwala ocenić proponowane przeliczenie, a bufory i progi zmian dopasować do zasad sklepu.
- Dostęp do poprzednich wartości: szczegóły zapisanej aktualizacji ułatwiają sprawdzenie różnicy i ewentualne przywrócenie kursów.
- Oddzielna obsługa multistore: można stosować różne źródła, bufory i zasady automatyzacji dla poszczególnych sklepów.
Jaką informację otrzymuje klient?
Po włączeniu komunikatu klient korzystający z waluty obcej może zobaczyć na karcie produktu i w koszyku przeliczenie w postaci „1 jednostka waluty bazowej = kurs w walucie klienta”. Komunikat informuje również, że ceny korzystają z kursu sklepu, który może zawierać bufor cenowy. Czas zapisanej aktualizacji i data publikacji NBP pojawiają się, gdy wpis z odczytywanej ostatniej historii odpowiada aktualnej walucie bazowej i kursowi klienta; po przywróceniu kursów nie jest dopisywana nowa data NBP.
Komunikat jest ukryty dla waluty bazowej i można go wyłączyć w ustawieniach. Wyświetlanie wymaga, aby motyw udostępniał obsługiwane miejsca na stronie produktu i w koszyku. Podczas wyświetlania tych stron moduł odczytuje zapisany kurs sklepu, bez pobierania tabel NBP.
Jak uruchomić aktualizację kursów NBP w PrestaShop?
- Wybierz sklep, a w zakładce Waluty zaznacz aktywne waluty obce i ustaw ich bufory.
- W Ustawieniach wybierz źródło NBP, maksymalną i minimalną zmianę kursu oraz dopuszczalny wiek publikacji.
- Pobierz podgląd w Przeglądzie i porównaj proponowane wartości. Sam podgląd nie zmienia kursów.
- Zatwierdź prawidłowy podgląd i sprawdź wynik w historii.
- Jeśli potrzebujesz automatyzacji, włącz ją w zakładce Automatyzacja i dodaj na serwerze zadanie wywołujące wygenerowany adres CRON. Dostępna symulacja pozwala wcześniej sprawdzić wynik bez zapisu kursów.
Warunki działania i zakres aktualizacji
Moduł jest przeznaczony dla PrestaShop 1.7.x, 8.x i 9.x. Wymaga PHP w wersji obsługiwanej przez dane wydanie sklepu, rozszerzenia cURL, prawidłowej obsługi certyfikatów HTTPS i dostępu serwera do API NBP. Tabele przechowujące kursy walut sklepu i historię modułu muszą korzystać z silnika InnoDB. Waluta bazowa musi być aktywna i mieć kurs równy 1; moduł nie zmienia jej na inną.
Aktualizowane są kursy walut danego sklepu, a nie rekordy cen produktów ani wcześniejsze zamówienia. Ceny specjalne, stałe kwoty w walutach obcych, kupony i zaokrąglenia zachowują natywne działanie PrestaShop. W jednym sklepie należy używać jednego mechanizmu automatycznej aktualizacji kursów.
Instalacja nie zmienia obecnych kursów i pozostawia CRON wyłączony. Domyślny bufor wynosi 0%, maksymalna zmiana 10%, minimalna zmiana 0,05%, dopuszczalny wiek publikacji 10 dni, minimalny odstęp automatycznych prób 60 minut, a okres historii 90 dni. Przywrócenie wymaga zachowanego wpisu historii, nadal zgodnych kursów i tej samej waluty bazowej; nie służy do nadpisywania późniejszych zmian.