EC-CUBE4

食料品の消費税率を現行の8%から1%に引き下げる方針が政府・与党で固まったと報じられています。2027年4月から2年間の時限措置という案で、これから法改正の手続きに入る段階です。まだ確定ではありませんが、食品を扱うECサイトの運営者からすると「EC-CUBEの税率ってどこで変えるんだっけ?」が気になるところだと思います。

結論から言うと、EC-CUBE 4系は税率の「予約変更」に標準対応しているので、施行日が確定したら適用日時を指定して登録しておくだけで、当日に自動で切り替わります。深夜にメンテナンスで張り付く必要はありません。ただし「商品ごとの税率設定」を使っている店舗(食品と雑貨の混在店など)には予約が効かない落とし穴があるので、そこも含めて整理します。

※本記事の画面・仕様はEC-CUBE 4.3系のソースコードで確認しています。4.0〜4.2系も基本的な仕組みは同じですが、4.0~4.1などの旧バージョンには商品別税率における不具合が残っている場合があるため、あらかじめ確認しておきましょう。

報道されている内容の整理

報道ベースでは次のような内容です。

  • 対象: 飲食料品(現在の軽減税率8%の対象品目)
  • 税率: 8% → 1%
  • 期間: 2027年4月1日から2029年3月末までの2年間(時限措置)
  • 状況: 政府・与党が方針を固め、法改正の党内手続きに入る段階

つまりまだ法律は変わっていません。対象品目の定義や施行日が現行の軽減税率とまったく同じになるかも未確定なので、実際の設定作業は法改正の成立を待ってからで十分です。この記事は「決まったらこう動く」という準備のためのものです。

EC-CUBEの税率の仕組み(おさらい)

EC-CUBE 4系の税率は dtb_tax_rule テーブルで管理されていて、1つのレコードが「税率+端数処理方法+適用日時」のセットになっています。

ポイントは適用日時(apply_date)です。EC-CUBEは注文計算のたびに「適用日時が現在時刻より前のルールのうち、いちばん新しいもの」を採用します。つまり未来の日時で税率を登録しておけば、その日時が来た瞬間から新税率が自動適用されます。2019年の8%→10%増税のときにこの仕組みで乗り切った店舗も多いはずです。

また、確定した注文の明細(dtb_order_item)には注文時点の税率がそのまま保存されるので、税率を変更しても過去の受注データの金額が変わることはありません。ここは安心してください。

ケースA: 全商品が飲食料品の店舗(食品専門EC)

扱っている商品がすべて飲食料品で、共通税率を8%にして運用している店舗はいちばん簡単です。

  1. 管理画面の 設定 > 店舗設定 > 税率設定 を開く
  2. 新しい税率として「税率: 1」「適用日時: 2027/04/01 00:00(施行日に合わせる)」を登録する

これだけです。税率の入力欄は整数で受け付けるので「1」も問題なく設定できます。端数処理(四捨五入・切り捨て・切り上げ)は現在のルールと同じものを選んでください。ここが変わると1円単位の差異が出て経理側が混乱します。

なお時限措置なので、2029年4月に税率を戻す予約も同じ画面で登録できます。切り替えが無事済んだタイミングで、戻し側の予約も入れておくのを忘れずに。

ケースB: 飲食料品と10%商品が混在する店舗

食品と雑貨・酒類などを一緒に扱っている店舗は、設定 > 店舗設定 > 基本設定 の「商品ごとの税率設定」を有効にして、商品(商品規格)ごとに8%/10%を入力しているはずです。

ここに今回の落とし穴があります。

落とし穴: 商品ごとの税率には「予約」が効かない

商品ごとの税率は、商品編集画面で税率を保存するとその商品の税率レコードを直接書き換える(=即時反映される)仕組みになっています。共通税率と違って適用日時を指定する入力欄がなく、UIからは予約変更ができません。

さらに注意したいのは優先順位です。商品ごとの税率が設定されている商品には、共通税率よりそちらが優先されます。つまり税率設定画面で共通税率を1%に予約変更しても、商品別に8%が入っている商品は8%のままです。

混在店の現実的な選択肢は次の3つです。

  • 商品数が少ない場合: 施行日の朝に商品編集画面から手作業で切り替える(即時反映なので当日作業になる)
  • 商品数が多い場合: 施行日にSQLで dtb_tax_rule の該当レコード(tax_rateが8のもの)を一括更新する。実行前に必ずバックアップを取り、更新後はキャッシュ削除(bin/console cache:clear)まで行う
  • 事前に仕込みたい場合: 商品別の税率レコードに適用日時付きの新レコードをSQLでINSERTしておく(税率の適用判定は商品別ルールにも適用日時ベースで効くため、予約と同じ動きになる)

SQLでの一括操作はテスト環境で必ず検証してから本番に適用してください。施行日が近づいたら、このブログでも具体的なSQL例を検証付きで公開する予定です。

税率変更のときに一緒に確認しておくこと

  • 送料・手数料は対象外: 飲食料品ではないので10%のままです。送料を商品として登録しているような特殊な構成の場合は要確認。
  • 酒類は現行の軽減税率でも対象外: 今回の1%も「飲食料品」の定義次第ですが、現行制度を踏襲するなら酒類は10%のままの可能性が高いです。
  • 領収書・請求書まわり: インボイス(適格請求書)は税率ごとの区分記載が必要です。メールテンプレートや帳票を「8%」と固定文言でカスタマイズしている場合は、テンプレート側の修正も必要になります。
  • プラグイン・独自カスタマイズ: 定期購入・セット販売・POS連携などで税率をハードコードしている箇所がないか。grepで「8」を探すのは無理があるので、税計算に触れているカスタマイズの棚卸しをおすすめします。
  • フロントの表示: 商品一覧・詳細の「税込」価格はルール切替と同時に自動で変わりますが、バナーやLPに税込価格を画像で焼き込んでいる場合は差し替えが必要です。

まとめ

EC-CUBE 4系なら、共通税率で運用している店舗は「税率設定に適用日時付きで1%を登録するだけ」で対応完了です。慌てる必要はまったくありません。一方、商品ごとの税率設定を使っている混在店は予約が効かないため、当日の切替作業かSQLでの事前仕込みが必要になります。自店がどちらのケースかだけ、今のうちに確認しておくと安心です。

法改正が成立して施行日と対象品目が確定したら、あらためて具体的な設定例(混在店向けのSQL含む)を記事にする予定です。

日本発!ECオープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEに関するお問い合わせ


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ