Magento Baseを変更して通貨を表示する(そしてバックエンドの価格を自動更新し、EUR - > RON)
-
11-12-2019 - |
質問
私は約400の製品を備えた古いMagento Ecommerceサイトを持っています。当初、バックエンドでもフロントエンドの両方でユーロになるようにされました。私はそれを現地通貨に完全に移行する必要があります。これは私が今のことをしたものです。そして、私は基本為替レートを設定してから、WebServiceXから毎日更新するように設定します。これは私の問題の半分を解決しました。ユーザーが入ったときに、彼はローカル通貨のサイトを提示し、そのオプションはトップバーでEURに切り替えることができます。しかし、私の問題は私が新しい製品を追加するとき、私をEURに尋ねます。私はどういうわけか、基本通貨を地元のRONとして設定する必要があります。しかし、私がRonにそれを設定した場合、価格は更新されません! - ベースがEURに設定されてRONに表示されている場合は、500EURの製品が2300rOとして表示されます。ベースとディスプレイの両方がRONにあるとき、500EURの製品が500ロンとして表示され、RONをベースとして設定した場合、変換は機能しません。私はEUR - >から自動的に価格を自動的に変換する必要があるので、RONに基づいてロンに基づいてデフォルトで入力することができます。どうやってやるの?私は手動で400製品を更新することはできません。
解決
これは価格を変えるべきものです。
私はそれが直接DBに触れることによってそれをするのが最善の方法ではないことを知っていますが、それは速くそしてそれが機能します。
これを試す前にDBをバックアップしてください。
だからすべての価格関連の値は、価格が遅い場合に備えて、表catalog_product_entity_decimal
とcatalog_product_entity_tier_price
に保持されます。
階層価格の場合は簡単です。
列value
の値を変換された値で更新するだけです。
したがって、今日1Eの変換率は4.4193 Ronです。
このクエリを実行してください:
UPDATE `catalog_product_entity_tier_price` set `value ` = 4.4193 * `value`;
.
これはそれを解決する必要があります。
残りの価格のためにそれほど簡単ではありません。
まず、price
とspecial_price
の属性IDを識別する必要があります。
そのためにこのクエリを実行してください。
SELECT
*
FROM
`eav_attribute` e
LEFT JOIN `eav_entity_type` et ON `e`.`entity_type_id` = `et`.`entity_type_id`
WHERE
`e`.`attribute_code` IN ('price', 'special_price') AND
`et`.`entity_type_code` = 'catalog_product'
.
これは2行を生成するはずです。列attribute_id
値を取り出し、それらを以下のクエリで使用してください。私のためにこれらの値は75
と76
でした。
価格を更新するためにこのクエリを実行してください。
UPDATE
`catalog_product_entity_decimal`
SET
`value` = 4.4193 * `value`
WHERE
`attribute_id` IN (75, 76)
.
再び4.4193
は為替レートです。
今すぐあなたの基本通貨をRONに設定することができます。 キャッシュをクリアしてすべてを再インデックスします。