国際で荷物を追跡する-Trackingmore


SOY ShopでTrackingmore連携を試作中でTrackingmoreという配送追跡サービスと連携して、

配送業者が発送を開始した(厳密には発送する荷物を受け取った)タイミングを捉えて、

SOY Shopの各注文の注文状態を自動で変更、発送メールの自動送信の仕組みを作成しました。


前回は発送するタイミングを捉えるために、

数分に一回置きでSOY Shopで登録されている複数枚の伝票番号を調べるというリアルタイム追跡を行っていたが、

これはSOY Shopを配置しているサーバとTrackingmoreのサーバの両方に大きな負荷をかけるため、

スマートは対応ではありませんでした。


というわけで今回は更にwebhookの仕組みを取り入れました。




先にwebhookに触れておくと、

ざっくりと書くと、



ネットショップ側(イラスト右側)で各注文毎に紐づく伝票番号の登録を行った際に、

Trackingmore(イラスト左側)に追跡したい伝票番号を予め登録しておく。



Trackingmoreが各配送業者の発送状況を監視し、

※各配送業者が運営するWebサービスでは伝票番号追跡機能があるので、その機能を利用しているはず



発送状態の変更があった伝票番号から順にネットショップ側に通知されるため、

その情報を精査して状態が集荷や発送であったらSOY Shop側の注文状態を変更する

という仕組みとなる。

Webhook - Wikipedia


前回の記事でも記載しましたが、

この仕組みは発送数が膨大になったことで自社での発送が追いつかず、

出荷予定日を設けて事前に発送代行業者の倉庫に出荷して、

代行業者から配送業者に出荷するといったフローを導入しているショップで、


代行業者からの発送報告を受け取らずとも、

配送業者の状況を追跡して集荷状況を確認した上でお客様宛に発送済みメールも自動で送信できる

ということになるわけで、

確認業務の大幅な削減になります。


上記の機能は今までのリアルタイム追跡でも可能でしたが、

webhookを利用することによって、変更情報のみ少量のデータとして都度受信できるので、

SOY ShopとTrackingmoreの両方のサーバで負荷の大幅な削減になります。


webhookだけだと更新情報の取りこぼしもありますので、

リアルタイム追跡を2時間に一回程度実行することによって、

変更情報の受信の精度を更に高めることも可能です。


今回対応分を含んだパッケージは下記のサイトからダウンロード出来ます。

https://saitodev.co/soycms/soyshop/


追記

諸々の画像で使用している画像はかわいいフリー素材集いらすとやさんの画像を利用しました