2026年5月20日
2026年5月20日
WooCommerceの在庫管理を設定する方法
はじめに
WooCommerceの在庫管理機能を使うと、商品の在庫数を追跡し、在庫切れ時に自動で購入できなくするなどの制御が可能です。適切な設定で過剰販売(overselling)を防ぎましょう。
解決手順
ステップ1:在庫管理を有効化する
WooCommerce → 設定 → 商品 → 在庫
- 在庫管理を有効化: ✓(チェックを入れる)
- 保留中の注文のキャンセル時間: 60分(推奨)
- 低在庫の通知先: admin@example.com
- 低在庫しきい値: 5
- 在庫切れしきい値: 0
- 在庫切れの商品を非表示にする: チェック(任意)
ステップ2:商品の在庫数を設定する
商品を編集 → 商品データ → 在庫タブ
- 在庫数を管理する: ✓
- 在庫数: 100(実際の在庫数を入力)
- 在庫状況: 在庫あり
- 個別に販売(backorders): 許可しない
# WP-CLIで商品の在庫を設定
wp wc product update 123 --manage_stock=true --stock_quantity=100 --user=admin
# 在庫状況を確認
wp wc product get 123 --field=stock_quantity --user=admin
# 複数商品の在庫を一括確認
wp wc product list --fields=id,name,stock_quantity --user=admin --format=table
ステップ3:在庫切れ時の動作を設定する
// functions.php — 在庫切れ商品を自動的に下書きに変更
add_action('woocommerce_no_stock', function(WC_Product $product) {
// 在庫が0になったら非表示(下書き)にする
if ($product->get_stock_quantity() <= 0) {
wp_update_post([
'ID' => $product->get_id(),
'post_status' => 'draft',
]);
}
});
// 在庫補充時に自動公開
add_action('woocommerce_product_set_stock', function(WC_Product $product) {
if ($product->get_stock_quantity() > 0 && $product->get_status() === 'draft') {
wp_update_post([
'ID' => $product->get_id(),
'post_status' => 'publish',
]);
}
});
ステップ4:低在庫通知をカスタマイズする
// functions.php — 低在庫メールの送信先を変更
add_filter('woocommerce_email_recipient_low_stock', function($recipient, $product) {
return 'stock-manager@example.com, admin@example.com';
}, 10, 2);
// 低在庫しきい値を商品カテゴリーで変える
add_filter('woocommerce_get_low_stock_amount', function($threshold, $product) {
if (has_term('food', 'product_cat', $product->get_id())) {
return 20; // 食品カテゴリーは多めのしきい値
}
return $threshold;
}, 10, 2);
ステップ5:在庫レポートを確認する
# 在庫切れ商品を一覧表示
wp wc product list --stock_status=outofstock --fields=id,name --user=admin --format=table
# 低在庫商品を確認(在庫数が5以下)
wp eval "
\$products = wc_get_products(['limit' => -1]);
foreach (\$products as \$p) {
if (\$p->managing_stock() && \$p->get_stock_quantity() <= 5) {
echo \$p->get_name() . ': ' . \$p->get_stock_quantity() . PHP_EOL;
}
}"
注意事項
- 複数の注文が同時に処理された場合(競合状態)、在庫数が正確でなくなる場合があります。高トラフィックサイトではデータベースのトランザクション設定を確認してください
- バックオーダー(在庫切れでも注文受付)を設定した場合は、顧客への通知メールで入荷予定日を明示してください
- 変数商品の場合、バリエーションごとに在庫管理が必要です
まとめ
在庫管理は WooCommerce → 設定 → 商品 → 在庫 で有効化し、各商品の在庫数を設定します。WP-CLIの wp wc product update --stock_quantity=N で在庫を一括更新でき、低在庫通知で在庫切れを事前に防げます。