送料設定用 SQL文をはき出すマクロを組みました。EC-CUBE 2系、3系、両方に対応させています。応急措置ですが、何かの役に立つかもしれませんので、こちらで公開しておきます。

ネットショップの送料更新が大変

ヤマト運輸さんが宅急便の送料を 2017年10月から値上げするということで、送料の更新作業に追われているネットショップさんも多いのではないでしょうか?
送料の設定って結構手間がかかる作業で、EC-CUBE も例外ではありません。

料金表を読み込んで一発で変換するツールを作れば良いのでしょうが、そんな時間もないので応急処置で送料を更新するSQL文をはき出すマクロを組みましたので公開しておきます。改造すれば、送料を新規に設定する場合でも使えると思います。

送料更新用 SQL文作成ツール

色々手動ですが、次の手順で使います。EC-CUBE の管理画面から都道府県ごとに送料を入力するよりは、各段に作業が早いしミスも減らせます。

Excel で送料の表を作る

新規に Excelブックを開き、sheet1 に次のような送料の表を作ります。

サイズ名 北海道 北東北 南東北 関東 信越 北陸 中部 関西 中国 四国 九州 沖縄 配送業者ID
60 xx xx xx xx xx xx xx xx xx xx xx xx 1
80 xx xx xx xx xx xx xx xx xx xx xx xx 2
100 xx xx xx xx xx xx xx xx xx xx xx xx 3
クール便60 xx xx xx xx xx xx xx xx xx xx xx xx 4
ネコポス xx xx xx xx xx xx xx xx xx xx xx xx 5

Excel の Visual Basic Editor を開く

Excel の開発タブから Visual Basic Editor を起動させ、標準モジュールを追加して、以下のコードをコピペします。Sub Main の1行目の Const Syubetu に、EC-CUBE 2系なら「2kei Update」3系なら「3kei Update」の文字列をセットします。機会があれば、Insert も作る予定なので。。。

実行すると生成される SQL文

マクロを実行すると、Excel ブックの保存先に delive-fee.txt が作成されます。Main Sub の Const でファイル名と保管場所は適宜変更してください。

ちなみに、EC-CUBE 2系 と EC-CUBE 3系の送料テーブルの構造は以下のとおり違いがありますので、書き出される Update 文も、Const Syubetu が、EC-CUBE 2系 か 3系で分けています。

例えば、2系は生成されるのは、EC-CUBE の dtb_delivefee テーブル用 MySQL の UPDATE 文 になります。47都道府県別の送料を Excel の表から読み込み各行に埋め込んでいます。deliv_id と fee_id(都道府県の pref_idに相当)が Key になります。

テーブル名 カラム名 キー
EC-CUBE 2.13系 dtb_delivfee deliv_id 配送業者 ID
fee_id 配送料 ID
fee 配送料
pref 都道府県ID
deliv_id と fee_id の複合主キー
fee_id は pref と同じになっている
EC-CUBE 3系 dtb_delivery_fee fee_id 配送料ID
delivery_id 配送業者 ID
pref 都道府県ID
fee 配送料
fee_id が主キー
delivery_id と pref はインデックス

phpMyAdmin を起動させて、SQL文を実行する

phpMyAdmin を起動させて、生成された SQL を実行させます。正しく送料がセットされたかどうか、EC-CUBE の管理画面で確認してください。

簡単ですね (^◇^)

EC-CUBE 送料設定ツール実行にあたっての注意事項

お約束ですが、このツールの実行は自己責任でお願いします。万一、不具合が発生しても責任は負いかねますのでご了承ください。実行にあたっての注意点は以下のとおりです。

  • 必ず、データベースのバックアップをとってから実行させてください
  • Excel VBA を実行させる前に、必ず Excel ブックを保存しましょう
  • phpMyAdmin や Excelマクロに詳しくない方は使わない方が無難です

このツールを使うのが大変という方、お仕事しますのでご連絡ください。
もちろん、マクロ制作も承ります (^^)/

IT駒ヶ根 お問い合わせフォームはこちら