2つのストアビューの設定があります。
最初のストアビューには、基本と唯一の通貨がUSDに設定されています。2番目の通貨には、USDとEURの2つの通貨が許可されています。EURがデフォルトで表示され、USDが基本として表示されます。
すべての製品の価格は米ドルのみで設定され、ユーロの為替レートは0.75に設定されています。製品の価格は、例えば14ドルとしましょう。
そして私のコードは行く:
// Store ID 2 - default currency EUR, base currency USD
// $product is instance of Magento\Catalog\Model\Product
$priceInfo = $product->getPriceInfo();
$price = $priceInfo->getPrice('regular_price')->getValue();
このコードは常に正しい価格(10.50)をEURでフェッチします。しかし、私は米ドルとユーロの両方の価格が必要ですが、どのgetPrice
方法にも通貨を渡す方法を見つけることができませんでした。
私はMagento\Directory\Helper\Data
変換に使用しようとしました:
$helper->currencyConvert($price, 'EUR', 'USD');
しかし、米ドルでの実際の価格が14ドルの場合、13.99ドルになります。したがって、計算は間違っています。
両方の店舗の通貨で製品の価格を取得する方法を知っていますか?どうもありがとう!