2026年5月20日
2026年5月20日
WooCommerceの在庫管理の設定方法|在庫数・在庫切れ・在庫低下通知
WooCommerce の在庫管理を使うと、商品ごとに在庫数を数え、売り切れたら購入できない状態にしたり、在庫が少なくなったらメールで知らせたりできます。この記事では、ストア全体の設定と商品ごとの設定、在庫が増減するタイミング、よく使うカスタマイズを説明します。
画面の項目名とフック名は、WooCommerce のソースコードと日本語翻訳(translate.wordpress.org)で2026年11月時点に確認したものです。
ストア全体の在庫設定
管理画面の「WooCommerce」→「設定」→「商品」タブを開き、上部の「在庫」をクリックします。
| 項目 | 内容 | 初期値 |
|---|---|---|
| 在庫管理 | 「在庫管理を有効化」にチェックすると在庫管理の機能が使えるようになる | 有効 |
| 在庫保持 (分単位) | 支払いが済んでいない注文のために在庫を確保しておく時間。この時間を過ぎると「支払い待ち」の注文はキャンセルされる。空欄にすると無効 | 60 |
| 通知 | 「在庫低下通知を有効化」「在庫切れ通知を有効化」「入荷待ち通知を有効化」 | すべて有効 |
| 通知受信者 | 在庫の通知メールの送信先。カンマ区切りで複数指定できる | サイトの管理者メールアドレス |
| 在庫低下を知らせる数値 | 在庫数がこの値以下になると在庫低下の通知を送る | 2 |
| 在庫切れを知らせる数値 | 在庫数がこの値以下になると在庫状況が「在庫切れ」に変わり、通知を送る | 0 |
| 在庫切れの表示 | 「カタログから在庫のない商品は表示しない」にチェックすると、ショップ一覧などから在庫切れ商品を外す | 無効 |
| 在庫表示形式 | 商品ページに残り在庫数を表示するか(常に表示・少なくなったときだけ表示・表示しない) | 常に表示 |
変えたら「変更を保存」を押します。
「在庫切れの表示」で隠しても、商品ページの URL はそのまま残ります。売り切れた商品を下書きに戻すと URL が 404 になり、検索結果や外部からのリンクが切れるため、一時的な在庫切れなら下書きにせず、この設定で一覧から外すほうが扱いやすくなります。
商品ごとの在庫を設定する
商品の編集画面で「商品データ」の「在庫」タブを開きます。
- 「在庫管理」の「この商品の在庫数を追跡」にチェックする
- 「数量」に現在の在庫数を入れる
- 「お取り寄せを受け付けますか ?」で、在庫切れのときの扱いを選ぶ(選択肢は下の表)
- 必要なら「在庫低下を知らせる数値」に商品ごとの値を入れる(空欄ならストア全体の値を使う)
- 「更新」を押す
| 「お取り寄せを受け付けますか ?」の選択肢 | 在庫切れのときの動き |
|---|---|
| 許可しない | 在庫がなくなると購入できない |
| 許可し、顧客に通知する | 注文を受け付け、商品ページなどに「お取り寄せができます」と表示する |
| 許可 | 注文を受け付ける(お取り寄せの表示はしない) |
「この商品の在庫数を追跡」にチェックしない商品は数量を数えず、「在庫状況」(在庫あり・在庫切れ・お取り寄せ)を手で切り替えて管理します。
「個別販売」の「1回の注文につき1商品に購入を制限」は、1回の注文で買える数を1つにする設定で、在庫数とは別のものです。
可変商品(バリエーション)の場合
可変商品では、親商品の「在庫」タブで在庫数を管理すると、在庫を個別に管理していないバリエーションすべてでその数を共有します。色やサイズごとに在庫を分けたい場合は、「バリエーション」タブで各バリエーションの「在庫管理」にチェックを入れ、それぞれに在庫数を入れます。
在庫が減る・戻るタイミング
在庫数は、注文が入った瞬間ではなく、注文のステータスが変わったときに増減します。
| タイミング | 在庫の動き |
|---|---|
| チェックアウトで注文が作られたとき | 「在庫保持 (分単位)」の時間だけ在庫を確保し、ほかの人が同じ在庫を買えないようにする |
| 支払いが完了したとき、またはステータスが「処理中」「保留中」「完了」になったとき | 在庫数が減る(1つの注文で減るのは1回だけ) |
| ステータスが「キャンセル済み」「支払い待ち」「失敗」に戻ったとき | 減らした在庫数が戻る |
在庫が減ると、注文のメモに「在庫の削減:」に続けて商品名と変更前→変更後の数が記録されるので、在庫数が合わないときは注文のメモを確かめてください。
在庫の通知をカスタマイズする
在庫低下・在庫切れの通知は WooCommerce の「メール」設定の一覧には出てこないため、送信先は上の「通知受信者」か、フィルターで変えます。以下のコードは子テーマの functions.php か、wp-content/mu-plugins/ に置く PHP ファイルに書きます。
<?php
// 在庫低下・在庫切れの通知メールの送信先を変える
add_filter( 'woocommerce_email_recipient_low_stock', function ( $recipient, $product ) {
return 'stock@example.com, admin@example.com';
}, 10, 2 );
add_filter( 'woocommerce_email_recipient_no_stock', function ( $recipient, $product ) {
return 'stock@example.com, admin@example.com';
}, 10, 2 );
在庫低下のしきい値をカテゴリーごとに変えたい場合は、商品の値を取り出すときのフィルター woocommerce_product_get_low_stock_amount を使います。商品ごとの値が空のときだけ置き換えるので、編集画面で個別に入れた値が優先されます。
<?php
// 「food」カテゴリーの商品は、個別の値が空なら在庫低下のしきい値を 20 にする
add_filter( 'woocommerce_product_get_low_stock_amount', function ( $amount, $product ) {
if ( '' === $amount && has_term( 'food', 'product_cat', $product->get_id() ) ) {
return 20;
}
return $amount;
}, 10, 2 );
バリエーションに個別の値が無い場合は親商品の値が使われるため、親商品にカテゴリーを付けておけばバリエーションにも効きます。
WP-CLI で在庫を確認・更新する
WooCommerce には WP-CLI 用のコマンド(wp wc)があり、REST API と同じ項目を扱えます。実行するユーザーを --user で指定する必要があります。
# 商品 123 の在庫管理を有効にし、在庫数を 100 にする
wp wc product update 123 --manage_stock=true --stock_quantity=100 --user=admin
# 商品 123 の在庫数を表示する
wp wc product get 123 --field=stock_quantity --user=admin
# 在庫切れの商品を一覧にする(初期値は1ページ10件なので件数を増やす)
wp wc product list --stock_status=outofstock --fields=id,name,stock_quantity --per_page=100 --user=admin
# 可変商品 200 のバリエーション 201 の在庫数を 30 にする
wp wc product_variation update 200 201 --manage_stock=true --stock_quantity=30 --user=admin
在庫数がしきい値以下の商品をまとめて確かめたい場合は、wp eval で次のように実行します。商品ごと・ストア全体のしきい値の両方を考慮し、バリエーションも含めて表示します。
wp eval 'foreach ( wc_get_products( array( "limit" => -1, "type" => array_merge( array_keys( wc_get_product_types() ), array( "variation" ) ) ) ) as $p ) { if ( true === $p->get_manage_stock() && $p->get_stock_quantity() <= wc_get_low_stock_amount( $p ) ) { echo $p->get_id() . "\t" . $p->get_name() . "\t" . $p->get_stock_quantity() . PHP_EOL; } }'
商品数が多いストアでは全件を読み込むので時間がかかります。管理画面では「アナリティクス」→「在庫」でも、在庫切れや在庫少の商品を絞り込んで確認できます。
注意点
- 在庫数の一括変更や外部システムとの連携をする前に、データベースをバックアップしてください。
- 「お取り寄せ」を許可する場合は、入荷の目安を商品ページやメールで伝えておくと問い合わせを減らせます。
- 在庫管理を後から有効にした場合、既存の商品には在庫数が入っていません。商品ごとに「この商品の在庫数を追跡」と数量を設定してください。
WooCommerce の初期設定全体は WooCommerceの初期設定 で説明しています。