Na stronie produktu widzisz 49 EUR, dodajesz produkt do koszyka, a WooCommerce nagle pokazuje 199 PLN? Albo przełącznik waluty zmienia symbol z „zł” na „€”, ale wartość koszyka pozostaje dokładnie taka sama? To znak, że mechanizm wielowalutowy nie działa spójnie w całym procesie zakupowym.
Przy takim problemie nie patrzę wyłącznie na sam currency switcher. Sprawdzam cały przepływ: walutę bazową, kurs, sposób przechowywania wyboru klienta, koszyk, checkout, cache, wysyłkę oraz bramkę płatności.
Sklep wielowalutowy działa poprawnie dopiero wtedy, gdy klient widzi logiczną cenę od strony produktu aż do momentu faktycznego obciążenia karty lub konta.
WooCommerce posiada jedną walutę bazową sklepu.
Obsługę wielu walut zapewnia dodatkowy moduł albo rozwiązanie płatnicze z funkcją multi-currency.
Wyświetlanie ceny w EUR nie zawsze oznacza, że klient faktycznie zapłaci w EUR.
Cache może powodować, że produkt pokazuje nową walutę, a koszyk otrzymuje starą wersję ceny.
Bramka płatnicza musi obsługiwać walutę, w której ma zostać utworzone zamówienie.
Po wdrożeniu testuję również kupony, dostawę, podatki i zaokrąglenia.
Najpierw: WooCommerce sam z siebie nie jest sklepem wielowalutowym
W podstawowej konfiguracji WooCommerce wybieram jedną główną walutę sklepu:
WooCommerce
→ Ustawienia
→ Ogólne
→ Opcje walutyMoże to być np.:
PLN – polski złotyWszystkie standardowe ceny produktów są wtedy budowane wokół tej waluty.
Jeżeli chcę dodatkowo pokazywać EUR, USD czy GBP, potrzebuję mechanizmu wielowalutowego.
Jeżeli produkt kosztuje liczbowo 100 i zmienisz walutę sklepu z PLN na EUR, nie oznacza to automatycznie przeliczenia 100 PLN na odpowiednią wartość w euro.
Jak powinno działać przeliczanie walut w WooCommerce?
Produkt ma cenę zapisaną np. w PLN.
Klient wybiera np. EUR albo system robi to automatycznie.
Moduł pobiera kurs lub korzysta z ceny ustawionej ręcznie.
Właściwa cena i waluta trafiają dalej do zamówienia.
Jeżeli produkt przelicza się prawidłowo, ale po dodaniu do koszyka waluta wraca do bazowej, oznacza to, że proces przerywa się pomiędzy drugim a czwartym etapem.
Wyświetlanie waluty a płatność w walucie – to nie zawsze to samo
To jedna z pierwszych rzeczy, które sprawdzam.
Część rozwiązań działa wyłącznie jako przelicznik dla użytkownika. Klient może więc zobaczyć:
Produkt: około 49 EURale po przejściu do płatności właściwe zamówienie nadal zostanie utworzone w PLN.
Klient widzi orientacyjną wartość w swojej walucie, ale sklep rozlicza zamówienie w walucie bazowej.
Wybrana waluta jest zachowywana w koszyku, checkout i samym zamówieniu.
Oba modele mogą być poprawne. Problem pojawia się wtedy, gdy właściciel sklepu oczekuje jednego zachowania, a używana wtyczka została skonfigurowana w drugim trybie.
Najczęstsze objawy źle skonfigurowanego sklepu wielowalutowego
| Objaw | Co sprawdzam w pierwszej kolejności? |
|---|---|
| Produkt pokazuje EUR, koszyk PLN | Tryb checkoutu, sesję klienta i cache. |
| Zmienia się symbol, ale nie liczba | Kurs wymiany i konfigurację mechanizmu przeliczania. |
| Po odświeżeniu waluta wraca do PLN | Cookie, sesję i sposób zapisywania wyboru waluty. |
| Checkout zmienia EUR z powrotem na PLN | Ustawienie waluty checkoutu i zgodność bramki płatniczej. |
| Produkty są w EUR, wysyłka nadal w PLN | Konfigurację stawek wysyłki dla wielu walut. |
| Ceny różnią się zależnie od urządzenia | Cache, CDN i geolokalizację. |
1. Sprawdź walutę bazową sklepu
Zaczynam od najprostszego elementu.
Jeżeli ceny produktów zostały wpisane w PLN, waluta bazowa sklepu również powinna odpowiadać temu modelowi.
Przykładowo:
Waluta bazowa: PLN
Produkt:
199,00 PLN
Waluta dodatkowa:
EURNastępnie wtyczka wielowalutowa oblicza cenę EUR na podstawie ustalonego kursu albo zapisanej ceny ręcznej.
2. Sprawdź kurs waluty
Jeżeli zmienia się symbol, ale wartość ceny pozostaje identyczna, sprawdzam kurs.
W uproszczeniu:
Cena bazowa:
100 PLN
Przykładowy kurs:
1 PLN = 0,23 EUR
Cena po przeliczeniu:
23 EUR
Jeżeli w konfiguracji kurs EUR wynosi przypadkowo 1,
system może wyświetlić:
100 PLN → 100 EURTechnicznie moduł działa wtedy zgodnie z ustawieniem, tylko samo ustawienie jest błędne.
Kurs automatyczny czy ceny ustawiane ręcznie?
Cena jest wyliczana na podstawie kursu pobieranego przez wykorzystywany system.
Sam ustalasz przelicznik i kontrolujesz, kiedy ulega zmianie.
Np. produkt kosztuje 199 PLN, ale w EUR zawsze ustawiasz 49 EUR.
W trzecim modelu nie interesuje mnie bieżący kurs walutowy. Mogę świadomie ustalić cenę marketingową:
PLN: 199,00 zł
EUR: 49,00 €
GBP: 42,00 £To często daje większą kontrolę nad końcówkami cen niż automatyczne przeliczanie co do grosza.
3. Sprawdź, czy wybrana waluta jest zapamiętywana
Klient wybiera EUR na stronie produktu. Następnie przechodzi do koszyka. Sklep musi wiedzieć, że ten sam użytkownik nadal chce korzystać z EUR.
Wtyczki wielowalutowe mogą przechowywać wybór np. w:
- cookie przeglądarki,
- sesji użytkownika,
- transiencie,
- parametrze URL,
- mechanizmie AJAX.
Jeżeli ta informacja zostanie utracona pomiędzy stroną produktu a koszykiem, WooCommerce może wrócić do waluty domyślnej.
4. Cache to jeden z najczęstszych winowajców
Wyobraźmy sobie, że pierwszy użytkownik otworzył produkt w PLN. System cache zapisuje gotowy HTML.
Chwilę później klient z Niemiec wybiera EUR, ale zamiast dynamicznie wygenerowanej strony dostaje wcześniejszą wersję cache przygotowaną dla PLN.
Objawy potrafią być bardzo różne:
- przełącznik pokazuje EUR, a cena nadal jest w PLN,
- produkt jest w EUR, ale koszyk wraca do PLN,
- po odświeżeniu wraca poprzednia waluta,
- incognito pokazuje inną walutę niż normalna przeglądarka,
- problem występuje tylko na części urządzeń.
Sprawdzam wtedy zarówno cache WordPressa, jak i CDN oraz cache po stronie hostingu.
Najpierw sprawdzam dokumentację konkretnej wtyczki wielowalutowej i wykluczam właściwe cookies, sesje albo dynamiczne strony. Koszyk i checkout i tak wymagają znacznie ostrożniejszego podejścia do cache.
5. Sprawdź osobno produkt, koszyk i checkout
Nie kończę testu na tym, że cena zmieniła się na karcie produktu.
Testuję kolejno:
sklep
↓
produkt
↓
dodaj do koszyka
↓
mini-cart
↓
koszyk
↓
checkout
↓
bramka płatności
↓
zamówienie w paneluJeżeli waluta zmienia się dopiero na którymś etapie, wiem, gdzie zacząć szukać konfliktu.
6. Bramka płatnicza może nie obsługiwać wybranej waluty
To bardzo ważny punkt przy prawdziwym multi-currency.
Sklep może poprawnie pokazywać USD albo EUR, ale jeżeli konkretna metoda płatności akceptuje wyłącznie wybrane waluty, może:
- zniknąć z checkoutu,
- wymusić inną walutę,
- zwrócić błąd przy tworzeniu płatności.
Dlatego sprawdzam każdą aktywną bramkę osobno.
Nie wystarczy test:
EUR → karta działajeśli sklep dodatkowo udostępnia przelew lokalny, BLIK, PayPal czy inną metodę mającą własne ograniczenia.
7. Wysyłka też musi być prawidłowo przeliczana
Sklep wielowalutowy nie składa się wyłącznie z cen produktów.
Przykład:
Produkt:
49 EUR
Wysyłka:
19 PLNTaki koszyk od razu wygląda podejrzanie.
W zależności od używanego modułu koszt dostawy może być:
- automatycznie przeliczany z waluty bazowej,
- ustawiany osobno dla każdej waluty,
- pobierany dynamicznie z integracji przewoźnika.
Dlatego po zmianie waluty zawsze sprawdzam też wszystkie aktywne metody dostawy.
8. Sprawdź kupony i progi darmowej dostawy
Szczególnej uwagi wymagają kwoty stałe.
Załóżmy, że w PLN masz:
Kupon: 50 PLN
Darmowa wysyłka od: 300 PLNW sklepie wielowalutowym trzeba ustalić, jak system interpretuje te wartości po przejściu na EUR.
Nie chcę sytuacji, w której kupon „50” zostaje potraktowany jako:
50 EURtylko dlatego, że zmienił się kod waluty.
Testuję więc:
- kupony kwotowe,
- kupony procentowe,
- minimalne wartości zamówienia,
- progi darmowej dostawy,
- podatki.
9. Dynamiczne ceny mogą konfliktować z currency switcherem
Im więcej systemów modyfikuje cenę produktu, tym więcej miejsc może powodować problem.
Dotyczy to szczególnie wtyczek:
- dynamic pricing,
- rabatów ilościowych,
- cen hurtowych B2B,
- konfiguratorów produktów,
- dodatków produktowych,
- indywidualnych cen zależnych od użytkownika.
Przykładowo jedna wtyczka może prawidłowo przeliczyć:
199 PLN → 46 EURale później inny fragment kodu ponownie nadpisze cenę bazową wartością 199.
Wtedy na produkcie zobaczysz EUR, a koszyk może ponownie dostać cenę w logice bazowej.
10. Geolokalizacja może zmieniać walutę automatycznie
Część sklepów nie pozwala klientowi wybierać waluty ręcznie. System ustala ją na podstawie lokalizacji.
Przykładowo:
Polska → PLN
Niemcy → EUR
Wielka Brytania → GBPTo wygodne rozwiązanie, ale podczas testów muszę pamiętać, że waluta może zależeć od:
- adresu IP,
- kraju rozliczeniowego,
- kraju wysyłki,
- wcześniejszego wyboru użytkownika.
Przy VPN, Cloudflare albo agresywnym cache wyniki mogą być inne, niż właściciel sklepu oczekuje.
11. Waluta zmienia się dopiero po wpisaniu kraju w checkout?
To nie zawsze jest błąd.
Niektóre konfiguracje pozwalają zmieniać aktywną walutę dopiero na podstawie kraju rozliczeniowego albo kraju dostawy.
Klient może więc przeglądać produkty w EUR, ale po wpisaniu polskiego adresu checkout przełączy się na PLN, jeśli tak została skonfigurowana logika sklepu.
Jeżeli chcę zachować walutę wybraną ręcznie przez użytkownika, wyłączam konfliktujące automatyczne reguły.
12. Zadbaj o zaokrąglanie cen
Automatyczny kurs bardzo łatwo tworzy ceny w rodzaju:
47,38 EUR
23,71 GBP
51,14 USDTechnicznie mogą być poprawne, ale marketingowo nie zawsze wyglądają dobrze.
Dlatego w zależności od systemu konfiguruję zaokrąglenia, końcówki cen albo stałe ceny dla konkretnych walut.
Matematycznie poprawnie, ale cena może wyglądać przypadkowo.
Można ustawić świadomie, jeśli używane rozwiązanie pozwala definiować ceny per waluta.
13. Sprawdź walutę zapisaną w samym zamówieniu
Ostatecznym testem nie jest frontend.
Składam testowe zamówienie i sprawdzam w panelu WooCommerce:
- walutę zamówienia,
- ceny pozycji,
- podatek,
- koszt wysyłki,
- rabat,
- finalną sumę.
Następnie porównuję to z kwotą wysłaną do operatora płatności.
Jak diagnozuję problem krok po kroku?
Sprawdzam walutę bazową
Ustalam, w jakiej walucie zapisane są ceny produktów i która waluta jest ustawiona jako główna w WooCommerce.
Sprawdzam tryb wtyczki wielowalutowej
Czy ma tylko prezentować ceny, czy pozwalać klientowi faktycznie zapłacić w wybranej walucie?
Weryfikuję kurs
Sprawdzam wartość kursu, źródło aktualizacji i ewentualne ceny ustawione ręcznie.
Testuję wybór waluty bez cache
Sprawdzam tryb incognito i tymczasowo eliminuję wpływ cache, żeby zobaczyć zachowanie samego systemu.
Przechodzę cały koszyk i checkout
Obserwuję, czy waluta pozostaje taka sama na każdym etapie procesu zakupowego.
Sprawdzam bramki i dostawę
Upewniam się, że używana waluta jest obsługiwana przez metodę płatności i właściwie stosowana również do kosztu dostawy.
Składam prawdziwe zamówienie testowe
Sprawdzam finalną walutę i kwotę zarówno w WooCommerce, jak i po stronie operatora płatności.
Co warto przetestować przed uruchomieniem sklepu wielowalutowego?
| Element | PLN | EUR | GBP / USD |
|---|---|---|---|
| Produkt | Cena poprawna | Cena poprawna | Cena poprawna |
| Koszyk | Waluta zachowana | Waluta zachowana | Waluta zachowana |
| Wysyłka | Poprawna stawka | Poprawna stawka | Poprawna stawka |
| Kupon | Poprawny rabat | Poprawny rabat | Poprawny rabat |
| Płatność | Metoda dostępna | Metoda dostępna | Metoda dostępna lub świadomie wyłączona |
| Zamówienie | Poprawna suma | Poprawna suma | Poprawna suma |
Nie instaluj kilku currency switcherów jednocześnie
To rozwiązanie, które czasami widzę po kilku nieudanych próbach: jedna wtyczka nie działała, więc została druga, później trzecia.
W efekcie kilka rozszerzeń próbuje jednocześnie:
- zmieniać aktywną walutę,
- filtrować ceny,
- zapisywać sesję,
- przeliczać koszyk.
To bardzo dobry przepis na niespójne ceny.
Wolę jeden dobrze dobrany system wielowalutowy, który jest kompatybilny z pozostałymi elementami sklepu.
Jak zaplanować sklep wielowalutowy od początku?
Przy nowym sklepie najpierw ustalam model sprzedaży, a dopiero później wybieram narzędzie.
Odpowiadam sobie na kilka pytań:
- Czy klient ma tylko widzieć cenę w swojej walucie?
- Czy ma również płacić w tej walucie?
- Czy kurs ma być automatyczny?
- Czy ceny zagraniczne mają być ustawiane ręcznie?
- Czy waluta zależy od lokalizacji?
- Jakie bramki płatności będą wykorzystywane?
- Czy sklep ma sprzedawać również poza UE?
Dzięki temu przy tworzeniu sklepu internetowego WooCommerce mogę dobrać rozwiązanie pod proces sprzedaży, a nie próbować później dopasowywać cały sklep do przypadkowo zainstalowanego currency switchera.
Produkt pokazuje EUR, ale koszyk wraca do PLN?
Mogę sprawdzić walutę bazową, currency switcher, kursy wymiany, cache, sesję WooCommerce, dostawę, kupony oraz zgodność bramek płatniczych. Dzięki temu klient zobaczy spójną cenę od produktu aż do finalnej płatności.
WooCommerce i wiele walut – najczęstsze pytania
Dlaczego WooCommerce nie przelicza waluty w koszyku?
Najczęściej sprawdzam konfigurację wtyczki wielowalutowej, sposób przechowywania wyboru waluty, kurs wymiany oraz cache. Problem może również powodować konflikt z innym rozszerzeniem zmieniającym ceny produktów.
Dlaczego cena produktu jest w EUR, a koszyk w PLN?
Może to oznaczać, że system tylko wyświetla cenę w drugiej walucie, ale checkout nadal pracuje w walucie bazowej, albo że wybór waluty nie został poprawnie zachowany po dodaniu produktu do koszyka.
Czy WooCommerce obsługuje wiele walut bez wtyczki?
Podstawowy WooCommerce korzysta z jednej waluty bazowej. Do prezentowania lub przyjmowania płatności w wielu walutach potrzebny jest dodatkowy mechanizm wielowalutowy, np. odpowiednia funkcja systemu płatności albo rozszerzenie multi-currency.
Czy można płacić w EUR w polskim sklepie WooCommerce?
Tak, jeśli sklep został skonfigurowany do przyjmowania zamówień w EUR, a używana metoda płatności obsługuje tę walutę. Samo wyświetlenie ceny w EUR nie wystarcza.
Czy cache może powodować błędną walutę w WooCommerce?
Tak. Jeżeli cache zwraca wersję strony przygotowaną dla innej waluty, klient może zobaczyć stare ceny albo walutę innego użytkownika. Dlatego system wielowalutowy musi być prawidłowo skonfigurowany z używanym mechanizmem cache.
Dlaczego currency switcher zmienia symbol, ale nie cenę?
Sprawdzam przede wszystkim kurs wymiany oraz to, czy wtyczka rzeczywiście przelicza wartości, czy tylko modyfikuje sposób wyświetlania waluty. Nieprawidłowy kurs ustawiony na 1 może również powodować identyczne wartości w obu walutach.
Czy koszt wysyłki też powinien zmieniać walutę?
Jeżeli całe zamówienie jest realizowane w wybranej walucie klienta, koszt dostawy również powinien być z nią spójny. W zależności od wtyczki może być automatycznie przeliczany albo ustawiany osobno dla każdej waluty.
Czy lepiej korzystać z automatycznego kursu czy ustawić ceny ręcznie?
Zależy od modelu sklepu. Automatyczny kurs upraszcza zarządzanie dużym katalogiem, natomiast ręczne ceny pozwalają ustawić atrakcyjne końcówki i niezależną politykę cenową dla konkretnych rynków.

Kamil Sudoł – freelancer WordPress & SEO. Od 2015 roku tworzę i rozwijam strony internetowe oraz sklepy WooCommerce, a także zajmuję się SEO i widocznością firm w Google. Na blogu publikuję praktyczne materiały dotyczące WordPressa, SEO, UX i marketingu internetowego.




















