PHP / Magento Dev Blog

  • Home

Magento 2 wrong prices in multi-store – base currency and price rule cache

by Henryk Tews / Tuesday, 25 August 2026 / Published in Magento / Adobe Commerce

A multi-store shop (5 stores, 3 currencies) started showing wrong prices – the euro price appeared on the PLN store and vice versa. The problem appeared after adding a new store and only affected products with price rules. Fix time: 6 hours.

Symptoms

  • Prices in wrong currency on selected stores
  • Problem only for products with catalog price rules
  • Reindex does not help
  • Duplicate entries in catalogrule_product_price for different store_id with the same prices

Diagnosis

SELECT crpp.product_id, crpp.website_id, crpp.rule_price, w.name as website_name
FROM catalogrule_product_price crpp
JOIN store_website w ON w.website_id = crpp.website_id
WHERE crpp.product_id = 123
ORDER BY crpp.website_id;

SELECT scope_id, value
FROM core_config_data
WHERE path = 'currency/options/base'
ORDER BY scope_id;

Cause

The new store was added by copying an existing store’s configuration. The currency/options/base value remained from the original store (EUR instead of PLN). Price rules were converting at the wrong base rate.

Solution

bin/magento config:set --scope=websites --scope-code=pl_store currency/options/base PLN
bin/magento config:set --scope=websites --scope-code=eu_store currency/options/base EUR

bin/magento catalogrule:apply
bin/magento indexer:reindex catalogrule_rule catalogrule_product
bin/magento cache:flush

Takeaways

Creating new stores by copying configuration is risky – always check base currency, timezone and locale after adding a store. In multi-store setups every price operation requires explicitly setting the store context, otherwise the default store is used.

About Henryk Tews

What you can read next

Xdebug – configuration, PHPStorm, debugging Magento plugins
Strategy pattern in PHP – and how Magento 2 uses it in pricing

© 2026 Created by

TOP
Zarządzaj zgodą
Aby zapewnić jak najlepsze wrażenia, korzystamy z technologii, takich jak pliki cookie, do przechowywania i/lub uzyskiwania dostępu do informacji o urządzeniu. Zgoda na te technologie pozwoli nam przetwarzać dane, takie jak zachowanie podczas przeglądania lub unikalne identyfikatory na tej stronie. Brak wyrażenia zgody lub wycofanie zgody może niekorzystnie wpłynąć na niektóre cechy i funkcje.
Funkcjonalne Always active
Przechowywanie lub dostęp do danych technicznych jest ściśle konieczny do uzasadnionego celu umożliwienia korzystania z konkretnej usługi wyraźnie żądanej przez subskrybenta lub użytkownika, lub wyłącznie w celu przeprowadzenia transmisji komunikatu przez sieć łączności elektronicznej.
Preferencje
Przechowywanie lub dostęp techniczny jest niezbędny do uzasadnionego celu przechowywania preferencji, o które nie prosi subskrybent lub użytkownik.
Statystyka
Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do celów statystycznych. Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do anonimowych celów statystycznych. Bez wezwania do sądu, dobrowolnego podporządkowania się dostawcy usług internetowych lub dodatkowych zapisów od strony trzeciej, informacje przechowywane lub pobierane wyłącznie w tym celu zwykle nie mogą być wykorzystywane do identyfikacji użytkownika.
Marketing
Przechowywanie lub dostęp techniczny jest wymagany do tworzenia profili użytkowników w celu wysyłania reklam lub śledzenia użytkownika na stronie internetowej lub na kilku stronach internetowych w podobnych celach marketingowych.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
Zobacz preferencje
  • {title}
  • {title}
  • {title}