日本では消費税増税に関連するシステム変更が各所で行われています。
4月1日からは消費税が8%になり、更に1年半後には10%になります。
ここ数年の間は総額表示方式の定着によって、商品価格を内税登録しておいて、税計算は経理担当者が決算時などに行えばよかったのですが、今後のことを考えると、商品価格は税抜き登録しておいたほうが良さそうです、

Magentoはもともと日本以上に複雑な税制を持つアメリカで開発され、世界中で利用されているシステムなので、日本のように「単一税率かつ地域別指定もなし」という条件に対応するのは非常に容易です。
ですが、日本の消費税対応には一筋縄でいかない問題が色々とあるのです。

小数点以下端数の丸め処理は?

法律では、消費税額を求める際に、小数点以下の端数が発生した場合の丸め処理について明記していません。
「事業主の判断に委ねる」、とされているため、この計算方法は各社で異なります。

つまり、A社は切り捨て、B社は切り上げ、C社は四捨五入というケースが発生し得るわけです。
(とはいえ実際は切り捨てが多い、と言われています)

これに対し、Magentoの内部処理では標準処理として四捨五入が使われています。
標準のままで利用しようとすると、課税時の端数によって税額が変動してしまうことがあり、経理上のルールと一致しないというケースが発生します。 

課税対象は商品単価・行合計・伝票合計か?

消費税額を求める基準には、

  • 商品単価(ユニット価格)
  • 行合計
  • 伝票合計(合計)

という3通りの方法があります。
行合計を使う場合、伝票合計との間で差異が頻繁に出るので、余程の理由がない限り使うことはないでしょう。
多くの場合は商品単価か、伝票合計を基準にして課税すると思います。

この設定はMagentoのシステム設定にある、税の設定で調整できます。
サイト構築時にやってしまえば後日変更することはほとんどないはずなので、最初にルールをきちんと決めておきましょう。

ちなみに、弊社製の「」では税計算時の端数計算処理を標準の四捨五入から切り替えることができます。

値引きの適用対象は税込か税抜か?

Magentoには

  • クーポン
  • カタログ価格ルール

という2種類の値引き機能があります。
カタログ価格ルールはあらかじめ値引きを適用した価格を適用しておくので、その価格に対して課税が行われます。

これに対して、クーポンは課税対象額の設定によって挙動が変わります。

商品単価の場合の計算式

商品単価に課税を行う場合は、以下の様な計算式になります。

  • (商品単価 x (1 + 税率))x 購入数量

まずこれが税込小計額です。税額だけを出す場合は

  • (商品単価 x 税率) x 購入数量

となります。
この「商品単価 x (1 + 税率)」または「商品単価 x 税率」のところに端数の丸め処理が入ります。
そして、商品単価の合計が小計になります。

次に、クーポンを適用する場合は、税抜額に適用する場合、割引額の計算式は、

  • ((商品単価 x (1 - 割引率)) x 購入数量
  • ((商品単価 x 割引率)) x 購入数量
  • ((商品単価 - 割引額)) x 購入数量

の3種類があります。
税込額の場合は、

  • ((商品単価 x (1 + 税率)) x (1 - 割引率)) x 購入数量
  • ((商品単価 x (1 + 税率)x 割引率) x 購入数量
  • ((商品単価 x (1 + 税率)- 割引額) x 購入数量

となります。
さらに、Magento独特の機能として、割引額に対する消費税額の還付処理があります。

  • 割引額 x 税率

という計算が行われ、商品単価から求められた割引額による消費税の減額を計算します。
最終的に、実際の課税額は、

  • SUM((商品単価 x 税率) x 購入数量) - (割引額 x 税率)

という式で求められます。
そのため、計算式を明記しておかないとクレームに繋がる場合がありえます。

伝票合計の場合の計算式

伝票合計の場合は、

  • SUM(商品単価 x 購入数量)x 税率 - (SUM(商品単価 x 購入数量)x 割引率 x 税率)
  • SUM(商品単価 x 購入数量)x 税率 - (SUM(商品単価 x 購入数量)x (1 - 割引率) x 税率)
  • SUM(商品単価 x 購入数量)x 税率 - ((SUM(商品単価 x 購入数量)- 割引額) x 税率)

で税額を計算します。商品単価に比べるとずっとシンプルです。
商品単価と共通することは、クーポンを使用した場合の値引きには税の還付計算が入る、ということです。 

まとめ

  • Magentoには税率を管理するための機能が標準で用意されていますが、税の端数計算は「四捨五入」です。
  • 課税対象額の設定によって、Magentoの計算処理の挙動は変わります。自社のルールに合わせて設定してください。
    場合によっては利用規約などに明記したほうがよいでしょう。 
  • 税の端数計算方法を変えたい場合は、弊社製の「」をご利用ください。