WooCommerceで送料を発送先とサイズに応じて自動計算させる方法

WooCommerceでネットショップを構築し始めて、初めに引っかかるのが送料をどうするか、という話だと思います。国内の送料計算はそれほど複雑ではないですが、WooCommerceが海外仕様で複雑なため、そこに入れ込むのが大変です。プラグインなしで発送先地域毎・サイズ毎に料金を変化させる一つの方法・アイディアをシェアしたいと思います。

25840

当サイトでは管理人の個人的な経験に基づき商品やサービスの紹介をしております。業者から直接依頼を受けたり、報酬を得て掲載した記事はありません。ただし商品やサービスの紹介にはアフィリエイトリンクを使用させていただいております。遷移先のサイトで購入や申し込みをされた場合、このサイトが報酬を得る場合があります。

標準機能だけで送料を地域サイズに応じて自動計算させる

WooCommerceでネットショップを構築し始めて、一番最初に引っかかるのが、送料をどうやって設定する?という話だと思います。日本の場合、どの運送会社でも送料区分はそれほど複雑ではないのですが、WooCommerce標準機能が海外仕様で複雑になっているため、どのようにあてはめたら日本の実情に近くなるのか・・迷うところだと思います。

送料無料とか全国一律送料〜〜円で設定されている場合は簡単ですが、運送会社と法人契約もできないような取扱量の場合、送料に割引がないので距離やサイズによって送料を段階的に変化させたいと思うのではないでしょうか。

それでいろいろ試行錯誤した結果、以下のようにすることで、上記をおおよそ満たすことができました。

  • 単品で発送する場合の発送方法・サイズを、商品毎にあらかじめ設定しておく
  • 複数商品を同梱する場合は、発送料金が最も高い商品の発送方法・サイズが自動で選択されるようにしておく
  • 複数商品を同梱する場合に、自動選択された発送方法・サイズより高い料金になってしまったとしても、それはサービスとする

わかりにくいので、具体的に説明すると・・・

内容物 発送方法・サイズ
商品A CD クリックポスト
商品B 雑貨 ゆうパック
60サイズ
商品C 雑貨 ゆうパック
80サイズ

上記のようにあらかじめ発送方法・サイズを商品毎に設定しておきます。

購入商品の組み合わせと適用される発送方法(料金)は、以下のようになります。

購入商品 適用される発送方法(料金)
商品Aのみ クリックポスト
商品Bのみ ゆうパック60サイズ
商品Cのみ ゆうパック80サイズ
商品A
商品B
ゆうパック60サイズ
商品A
商品C
ゆうパック80サイズ
商品A
商品B
商品C
ゆうパック80サイズ
※100サイズになるかもしれないがサービス
商品A 5個 クリックポスト1梱包分
※2梱包になるかもしれないがサービス
商品C 5個 ゆうパック80サイズ
※100サイズ以上になるかもしれないがサービス

複数商品を発送する場合に、各商品のサイズから複数商品を同梱した場合の正確な梱包サイズを割り出すこともできそうでしたが、今回は検討を見送りました。理由は、商品サイズをただ積み上げるだけでは、緩衝材が必要になるなどの理由で、正確な梱包サイズを見積もることはできないと思ったからです。

もしそのような方法を望んでいる方には、以下は役に立たない情報になってしまいます・・・

上記のような考えでよければ、この方法はプラグインを導入せずとも標準機能だけで実現できます。以下にやり方を順に記述しますので、どうぞご参考になさってください。

※一定金額以上での送料無料は、特に問題なく設定できます。最後に記載しています。
※自分のところはゆうパックを使うことにしましたが、ヤマトさんでも佐川さんでも同じだと思います。

①「配送クラス」を設定する

まず、想定される発送サイズを「配送クラス」として設定しておきます。

配送クラスは、WooCommerce「設定」画面⇒「送料」タブ⇒「配送クラス」をクリックすると設定できます。

画面が開いたら、「配送クラスを追加」ボタンを押して、クラスを設定していきます。ここでは区分だけでOKです。

↑ここでは、クリックポスト、ゆうパック60、ゆうパック80の3種類を設定しておきます。

設定できたら「配送クラスを保存」ボタンを押して画面を閉じます。

②配送地域を設定する

ゆうパックの発送地域分けに従い、発送地域を同じように設定します。

同じ「送料」タブの中の「配送地域」を選択します。「配送地域を追加」ボタンを押して追加していきます。

↑日本では広すぎるので削除し、「配送地域を追加」ボタンを押して追加していきます。結構めんどくさい作業です
↑発送元の都道府県をまず最初に設定する。地域名を、配送業者の区分にあわせ、ゾーン地域にはそこに含まれる県を記入していく
↑長野からだと、東北・関東・信越・北陸・東海の区分が巨大・・・
↑最終的にはこんな感じになりました

③各地域ごとに定額送料を設定する

それぞれの地域ごとに送料を設定していきます。各地域を選択して「配送方法を追加」ボタンをクリックし、次に表示される画面で「定額送料」を選択します。

↑「配送方法を追加」ボタンをクリックする
↑表示されるドロップダウンメニューで「定額送料」を選択
↑先ほど作成した「配送クラス」が表示されている。配送クラスを設定していないと、これらは表示されない。

上記のような画面が表示されるので、発送先とサイズに応じた金額を「配送クラス費用」の項目の中に記入していきます。

なお、上から3番目の項目、「金額」は「0円」のままにしておきます。

こうすることで、「クリックポスト」配送クラスが選択された場合は、そのクラスに記入された金額がそのまま適用されるようになります。(0円+配送クラスの164円 という計算です。)3番目の「金額」は「基本送料」という意味です。多分、外国では基本送料に加えて重量加算などがあるのだと思われます。

また、「メソッドのタイトル」は、ゆうパックなどと記入しておきます。これがそのまま明細等に表示されます。(配送クラス名を取得して明細に表示させることは、残念ながら私の能力ではできませんでした。)

自分のところは、クリックポストとゆうパックを使い分けることになるので、苦肉の策として「クリックポスト/ゆうパック」と設定しておきました。

記入が終わったら、同じ画面の下の方に「算出形式」を選ぶところがありますので、

「注文毎:最も高額な配送クラスの送料を請求」

を選択します。これも大事なポイントです。こうすることで、先ほど条件として設定した「複数になる場合は、一番大きなサイズを自動で選択できるようにする」が実現できるようになります。

↑一番下の算出形式で「注文毎:最も高額な配送クラスの送料を請求」を選択する

※配送クラスを商品に割り当てなかったときに(割り当て忘れたなど)、適用される送料を決めておくこともできます。その場合、下から2番目の「配送クラス費用はありません」の項目に金額を書き加えておきます。ここに何も記入しないと送料0円になります。

上記作業を、各地域毎に繰り返し行います。

④商品毎に「配送クラス」を設定する

最後に、各商品毎に適用する配送クラスを設定しておきます。

各商品詳細ページの「商品データ」の「送料」タブを選択し、「送料区分」のドロップダウンメニューから、先ほど設定した配送クラスを選択します。

↑送料区分のドロップダウンメニューから配送クラスを選択。最初は送料区分なしになっている
↑更新して完了。これを各商品毎に地味に繰り返す・・

うまく動作するか、カートに入れて確かめてみますと・・・

クリックポスト(164円)を割り当てた商品のみ場合の送料は、164円になっています。

そのまま、ゆうパック60サイズを割り当てた商品を追加すると、送料は60サイズの800円に変化しています。

さらに、ゆうパック80サイズを設定した商品をカートに追加すると、80サイズの料金、1,010円が送料になっています。

これで、最初想定した通りに動作していることの確認ができました。発送先を他の県に変更すると、それに応じて料金もちゃんと変わります。

⑤最後に一定金額以上で送料無料にする

もし、一定の購入金額以上で送料無料にする場合は、この作業を行います。③と似ていますが、各地域毎に送料無料、という発送方法を追加する必要があります。最低購入金額の他、クーポンを使用して送料無料にすることも可能です。

↑同じく「配送方法を追加」ボタンを押す
↑表示されるドロップダウンメニューで「送料無料」を選択
↑配送方法に「送料無料」が追加されているので、「編集」をクリック
↑次に表示される画面で、必要条件から好きなものを選びます。自分は最低金額とクーポンのどちらかで送料無料になる条件を選択しました。最後に、最低注文金額の欄に、設定金額を入力すれば完了

この作業を、各地域毎に地味に繰り返します・・・

これで作業は完了です。

明細書に配送クラスを表示できなかったのは残念ですが・・方法はありそうなので、今後の課題にしたいと思います。

以上、ご参考になれば幸いです・・

 

↓こちらもどうぞ

↓無料プラグイン・コピペでつくったwoocommerceのecサイト、完成後の受注→発送作業の流れと、今回行った作業内容についてはこちら

↓woocommerceにクレジットカード決済を導入するなら・・Squareがよいと思います