今回は在庫管理の話ですが、まずは販売関係の在庫管理です(生産工程における原料・部品・半製品・製品などの生産在庫の話は別の機会で)
Webと実店舗の在庫をリアルタイムで同期したい
こんな要望もよく聞きます。もちろん、Shopify POSなど使ってWebショップも実店舗も同じサービスで統一すれば1発で解決できるんですが、ここでも帯に短し襷に長し、以下のような理由で別々のサービス選定になる場合もあります。
- Shopifyはグローバルサービスなので国内サービスとの連携が弱い(キャッシュレス、銀行など)
- Shopify POSを利用した上でキャッシュレス決済も行いたい場合、Shopify POSは任意で決済したことにして、キャッシュレス決済端末に金額を入力して決済するという二度手間が発生する(ミスも起こりやすい)
- 在庫情報は分散しないが決済情報が分散するので結局決済情報のデータ連携が必要になる
このような悩ましい理由で今回WebはShopifyで実店舗はスマレジという構成を選択した話です。
在庫情報はAirtableに集約
Shopifyにもスマレジにも在庫管理機能があるのでどれを正としても良いのですが、重要なポイントは双方向のトリガによる編集合戦が起きないよう、なるべく一方通行にすることです。例えばShopifyの在庫を正とするなら、実店舗で販売/返品されたタイミングでShopifyの在庫を増減させる処理をスマレジのWebhookに設定するのみ、というような感じです。
もちろん、こういったケースでもデータ連携時に細かい処理が必要になることが多いので、Webhookには是非、enebularのクラウド実行環境を使いましょう!
今回はメーカーさんの直営店舗だったので生産在庫から出荷されると自動で在庫数を増やしたいという要望があって、工場・Shopify・スマレジの3方向連携となりましたのでAirtableに集約することにしました。
在庫管理システムを構築したことがある人なら言わずもがなですが、在庫はあるテーブルのあるフィールドの数字を増減し合うような処理はミスの元なので、今回もAirtableに入出庫テーブルというテーブルがあって、各連携先からは「○月○日○○製品○個入庫」「○月○日○○製品○個出庫」というような履歴データを投入します。
Shopify → AirtableのWebhook処理
スマレジ → AirtableのWebhook処理
もう、この辺のWebhook処理はワンパターンになってきましたね...
工場出荷 → Airtable
実は工場出荷処理はAirtableの同じWorkspaceで作っていますので、工場の出荷現場でバーコードがスキャンされたタイミングでAutomationsが動いて入出庫テーブルにデータが投入されます。
おまけ
ちなみに、この記事には掲載していないですが、Shopifyやスマレジの様々なデータへのアクセスが必要だったため、ウフルの森内さんにShopifyノードとスマレジノードを作ってもらいました。
是非、使ってみてください!