2025/6/3
[ 初回公開日:
2025/5/23
]
Shopifyで在庫切れ通知を完全自動化!無料のShopify Flow&メタフィールド活用ガイド

はじめに
1. この記事で得られること
EC担当者が抱えがちな「在庫切れに気づかず機会損失」という課題を、追加コストゼロで解決する手順をまとめました。Shopify Flowを使えばアプリ料金を払わずに自動通知が可能です。本記事は私のような非エンジニアでも理解できるよう、各ステップの冒頭で「目的」を明確にしながら解説します。
実際に使ってみるとわかりますが、結構頻繁に在庫切れ起こしているんだなぁ。
アナログに感覚でやっていると、在庫切れ→補充までに結構タイムラグがあったりしてたんだなぁと、反省してます(汗)
同じようなECサイト、結構多いのではないかと思います。
2. この記事で設定すること
メタフィールドを1つ追加し、自動化のためのFlowを2つ作成する。
通知済みを管理するためのメタフィールドの追加
在庫が0になったとき、または補充された際に通知を送るFlowを作成
新商品登録時に1で作ったメタフィールドをfalseを設定するFlowを作成
2と3のFlowの設定完了後の画面は以下のようになります。


01. なぜ在庫切れ通知が重要か
目的: 在庫切れ放置による売上ロス・顧客体験低下を防ぐ背景を共有する。
機会損失:欠品に気づかず広告を回し続けると費用対効果が悪化。
SEO悪影響:売り切れ商品が検索結果に残り続けると離脱率が上がる。
顧客不満:カートに入れた商品が注文時に消える体験は信頼を損なう。
02. 今回構築する自動通知フローの全体像
在庫数の変化をトリガーに、次の条件で通知を制御します:
在庫が0になった商品に対して1度だけメールを送信
通知後、カスタムメタフィールドで「通知済み」のフラグをtrueに更新
在庫が再び1以上になったらフラグをfalseに戻す
これにより、通知の二重送信を防ぎ、確実な情報共有が可能になります。

03. ポイントとなるFlowとメタフィールド
Flow(Shopify Flow)とは?
Flow:Shopify公式の自動化アプリ。Basicプランから無料で使えます。

メタフィールドとは?
メタフィールド:商品やバリエーションに任意の情報(データ)を持たせる仕組み。ここでは「通知済みかどうか」を記録します。
各商品の編集画面の下の方に出てくる以下↓のような項目です。
※「バリエーションメタフィールド」の「在庫通知ステータス」が今回作るメタフィールドです。

04. STEP1:通知済みフラグとしてのメタフィールドを作成
🎯 目的
在庫が0になったことを通知した商品を記録し、重複通知を防ぐためにメタフィールドを使用します。
🛠 設定内容
名前:在庫通知ステータスネームスペース:flow_stockキー:variant_out_of_stock種類:ブール値(true / false)Storefront APIアクセス:ON
🪜 設定手順
1. Shopify管理画面にログイン
2. 左下の「設定」 → 「カスタムデータ」をクリック
Shopifyの左サイドメニューの一番下にある「⚙ 設定」を開きます。
設定メニュー内の「カスタムデータ」をクリックします。
3. 「バリエーション(Variant)」を選択
「商品」「バリエーション」「注文」など複数選択肢がありますが、「バリエーション」をクリックします。
バリエーション単位でメタフィールドを管理するためです(在庫はSKU単位=バリエーション単位で管理されている)。
4. 「定義を追加」をクリック
画面右上の「+定義を追加」ボタンを押します。
5. メタフィールドの基本情報を入力
項目 | 入力内容 |
|---|---|
名前(管理用ラベル) | 在庫通知ステータス |
ネームスペースとキー | flow_stock.variant_out_of_stock |
説明(任意) | 「通知済みフラグ」など補足でもOK |
6. タイプ(種類)を設定
「1行テキスト」などが初期選択になっていることがありますが、下の方にスクロールして「True / False」 を選びます。
Shopify日本語環境では「ブール値」「○ / ×」などと表記される場合があります。
7. Storefront API アクセスを「ON」にする
表示されていればON(有効)にします。
※顧客にはこのメタフィールドは見えませんので、ONにしても問題ありません。
8. 「保存」ボタンを押す
以上で定義は完了です!

この設定が完了すると、在庫通知フローを正確に制御できるようになります。
補足1:この後どう使われるの?
このメタフィールドは、Flowによって以下のように使われます:
タイミング | 値の内容 | 役割 |
|---|---|---|
初期(商品登録直後) |
| 通知していないことを示す |
通知を送信した直後 |
| 通知済みであることを記録 |
在庫が復活したとき |
| 次の通知対象に戻るようにする |
補足2:既存商品に手動で設定する場合
個別に false を設定するには:
商品 > 該当商品を開く
バリエーションがある商品はバリエーション(SKU)をクリック
ない場合は3へページ下部「カスタムデータ」セクションへ
先ほど作成した「在庫通知ステータス」が表示される
チェックを外した状態(= false)にして保存

05. STEP2-1:在庫が0になったときに通知を出すFlowを作る
🎯 目的
商品が在庫切れになった瞬間に、社内に通知を送り、売り逃しや広告のムダ打ちを防ぐことが目的です。
さらに、通知が何度も繰り返されないように、「通知済み」の状態を記録する仕組み(メタフィールド)と連携させます。
🛠 Flowの構成イメージ

🪜 設定手順
1. Flowを開く
Shopify管理画面 → アプリ → Flow
「ワークフローを作成」をクリック
名前:
在庫切れになっているバリエーションに関する通知を送信する
2. トリガーを設定する(在庫数の変化)
「トリガーを選択」
「Shopify」カテゴリーから
→Product variant inventory quantity changedを選択
このトリガーは「SKUの在庫数が変化したとき」に発動します(例:1→0、2→3などすべて含む)
3. 在庫0かつ通知フラグがfalse
条件ブロック(Condition)を1つ追加
以下のように階層的に組み合わせて設定します:
🔹 条件①(在庫数が0以下)
対象:
product variant / inventory item / inventory levelsフィールド:
inventoryLevels_item.available条件:
次のもの以下(less than or equal to)値:
0
🔹 条件②(通知済みメタフィールドが false)
対象:
product variant / metafieldsNamespace:
flow_stockKey:
variant_out_of_stockValue:
false
重要:この2条件は「AND(かつ)」で構成されます。
条件は「および」で結んでリスト形式で追加してください(↓ スクリーンショット)。

4. アクション①:社内通知メールを送る
アクションブロック:
Send internal email宛先(To):在庫担当者のメール(例:stock@itplus.co.jp)
件名:
【在庫切れ】{{ productVariant.product.title }}本文例:
以下のバリエーションが在庫切れになりました:■ 商品名:{{ productVariant.product.title }}■ バリエーション:{{ productVariant.title }}■ SKU:{{ productVariant.sku }}■ 変更後の在庫数:{{ productVariant.inventoryQuantity }} 個※ この通知は1回のみ送信されます(再入荷後に再通知されます)。

5. アクション②:通知済みフラグを書き換える
アクション:
Update product variant metafieldNamespace:
flow_stockKey:
variant_out_of_stockType: ブール値(True / False)
値:
true
これで「この商品は通知済み」と記録され、次にFlowが起動しても通知はスキップされます。

期待される動作
状況 | 通知される? | 理由 |
|---|---|---|
在庫が 1 → 0 になった | ✅ される | 初回の通知対象だから |
在庫が 0 → 0 のまま変更された | ❌ されない | 通知済みフラグが |
在庫が 0 → 3(復活) | ➖️ (このFlowではない) | このあとのSTEP2-2で作成 |
在庫が 3 → 0(再度欠品) | ✅ 再通知される | 復活時にフラグを |
補足:Flowのログ確認方法
Shopify Flow内「実行履歴(Execution history)」で
通知が発動されたか、メタフィールドが書き換わったかを確認できます。
まとめ
要素 | 設定内容 |
|---|---|
トリガー | 在庫が変化したとき |
条件1 | 在庫が 0 以下 |
条件2 | 通知済みフラグが |
アクション① | メールで通知 |
アクション② | 通知済みフラグを |
💡 この設定により、1商品あたり1回だけの在庫切れ通知が可能になります。
再入荷 → 再度在庫0 となった場合には、再度通知されるようにするには、次の「在庫復活フロー」が必要です(06. STEP3にて解説)。
06. STEP2-2:在庫が復活したときに再度通知を送り、フラグをfalseに戻すためのFlowを作る
🎯 目的
在庫が復活したら再度社内に通知を送ります。
また、一度在庫切れになった商品に対しては、通知済みの印(メタフィールド true)がついています。そのため、在庫が復活した場合にはフラグをリセット(falseに戻す)する必要があります。
これにより、次にまた在庫が0になったとき、再び通知が送られるようになります。
🛠 Flowの構成イメージ

🪜 設定手順
1. トリガーを設定:在庫数が変化したとき
トリガー:
Product variant inventory quantity changed
2. 条件ブロック:在庫復活かつ通知済みか
条件1:在庫数が 1 以上
対象:
product variant / inventory item / inventory levelsフィールド:
inventoryLevels_item.available条件:
次のもの以上値:
1
条件2:通知済みメタフィールドが true
対象:
product variant / metafieldsNamespace:
flow_stockKey:
variant_out_of_stockValue:
true
✅ 条件はすべて「AND(かつ)」で結ばれています(スクリーンショットでは「および」に展開済み)

3. アクション①:社内通知(在庫復活)
アクション:
Send internal email宛先:在庫管理チームのメールアドレス(例:
stock@itplus.co.jp)件名例:
コピーする編集する
【再入荷】{{productVariant.title}}本文例:
以下のバリエーションが再入荷しました:■ 商品名:{{ productVariant.product.title }}■ バリエーション:{{ productVariant.title }}■ SKU:{{ productVariant.sku }}■ 現在の在庫数:{{ productVariant.inventoryQuantity }} 個

4. アクション②:通知済みフラグを false にリセット
アクション:
Update product variant metafieldNamespace:
flow_stockKey:
variant_out_of_stockType:True / False(ブール値)
Value:
false
これにより、次にまた在庫が 0 になったとき、通知対象として扱われるようになります。

フロー実行例と動作確認
状況 | アクションが発動? | 理由 |
|---|---|---|
在庫が 0 → 3 に復活 | ✅ 発動 | 条件に合致(在庫 ≥1 かつ フラグが true) |
在庫が 3 → 3 のまま更新 | ❌ 発動しない | フロー条件に合致しない(変化なし) |
在庫が 3 → 0 → 1 に戻った | ✅ 再度通知可能 | フラグが false に戻っているため |
まとめ
要素 | 内容 |
|---|---|
トリガー | 在庫数が変化したとき |
条件1 | 在庫が 1 以上 |
条件2 | 通知済みメタフィールドが |
アクション1 | 「在庫復活」を社内にメール通知 |
アクション2 | メタフィールドを |
これで在庫復活時のリセットも自動化され、「在庫切れ → 復活 → 再び在庫切れ」のサイクルにも自動対応できるようになります。
07. STEP3:新商品登録時にメタフィールドをfalseに設定する
🎯 目的
新規商品(バリエーション)が登録されたタイミングで、「通知済みフラグ(metafield)」が未設定だと、在庫が0になっても通知フローがスキップされてしまいます。
そのため、あらかじめ通知フラグ(flow_stock.variant_out_of_stock)を false に初期設定する必要があります。
❓ なぜ必要か?
状況 | 結果 |
|---|---|
メタフィールド未設定 | 通知フローが動かない |
メタフィールドがfalse | 通知フローが正常動作 |
メタフィールドがtrue | 通知スキップ(通知済み扱い) |
Shopify Flowの条件ブロックでは、「値が存在しない」状態を
falseとしては扱いません。
明示的にfalseとして登録しておく必要があります。
🛠 Flowの構成イメージ

🪜設定手順
1. トリガー:Product variant added
Flow → ワークフローを作成
トリガーを選択:
Product variant addedこれは、商品登録時に自動で発動されます。
2. アクション:通知フラグをfalseで初期化
アクションブロック:
Update product variant metafield
メタフィールド設定:
項目 | 内容 |
|---|---|
Namespace |
|
Key |
|
タイプ | True / False(ブール型) |
値 |
|
✅ メタフィールドの名称が「在庫通知ステータス」と表示されていればOKです(定義済みのものを選択)

動作イメージ(自動化の恩恵)
商品登録方法 | このFlowが動作する? | 結果 |
|---|---|---|
管理画面から商品+SKUを登録 | ✅ 動作する | SKUに |
CSVでSKUを一括登録 | ✅ 動作する | 全SKUに対してフラグがfalseで追加される |
Shopify Admin API経由 | ✅ 動作する | 自動で初期化され、通知フロー対象になる |
まとめ
設定要素 | 内容 |
|---|---|
トリガー | Product variant added |
アクション | メタフィールド |
目的 | 通知フローが新商品に対しても正しく動作するようにするため |
この設定を入れておくことで、今後追加されるすべての商品が通知の対象として正しく準備されるため、
在庫が切れた際の見逃しを完全に防ぐ仕組みが完成します。
重要:既存商品については手動で設定しておく必要があります。
既存商品の商品数が少ない場合には手動で設定していただければと思いますが、大量に商品がある場合には何かしらの方法でまとめて設定する必要があります。
※ここではその解説は行いません
08. よくある質問とトラブル対応
通知が飛ばない → メタフィールド未設定 or 既にtrueになっている可能性
通知が何度も飛ぶ → フラグ更新(true化)処理が抜けている
顧客にメタフィールドは見える? → 見えません(管理者のみ)
09. まとめと今後の活用アイデア
Shopify Flowとメタフィールドを使えば、完全無料で在庫切れ通知の自動化が実現できます。
今後はSlack通知など、より高いリアルタイム性と自動化レベルの向上が可能です。
この記事を書いた人

























