by MintJams

OSSコマース・オペレーション基盤構築記 第1回 | Shopifyの在庫が減ったら自動でSlack通知。さらに担当者タスクまで起票する仕組み

Shopifyの在庫切れをSlack通知とBPM(業務フロー)で先回りして防ぐ!「通知が流れて見落とす」課題を解決するため、すべてOSSで構築した在庫アラートの機能とカンタンな設定方法を解説します。

ECサイトの運営において、地味に、そして確実に怖いのが「人気商品の在庫切れに気づけないこと」です。

毎日Shopifyの管理画面にログインして、在庫数を一つずつ目視でチェックする……。そんな属人化した運用を続けていると、セールのタイミングや繁忙期に気付けば在庫がゼロになり、大きな機会損失を出してしまうこともあります。かといって、確認のルールを厳しくしすぎると、今度は現場の運用負担ばかりが増えてしまいますよね。

「Shopify Flowや、既存の監視ツールの通知機能を使えばいいのでは?」と思われるかもしれません。しかし、一般的な通知ツールには共通する課題があります。それは、「通知は飛んでくるけれど、流れてしまって結局誰も動かなかった」という運用の形骸化です。

本連載では、利用しているプラットフォームからアプリケーション本体まで、すべてOSS(オープンソースソフトウェア)で構築した、新しいアプローチの「在庫アラートワークフロー」システムをご紹介します。特定の高額なSaaSに依存せず、Webhook受信・業務タスク管理・チャット通知までを一貫して実現しました。

この仕組みは、単なる通知ツールではありません。在庫が危険水域に入ると、Slack/Discordへ通知するだけでなく、システム側が「レビュータスク(ToDo)」を自動生成し、誰が対応したかの記録までを管理します。

全4回にわたってお届けするこの開発・導入レポート。第1回となる今回は、難しいアーキテクチャやコードの話は一切抜きにして、「実際に現場でどう動き、どう業務をラクにしてくれるのか」という体験と初期設定のステップを解説します!

なお、本記事でご紹介するプラットフォームおよび在庫アラートワークフローは、すべてOSSとして構築しています。Dockerコンテナを起動すれば、設定アプリ、タスク管理画面、Webhook受信機能、業務フローまで含めて利用できるため、複雑なセットアップを行わなくてもすぐに試せます。詳しくは cms0 のプロジェクトページをご参照ください。


この記事でわかること

  • 「通知 + 担当者タスク」で在庫切れのやらかしを防ぐ業務プロセスのイメージ
  • 初回だけシステムが聞いてくる、BPM(ビジネスプロセス管理)らしい閾値設定の仕組み
  • Slackへの通知と、Commerceアプリでのカンタンな初期設定

何をしてくれるツール?(実際の業務フロー)

ひとことで言うと、「Shopify上の在庫が、商品ごとに設定したアラートラインを下回ったら、自動で担当者へ仕事を割り当ててくれる」ツールです。

商品が売れてShopifyの在庫が変動すると、システムが自動でそれを検知。あらかじめ設定しておいた「この商品は残り10個になったら通知」「こっちは残り100個で通知」という閾値(しきいち)と比較します。

もし危険水域に入っていれば、即座にSlackやDiscordに通知が飛びます。

Slackへの通知文には、このように実際の商品名が表示されるため、現場の担当者が一目で状況を把握できます。

さらに、チャットへの通知と同時に、システムが「在庫レビュー」という担当者が確認するためのタスクを管理画面に起票するため、「誰が補充対応をするのか」「すでに対応中なのか」がチーム全員に共有され、チャットの海に通知が埋もれて放置される事故を防ぎます。


システムが担当者に質問する「閾値設定」

「商品ごとの警告ライン(閾値)を、最初から全部データベースに登録していくのは面倒だな……」と感じたことはありませんか?

このツールは、その面倒な事前準備を不要にしました。

設定が終わったあと、初めてShopify側で在庫変動があった商品は、システムが自動的に「この商品の警告ラインは何個にしますか?」と、担当者に質問を投げかけてきます。

仮想デスクトップのタスク管理画面に起票された「Set Inventory Threshold」タスクの画面。商品画像やバリアント(サイズやカラーなど)ごとの現在の在庫数を見ながら、アラートを出したい数値を入力して保存します。メモ機能を使ってチームへ引き継ぎを残すことも可能です。

ここで一度ラインを決めて保存(完了)してしまえば、プロセスは自動的に次のフェーズへ進みます。次回以降、在庫がその数値を下回った瞬間にだけSlack通知が飛び、担当者が補充作業や発注手続きを行うための「在庫レビュータスク」へと自動で切り替わるようになります。

実際に警告ラインを割ると、このように担当者が処理すべき「在庫レビュー」タスクが起票され、対応が済んだら完了ボタンを押す、という明確な業務フローが回ります。


現場の課題にどう効くか?

現場のよくあるお悩み このツールが解決できる理由
人気商品の在庫切れに気づくのがいつも遅れる 自分で決めた安全ライン(閾値)を割った瞬間に即時通知。先手で動けます。
在庫チェックが特定の担当者に頼り切り(属人化) Slack通知と共通のタスク管理画面により、チームの誰もが状況をキャッチして対応できます。
毎朝の在庫確認作業に時間を取られる 危険水域に入った商品だけが自動で画面に上がってくるため、全商品を毎日巡回チェックする必要がありません。

設定はたったの2ステップ

「OSSの業務アプリケーション」と聞くと、難解なコマンド操作を想像するかもしれませんが、管理者向けの画面(Commerceアプリ)から驚くほどシンプルにセットアップできます。

1. 通知先を有効にする

まずは一番見たいところから。SlackやDiscordで通知用のWebhook URLを発行し、Commerceアプリの Notifications 画面に貼り付けて「Enable(有効化)」のチェックを入れるだけです。

2. Shopifyとの連携設定

続いて、Shopify側でWebhookを設定し、発行された受け取り口の検証キー(署名シークレット)などをCommerceアプリの Shop 画面に入力します。

最後に画面左上の (保存)を押せば、もうシステムはあなたに代わって24時間体制で見張り番を始めてくれます。


まとめ

第1回は、一般的な通知ツールの弱点である「見落とし・放置」を克服する「通知 + 担当者タスク」という業務価値と、実際の運用イメージをお届けしました。特定のベンダーロックインを避け、すべてOSSのコンポーネントだけでこれだけの業務プロセスが動き始めます。

さて、ここで技術的な好奇心が湧いてきませんか?

「画面のボタンを何も押していないのに、なぜShopifyの動きと連動して自動的に判断され、タスクや通知が作られるのだろう?」

次回(第2回)は、この仕組みを支える裏側の見取り図(全体像)を大公開します! Webhook受信を担う「スクリプト」、メッセージのルーティングを最適化する「EIP」、データを安全に保管する「CMS」、そして業務フローの頭脳となる「BPM」。これらのリレーの全貌を1枚の地図にして解説します。どうぞお楽しみに!


参考資料