AWSの話題を中心に、日々の業務やプログラミングの徒然を綴るエンジニアブログです。

HANDS LAB

HANDS LAB ENGINEERS BLOG

ハンズラボエンジニアブログ

ECサイトの消費税率を2019/09/29に切り替えた話

Pocket

この記事は、ハンズラボ Advent Calendar 2019 15日目の記事です。

CRMチームの倉嶋です。
hands.netの消費税対応について書きます。

2019/09/29の00:00〜14:00にかけて、hands.netおよび外部モールすべてで販売を停止し、消費税率の切り替え対応を実施しました。

東急ハンズでは、出荷した日に売上が計上されるルールです。ですので、出荷した日の消費税率が適用されることになります。また、hands.netは注文日の3日後から配送日を指定できます。12/15の注文では、12/18から配送指定できる、ということです。そして、配送指定日の少なくとも1日前には出荷する必要があります。(発送元が新宿となるため、配送先によっては2日前に出荷する場合もあります)
こちらを踏まえると、9/29に注文を受けた場合、出荷日が必ず10/1以降となるため、消費税率は10%が適用されます。
と、理屈は簡単なのですが、システム側としては種々の苦労がありました・・・。

  • 基幹システム側の商品マスタの価格に10%税率が適用されるのは9/30深夜
  • 軽減税率が適用されるカテゴリに対して軽減税率フラグが適用されるのは9/30深夜

ということで、普段は基幹システムの販売価格を反映させているところを止めて、全商品から軽減税率が適用されるカテゴリ分を除外し、標準税率商品の販売価格を洗い替えしました。
10/1からは元通り基幹システムからの取得に戻したのですが、適用していた販売価格に差異がないかヒヤヒヤでした・・・。(幸い問題なし)

  • 全外部モールの全商品の販売価格・軽減税率フラグを洗い替えする必要がある

各外部モールごとに軽減税率フラグの名称や設定値は当然違いますし、外部モールへの出店日の違いから連携済みの商品マスタの件数も違います。また、商品マスタの一括更新の方法も当然違うので、全て別々の手順を作成して、あちらのモールは手動でCSVアップロード、こちらのモールは通常処理に混ぜ込んで、とやっていました。
また、商品マスタの件数は全モールとも10万件以上あり、一回のアップロードの上限値が決まっていたり反映にかかる時間もまちまち。AM03:00に始めた連携作業が終わったのはAM10:00を過ぎた頃だったでしょうか。。。3人で切り替え作業していたので交代で休憩を取りましたが、いかんせん眠かったのを覚えています。

  • 9/29より前の注文でも出荷日が10/1を過ぎる場合は適用される税率が10%になる

最後の難関は、商品側ではなく注文側のデータパッチでした。事前に注文明細テーブルのテーブル定義を変更して、商品明細ごとに税率を保持するように改修してあったのですが、10/1以降の出荷になるかは商品手配の都合や配送先住所・配送指定日の有無など様々な条件で決まるため、9/29時点では確定しません。9/30の出荷がすべて完了したあとで、残ったものが10/1以降の出荷分、ということになります。
9/29深夜の消費税率切り替え以降の注文は10%適用済みのため、これを除外して、9/28以前の注文かつ10/1以降出荷の場合は注文明細テーブルの商品コードを見て「標準税率商品なら10%かつ軽減税率フラグOFF」「軽減税率商品なら8%かつ軽減税率フラグON」に修正しました。
その上で、領収書に出力するために税率別小計を再計算し、領収書を出力しなおします。https://www.hands-lab.com/tech/entry/4835.html ←こちらでyktakaha4が作成したLambdaでPDFを作成しなおしました。

8月はハンズメッセということもあり税対応の改修に手が回らず、9月の平日は毎日リリースしていましたが、対応が間に合ってよかったです。
とは言うものの、残業が増えたでもなく、「金曜はリリースしない」ルールも遵守できました。

Pocket