WooCommerce nie przelicza walut w koszyku – jak naprawić?

WooCommerce • sklep wielowalutowy

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.

skuteczne SEO reklama PC
skuteczne SEO reklama mobile

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.

Najważniejsze informacje w skrócie
✓

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 waluty

Może to być np.:

PLN – polski złoty

Wszystkie standardowe ceny produktów są wtedy budowane wokół tej waluty.

Jeżeli chcę dodatkowo pokazywać EUR, USD czy GBP, potrzebuję mechanizmu wielowalutowego.

Sama zmiana waluty bazowej nie przelicza cen.

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?

01 Cena bazowa

Produkt ma cenę zapisaną np. w PLN.

02 Wybrana waluta

Klient wybiera np. EUR albo system robi to automatycznie.

03 Przeliczenie

Moduł pobiera kurs lub korzysta z ceny ustawionej ręcznie.

04 Koszyk i płatność

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 EUR

ale po przejściu do płatności właściwe zamówienie nadal zostanie utworzone w PLN.

Tylko wyświetlanie Przelicznik cen

Klient widzi orientacyjną wartość w swojej walucie, ale sklep rozlicza zamówienie w walucie bazowej.

Pełne multi-currency Płatność w wybranej walucie

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

Nastę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 EUR

Technicznie moduł działa wtedy zgodnie z ustawieniem, tylko samo ustawienie jest błędne.

Kurs automatyczny czy ceny ustawiane ręcznie?

Opcja 1 Kurs automatyczny

Cena jest wyliczana na podstawie kursu pobieranego przez wykorzystywany system.

Opcja 2 Kurs ręczny

Sam ustalasz przelicznik i kontrolujesz, kiedy ulega zmianie.

Opcja 3 Stała cena w walucie

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.

Nie wyłączam całego cache na stałe.

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 panelu

Jeż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ła

jeś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 PLN

Taki 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 PLN

W 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 EUR

tylko 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 EUR

ale 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 → GBP

To 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 USD

Technicznie 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.

Surowy kurs 47,38 EUR

Matematycznie poprawnie, ale cena może wyglądać przypadkowo.

Cena handlowa 49,00 EUR

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?

01

Sprawdzam walutę bazową

Ustalam, w jakiej walucie zapisane są ceny produktów i która waluta jest ustawiona jako główna w WooCommerce.

02

Sprawdzam tryb wtyczki wielowalutowej

Czy ma tylko prezentować ceny, czy pozwalać klientowi faktycznie zapłacić w wybranej walucie?

03

Weryfikuję kurs

Sprawdzam wartość kursu, źródło aktualizacji i ewentualne ceny ustawione ręcznie.

04

Testuję wybór waluty bez cache

Sprawdzam tryb incognito i tymczasowo eliminuję wpływ cache, żeby zobaczyć zachowanie samego systemu.

05

Przechodzę cały koszyk i checkout

Obserwuję, czy waluta pozostaje taka sama na każdym etapie procesu zakupowego.

06

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.

07

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.

Pomoc techniczna WooCommerce

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.

FAQ

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.


Stronynazlecenie.pl
Przegląd prywatności

Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na stronę internetową i pomaganie w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.

Więcej informacji znajdziesz w polityce prywatności.

Wyceń usługę za darmo →