Waluta i lokalizacja w Magento 2
Opublikowano: 17 lipca 2026
Magento z natury jest wielowalutowe i wielojęzyczne - ten poradnik pokazuje, jak skonfigurować podstawową lokalizację dla sklepu polskiego (PLN, format daty PL, strefa czasowa Warsaw) i jak rozszerzyć ją o dodatkowe waluty (EUR, USD).
Lokalizacja sklepu
Ścieżka: Stores > Configuration > General > General > Locale Options
| Pole | Wartość dla sklepu PL |
|---|---|
| Timezone | Europe/Warsaw |
| Locale | Polish (Poland) / pl_PL |
| Weekend Days | Saturday, Sunday |
| First Day of Week | Monday |
| Country Code | Poland (w Country Options) |
Zapisz Save Config.
Wpływ na cały sklep: Timezone wpływa na wszystkie daty w systemie - zamówienia, raporty, harmonogram cron-a, daty publikacji CMS. Ustaw raz, na początku - późniejsza zmiana wymaga przemyślenia (raporty historyczne pozostają w starej strefie).
Waluta - konfiguracja podstawowa
Ścieżka: Stores > Configuration > General > Currency Setup
Currency Options
| Pole | Wartość dla sklepu PL |
|---|---|
| Base Currency | Polish Zloty (PLN) - waluta bazowa, w której zapisywane są transakcje. |
| Default Display Currency | Polish Zloty (PLN) |
| Allowed Currencies | Polish Zloty (PLN) (opcjonalnie: EUR, USD) |
Zapisz Save Config.
Base Currency = stała decyzja: Base Currency to waluta, w której zapisywane są wszystkie transakcje w bazie. Zmiana po starcie sklepu wymaga ponownego przeliczenia wszystkich historycznych zamówień - w praktyce niewykonalna bez utraty danych. Ustaw od razu na właściwą walutę.
WAŻNE waluta zawsze powiązana jest z poziomiem Website - czego nie da się zmienić bez odpowiednich modyfikacji lub wtyczek; w związku z tym cenę dla danego Website ustawiasz zawsze w tej walucie; jeśli chcesz prowadzić Multistore z wieloma walutami ale pod jedną domeną, wymaga to odpowiedniego przygotowania architektonicznego i dobrej architektury od specjalisty Magento 2.
Konfiguracja wielu walut
Jeśli sklep obsługuje wiele walut (np. PLN dla rynku PL, EUR dla rynku DE):
Na przykładzie jednego Website z wieloma językami i poglądowym przewalutowaniem
Krok 1. Dodaj waluty do Allowed Currencies
Stores > Configuration > General > Currency Setup > Currency Options > Allowed Currencies
Wybierz waluty, które klient ma widzieć w selektorze waluty na froncie sklepu.
Krok 2. Ustaw Service dla kursów wymiany
Stores > Configuration > General > Currency Setup > WebserviceX
Magento ma natywne wsparcie dla kilku serwisów kursów:
- WebserviceX (legacy, często niedziałający)
- Fixer.io (zalecane, wymaga API key)
- Currency Converter API
Dla rynku polskiego polecamy moduł ecomhouse-nbpcurrencyrate (archiwalny) - pobiera kursy z API Narodowego Banku Polskiego, oficjalne i wiarygodne. Jeśli nie używasz tego modułu, skonfiguruj Fixer.io.
Krok 3. Skonfiguruj kursy ręcznie
Stores > Currency Rates (menu Stores > Currency)
Wprowadź kursy wymiany ręcznie:
1 PLN = 0.2174 EUR
1 PLN = 0.2354 USD
Magento użyje tych kursów do wyświetlenia produktów w wybranej walucie, ale transakcje zapisze w Base Currency (PLN).
Krok 4. Zaplanuj automatyczną aktualizację kursów
Stores > Configuration > General > Currency Setup > Scheduled Import Settings
| Pole | Wartość |
|---|---|
| Enabled | Yes |
| Service | wybrany serwis (np. Fixer.io) |
| Start Time | 02 : 00 : 00 (2:00 w nocy) |
| Frequency | Daily |
| Error Email Recipient | email do powiadomień o błędach pobrania |
Magento codziennie pobierze świeże kursy i zaktualizuje je w sklepie (wymaga działającego cron-a - patrz Magento Cron).
Format ceny
Ścieżka: Stores > Configuration > General > General > Locale Options
Format ceny dziedziczy z Locale - dla pl_PL Magento użyje:
- Separator dziesiętny:
,(przecinek) - Separator tysięcy:
(spacja nierozdzielająca) - Symbol waluty: za kwotą, np.
99,99 zł
Magento nie pozwala bezpośrednio modyfikować formatu - wynika on z PHP-owej biblioteki ICU. Drobne zmiany (np. inny symbol waluty) wymagają interwencji dewelopera.
Adres sklepu (Country Options)
Ścieżka: Stores > Configuration > General > General > Country Options
| Pole | Wartość |
|---|---|
| Default Country | Poland |
| Allow Countries | Kraje, do których sklep wysyła zamówienia (PL + UE + kraje BREXIT zależnie od strategii). |
| Zip/Postal Code is Optional for | Lista krajów bez kodu pocztowego (rzadko używane). |
| Top Destinations | Kraje wyświetlane na początku listy w checkoutcie (np. PL, DE, UK). |
Allow Countries vs strefy dostaw: Allow Countries to lista krajów, gdzie klient może w ogóle złożyć zamówienie. Niezależnie od tego konfigurujesz strefy dostaw w metodach wysyłki (patrz Metody dostawy) - możesz np. pozwolić na zamówienia z UK, ale wyłączyć dla nich darmową dostawę.
Wielojęzyczność - preferowany język frontu
Jeśli sklep ma kilka Store View (PL, EN, DE) - każde może mieć inny Locale i inną walutę domyślną:
- Wejdź w
Stores > Configuration > General > Locale Options. - W lewym górnym rogu przełącz scope na konkretny Store View (np. EN).
- Odznacz
Use DefaultprzyLocaleiDefault Display Currency. - Wprowadź wartości lokalne (np.
English / en_US,Default Display Currency = EUR). - Zapisz.
Pełen przewodnik wielojęzyczności - patrz Storeviews.
Najczęstsze problemy
Daty w panelu są "out of sync" o godzinę
Sprawdź Timezone - Europe/Warsaw automatycznie obsługuje zmianę czasu letni / zimowy. Jeśli ustawione Europe/Berlin lub stała offset (+01:00) - daty mogą być przesunięte o godzinę przez pół roku.
Kursy walut się nie aktualizują automatycznie
Sprawdź:
- Cron Magento działa:
bin/magento cron:run(patrz Magento Cron). - Service (np. Fixer.io) zwraca dane - sprawdź ręcznym requestem do API.
- Klucz API serwisu kursów jest poprawny i aktywny.
- Logi:
var/log/system.logpowinien zawierać wpis o próbie pobrania kursów.
Ceny w katalogu wyświetlają się w błędnej walucie
- Sprawdź Default Display Currency per Store View.
- Wyczyść cache:
bin/magento cache:clean full_page block_html. - Sprawdź, czy klient nie ma wybranej innej waluty w selektorze waluty na froncie.
Zmiana Locale nie zmienia języka panelu
Locale w General Options zmienia front sklepu, nie panel admina. Język panelu admina ustawia się per konto admina:
System > Permissions > All Users > [twój login] > Interface Locale
NIP polski nie waliduje się w checkoutcie
To temat podatków, nie lokalizacji - patrz Konfiguracja podatków (VAT).
Powiązane
- Konfiguracja podatków (VAT) - VAT, Tax Rules, walidacja NIP
- Metody dostawy - strefy dostaw, ograniczenia per kraj
- Storeviews - wersje językowe - wielojęzyczność sklepu