Ecom house logo

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ą:

  1. Wejdź w Stores > Configuration > General > Locale Options.
  2. W lewym górnym rogu przełącz scope na konkretny Store View (np. EN).
  3. Odznacz Use Default przy Locale i Default Display Currency.
  4. Wprowadź wartości lokalne (np. English / en_US, Default Display Currency = EUR).
  5. 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ź:

  1. Cron Magento działa: bin/magento cron:run (patrz Magento Cron).
  2. Service (np. Fixer.io) zwraca dane - sprawdź ręcznym requestem do API.
  3. Klucz API serwisu kursów jest poprawny i aktywny.
  4. Logi: var/log/system.log powinien zawierać wpis o próbie pobrania kursów.

Ceny w katalogu wyświetlają się w błędnej walucie

  1. Sprawdź Default Display Currency per Store View.
  2. Wyczyść cache: bin/magento cache:clean full_page block_html.
  3. 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