Magento2 複数通貨に対応する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[Magentoめも]]
Magentoを利用する目的は多言語、多通貨対応が目的だと思われ...
複数の通貨に対応する方法です。
*通貨の設定 [#f2c84335]
STORES - Configuration - GENERAL - Currency Setup - Curre...
ベースとする通貨、デフォルトで表示する通貨、表示切り替え...
*通貨レートの設定 [#wa12a128]
通貨を設定するだけでは公開画面では通貨の切り替えはできま...
STORES - Currency Rates にて通貨レートの設定が必要になり...
何も考えずに Import Service を Yahoo Finance Exchange 選...
あとはキャッシュをクリアすれば公開画面で通貨の切り替えが...
*価格表示 [#u4f0dc51]
価格は以下のテンプレートで表示されます。~
vendor/magento/module-catalog/view/base/templates/product...
変更したい場合は、以下にファイルをコピーして変更を加えま...
app/design/frontend/Yassujp/blank/Magento_Catalog/templat...
このテンプレート内で価格を取得する場合は以下でできます。
// インスタンス生成
$objectManager = \Magento\Framework\App\ObjectManager::g...
// 商品データ取得
$productId = $block->getSaleableItem()->getId();
$product = $objectManager->get('Magento\Catalog\Model\Pr...
var_dump(
'regular_price: ' . $block->getSaleableItem()->getPr...
'final_price base: ' . $block->getSaleableItem()->ge...
'final_price: ' . $block->getSaleableItem()->getPric...
'special_price: ' . $block->getSaleableItem()->getPr...
'FinalPrice: ' . $product->getFinalPrice(),
'FinalPrice: ' . $product->getPriceModel()->getFinal...
'CalculatedFinalPrice: ' . $product->getCalculatedFi...
'MinimalPrice: ' . $product->getMinimalPrice(),
'SpecialPrice: ' . $product->getSpecialPrice()
);
*通貨換算 [#xe038489]
**ベース通貨の取得 [#h7427d18]
$objectManager = \Magento\Framework\App\ObjectManager::g...
$storeManager = $objectManager->get('Magento\Store\Model...
$baseCurrencyCode = $storeManager->getStore()->getBaseCu...
**選択中通貨の取得 [#b6b74e1d]
$currencyCode = $storeManager->getStore()->getCurrentCur...
**ベース通貨から選択中通貨への換算 [#n3aa7ada]
$currencyFactory = $objectManager->get('Magento\Director...
$rate = $currencyFactory->create()->load($currencyCode)-...
$currentPrice = $basePrice * $rate;
$priceCurrency = $objectManager->create('Magento\Framewo...
$currentPrice = $priceCurrency->convert($basePrice, null...
$currentPrice = $priceCurrency->convert($basePrice);
// 丸める
$currentPrice = $priceCurrency->round($currentPrice );
終了行:
[[Magentoめも]]
Magentoを利用する目的は多言語、多通貨対応が目的だと思われ...
複数の通貨に対応する方法です。
*通貨の設定 [#f2c84335]
STORES - Configuration - GENERAL - Currency Setup - Curre...
ベースとする通貨、デフォルトで表示する通貨、表示切り替え...
*通貨レートの設定 [#wa12a128]
通貨を設定するだけでは公開画面では通貨の切り替えはできま...
STORES - Currency Rates にて通貨レートの設定が必要になり...
何も考えずに Import Service を Yahoo Finance Exchange 選...
あとはキャッシュをクリアすれば公開画面で通貨の切り替えが...
*価格表示 [#u4f0dc51]
価格は以下のテンプレートで表示されます。~
vendor/magento/module-catalog/view/base/templates/product...
変更したい場合は、以下にファイルをコピーして変更を加えま...
app/design/frontend/Yassujp/blank/Magento_Catalog/templat...
このテンプレート内で価格を取得する場合は以下でできます。
// インスタンス生成
$objectManager = \Magento\Framework\App\ObjectManager::g...
// 商品データ取得
$productId = $block->getSaleableItem()->getId();
$product = $objectManager->get('Magento\Catalog\Model\Pr...
var_dump(
'regular_price: ' . $block->getSaleableItem()->getPr...
'final_price base: ' . $block->getSaleableItem()->ge...
'final_price: ' . $block->getSaleableItem()->getPric...
'special_price: ' . $block->getSaleableItem()->getPr...
'FinalPrice: ' . $product->getFinalPrice(),
'FinalPrice: ' . $product->getPriceModel()->getFinal...
'CalculatedFinalPrice: ' . $product->getCalculatedFi...
'MinimalPrice: ' . $product->getMinimalPrice(),
'SpecialPrice: ' . $product->getSpecialPrice()
);
*通貨換算 [#xe038489]
**ベース通貨の取得 [#h7427d18]
$objectManager = \Magento\Framework\App\ObjectManager::g...
$storeManager = $objectManager->get('Magento\Store\Model...
$baseCurrencyCode = $storeManager->getStore()->getBaseCu...
**選択中通貨の取得 [#b6b74e1d]
$currencyCode = $storeManager->getStore()->getCurrentCur...
**ベース通貨から選択中通貨への換算 [#n3aa7ada]
$currencyFactory = $objectManager->get('Magento\Director...
$rate = $currencyFactory->create()->load($currencyCode)-...
$currentPrice = $basePrice * $rate;
$priceCurrency = $objectManager->create('Magento\Framewo...
$currentPrice = $priceCurrency->convert($basePrice, null...
$currentPrice = $priceCurrency->convert($basePrice);
// 丸める
$currentPrice = $priceCurrency->round($currentPrice );
ページ名: