2026年5月20日

2026年5月20日

WooCommerceの在庫管理の設定方法|在庫数・在庫切れ・在庫低下通知

WooCommerce の在庫管理を使うと、商品ごとに在庫数を数え、売り切れたら購入できない状態にしたり、在庫が少なくなったらメールで知らせたりできます。この記事では、ストア全体の設定と商品ごとの設定、在庫が増減するタイミング、よく使うカスタマイズを説明します。

画面の項目名とフック名は、WooCommerce のソースコードと日本語翻訳(translate.wordpress.org)で2026年11月時点に確認したものです。

ストア全体の在庫設定

管理画面の「WooCommerce」→「設定」→「商品」タブを開き、上部の「在庫」をクリックします。

項目 内容 初期値
在庫管理 「在庫管理を有効化」にチェックすると在庫管理の機能が使えるようになる 有効
在庫保持 (分単位) 支払いが済んでいない注文のために在庫を確保しておく時間。この時間を過ぎると「支払い待ち」の注文はキャンセルされる。空欄にすると無効 60
通知 「在庫低下通知を有効化」「在庫切れ通知を有効化」「入荷待ち通知を有効化」 すべて有効
通知受信者 在庫の通知メールの送信先。カンマ区切りで複数指定できる サイトの管理者メールアドレス
在庫低下を知らせる数値 在庫数がこの値以下になると在庫低下の通知を送る 2
在庫切れを知らせる数値 在庫数がこの値以下になると在庫状況が「在庫切れ」に変わり、通知を送る 0
在庫切れの表示 「カタログから在庫のない商品は表示しない」にチェックすると、ショップ一覧などから在庫切れ商品を外す 無効
在庫表示形式 商品ページに残り在庫数を表示するか(常に表示・少なくなったときだけ表示・表示しない) 常に表示

変えたら「変更を保存」を押します。

「在庫切れの表示」で隠しても、商品ページの URL はそのまま残ります。売り切れた商品を下書きに戻すと URL が 404 になり、検索結果や外部からのリンクが切れるため、一時的な在庫切れなら下書きにせず、この設定で一覧から外すほうが扱いやすくなります。

商品ごとの在庫を設定する

商品の編集画面で「商品データ」の「在庫」タブを開きます。

  1. 「在庫管理」の「この商品の在庫数を追跡」にチェックする
  2. 「数量」に現在の在庫数を入れる
  3. 「お取り寄せを受け付けますか ?」で、在庫切れのときの扱いを選ぶ(選択肢は下の表)
  4. 必要なら「在庫低下を知らせる数値」に商品ごとの値を入れる(空欄ならストア全体の値を使う)
  5. 「更新」を押す
「お取り寄せを受け付けますか ?」の選択肢 在庫切れのときの動き
許可しない 在庫がなくなると購入できない
許可し、顧客に通知する 注文を受け付け、商品ページなどに「お取り寄せができます」と表示する
許可 注文を受け付ける(お取り寄せの表示はしない)

「この商品の在庫数を追跡」にチェックしない商品は数量を数えず、「在庫状況」(在庫あり・在庫切れ・お取り寄せ)を手で切り替えて管理します。

「個別販売」の「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の初期設定 で説明しています。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲