Magento Community Edition 1.8とEnterprise Edition 1.13ではTaxモジュールに大幅な改修が加えられました。
これに伴い、公式のナレッジベースには税設定に関するベストプラクティスが追加されています。

Taxモジュールの大幅な改修とは?

Taxモジュールは全体で35,000行を超えるソースコードから構成されるモジュールです。
公式のナレッジベースからピックアップした改修点について見ていくことにしましょう。 

全般的なTaxモジュールの改修

 正しくない税設定に関する警告の表示

 Magentoには税を計算する基準として、

  • 商品単価
  • 行合計
  • 伝票合計

の3つがあります。
この設定と、 

  • 商品価格の税込・税抜の設定
  • 価格表示の設定(税込・税抜・両方表示)

が組み合わさると、正しく計算されない問題がありました。
Magento CE 1.8以降では、正しく計算されない組み合わせの場合に、管理画面上で以下のような警告が表示されます。

 正しくない税設定の警告

さらに、割引の適用方法によっては同様に警告が表示されます。
なぜかというと、国によって割引の適用対象価格が異なるからです。
これは国ごとに税制が異なり、税込額に割引を適用する国・地域と、税抜額に割引を適用する国・地域があるからです。

税の設定はウェブサイト単位でしか設定できないので、国をまたいだネットショップを運営する場合は、2国間あるいはそれ以上の国の間で、どのような取り決めがなされているかをきちんと把握する必要があります。

セット商品に関する価格計算方法の改修

セット商品を構成する商品の価格計算は、以下の計算式によって計算されるようになりました。

  • 構成商品の価格 = 構成商品のベース価格 x 価格階層または値引き率
  • 端数丸め後の価格= 構成商品の価格 x 個数 の四捨五入したものの合計

また、個数に小数を使用する場合は、以下の式となります。

  • 端数丸め後の価格= 構成商品の価格 x 小数の個数 の四捨五入したものの合計

CE-1.7 / EE-1.12までと処理に変化が起きているので、バージョンアップをする際は、これらの計算式がカスタマイズ箇所に対して悪影響を及ぼしていないか、検証する必要があります。

小数点以下の桁数に関する取り扱い

Magentoは従来、小数点以下2桁までしか税のデータを保持してきませんでした。
しかし、一部の外部サービスなどでは小数点以下第4位までの数値を使用するケースがあり、データの不整合を生んでいました。
CE-1.8 / EE-1.13以降では、小数点以下第4位まできちんとデータを記録するようになったため、表示される価格は従来通りなのですが、外部とのデータ交換については正しく動作するようになりました。 

端数丸め処理の改修 

おもに1セントの誤差に対する改修なのですが、Magentoは端数の丸め処理に四捨五入を採用しており、内部処理としては切捨てや切上げも用意されているにも関わらず、現状では利用されていません

なので、本当のところを言うと、小数点以下の桁が存在する通貨であっても、誤差は生じ得ます。
Magentoは内部的にこの誤差を吸収するように設計・開発されているのですが、日本円などの小数点以下の桁が実用されていない通貨では効果がありません。
というのも、内部処理では小数点以下第2位までで丸め処理を行って、表示する際には小数点以下を取り除くので、設定によっては単価や行合計と、伝票合計に誤差が出るのです。

の最新版では改修済みですが、万一ズレ等あった場合は迅速に改修を行います。
お気づきのかたはお問い合わせフォームからお知らせください。