WooCommerceには、従来のショップページで売り切れ商品を処理するための組み込みの方法が1つありますが、それはすべてか無しかです。「カタログから在庫切れの商品を非表示にする」設定は、在庫の補充を喜んで待つ人も含め、すべての買い物客からそれらを削除します。
より良い選択肢は、買い物客自身に決定させることです。WooCommerceに在庫ありフィルターを追加すると、すぐに発送できる商品のみを希望する人はチェックボックスをオンにでき、他のすべての人は引き続き完全なカタログを見ることができます。
WooCommerceは各商品の在庫状況を「_stock_status」というカスタムフィールドに保存しているため、カスタムコードは必要ありません。WPFiltersは、そのフィールドをフィルターに変換し、ユーザーが在庫あり商品を並べ替えることができます。
この記事では、両方の方法を使用してWooCommerceに在庫ありフィルターを追加する方法を説明します。これにより、ストアに最適な方法を選択できます。
WooCommerceストアに在庫ありフィルターを追加する理由
在庫ありフィルターを使用すると、買い物客は現在購入できないすべての商品を非表示にできます。
すべてのWooCommerce商品には、「在庫あり」、「在庫切れ」、または「予約注文」の3つの在庫状況のいずれかがあります。
各商品の在庫タブで設定するか、WooCommerceが在庫数量を追跡する際に自動で更新します。WooCommerceの商品編集画面の設定ドキュメントには、各ステータスの意味が説明されています。
在庫切れ商品を非表示にすると、全員にとってそれらが削除されますが、フィルターは買い物客が絞り込みを選択するまで、カタログには影響しません。
私たちの経験では、ストアオーナーは人気商品が再入荷の間になくなる場合に最もこれを痛感します。
- 在庫切れの商品はクリックを無駄にします。買い物客は商品ページを開き、利用不可であることに気づき、最初からやり直すために戻ります。
- それらを非表示にすることにはコストがかかります。在庫切れの商品が消えると、予約注文したり、来週また来るつもりだった買い物客はそれらを全く見つけることができません。
- 予約注文は見つけにくいです。フィルターがないと、買い物客は各商品を開くまで、どの商品がすぐに発送され、どの商品が後で発送されるのか区別できません。
- 組み込みオプションは限られています。WooCommerceの「在庫状況フィルター」ブロックは、ブロックベースのショップページにある「商品フィルター」ブロック内でのみ機能するため、従来のショップサイドバーでは利用できません。
食料品店が空の箱と一緒に棚のタグを外すようなものです。その商品を欲しかった買い物客は、それがいつ戻ってくるのかを知ることはありません。
次に、買い物客にその選択肢を与える最も簡単な方法を見てみましょう。
WPFiltersでWooCommerceに在庫ありフィルターを追加する
WooCommerceに在庫ありフィルターを追加する最も簡単な方法として、WPFiltersをお勧めします。

WPFiltersは、SearchWPと同じチームによって構築された、WordPress向けの最高のフィルタリングプラグインです。
これにより、コードを書かずに、ストアが既に持っているカスタムフィールド、カテゴリ、属性からフィルターを構築できます。
WPFiltersが在庫フィルターに適している理由をいくつかご紹介します。
- カスタムフィールドフィルター。WPFiltersは、WooCommerceが提供する
_stock_statusフィールドを含め、任意のカスタムフィールドをカスタムフィールドフィルターに変換できます。 - 分類と属性フィルター。商品属性からフィルターを構築することもできるため、独自の在庫状況ラベルもチェックボックスにすることができます。
- ページリロードなし。買い物客がチェックボックスをオンにすると、WPFiltersはAJAXを使用して同じページの商品を更新します。
- 共有可能なフィルターURL。各選択はページURLに保存されるため、買い物客は在庫あり商品のページをブックマークしたり共有したりできます。
それでは、WPFiltersを使用してストアに在庫ありフィルターを追加する方法を見てみましょう。
まず、SearchWPのウェブサイトでWPFiltersプランにサインアップできます。
サインアップしたら、アカウントダッシュボードのダウンロードタブに移動できます。
そこから、WPFiltersプラグインZIPファイルをダウンロードしてください。
その際に、ライセンスキーもコピーしておいてください。すぐに必要になります。

次に、プラグインをWordPressサイトにアップロードしてインストールできます。
ヘルプが必要な場合は、WPBeginnerのWordPressプラグインのインストール方法ガイドに従ってください。
有効化後、WPFiltersセットアップウィザードが開きます。開始するをクリックして、画面の指示に従ってください。

注意: WPFiltersは、サイトにフィルターを表示するためにアクティブなライセンスが必要です。続行する前に、キーが検証されていることを確認してください。
WPFiltersの準備ができました!これで、ストアに適した方法を選択できます。
方法1:WooCommerceの在庫状況でフィルターする(自動)
この方法は、既にWooCommerceで在庫を追跡している場合に最適です。
フィルターは、WooCommerceが各商品に保存するステータスを読み取るため、商品が売り切れたり再入荷したりしても最新の状態に保たれます。
ステップ1:在庫状況フィルターを作成する
開始するには、WordPressダッシュボードからWPFilters » Elementsに移動します。

次に、新規追加ボタンをクリックします。
ビルダーの上部で、要素名の横にある鉛筆アイコンをクリックし、「在庫状況」のように買い物客が理解できる名前を付けます。
その後、Filter Fieldsセクションを探し、Checkboxを選択します。
買い物客は複数のステータス(例:「在庫あり」と「予約注文」)を同時に選択できるため、ここではチェックボックスを使用します。

そこから下にスクロールしてデータソースセクションに移動し、ドロップダウンを開きます。
Custom Fieldsグループ内にある_stock_statusを選択してください。

注意:近くに_stockと_manage_stockも表示されます。これらのフィールドは、製品の在庫数量と追跡するかどうかを保存しますが、ステータスは保存しないため、必ず_stock_statusを選択してください。
WPFiltersは、WooCommerceが保存したとおりにオプションを表示するため、買い物客はinstock、outofstock、onbackorderを見ることになります。
「本日発送」のようなラベルを表示したい場合は、以下の方法2で各オプションに自分で名前を付けることができます。
次に、フィルターの外観を選択できます。
Containerの下で、チェックボックスの上に「在庫状況」という名前が表示されるようにShow Titleをオンにします。

見た目が良くなったら、保存をクリックします。
WPFiltersは、この名前を使用してフィルターのURLも構築するため、「在庫状況」はショップページのURLにstock-statusとして表示されます。
プロのヒント:WooCommerce » Settings » Products » Inventoryの下にあるHide out of stock items from the catalogをオンにしている場合、売り切れの商品はショップページに表示されません。その場合、フィルターにはinstockとonbackorderのみが表示され、これは、買い物客がすぐに発送できる商品と予約注文を分離したい場合に便利です。
ステップ2:ショップページにフィルターを追加する
次に、フィルターを製品の横に配置できます。
WPFilters は、ショップページが既に表示している製品リストと連携するため、両者を接続するための追加設定は必要ありません。
ショップのサイドバーに追加するには、Appearance » Widgetsに移動します。

そこから、テーマがショップページで使用しているウィジェットエリアを開きます。デモストア(Astraテーマを使用)では、それはWooCommerce Sidebarです。
その後、+アイコンをクリックし、「WPFilters」を検索して、WPFilters Elementブロックを追加します。
次に、ブロック設定のSelect Elementドロップダウンから「在庫状況」フィルターを選択します。

完了したら、Updateをクリックしてウィジェットを保存します。この手順は、使用しているWordPressテーマによって異なる場合があることに注意してください。
テーマにショップサイドバーがない場合、フィルタービルダーの埋め込みボタンを使用すると、フィルターを表示したい場所に貼り付けることができるショートコード(例:)が生成されます。
ステップ3:在庫ありフィルターをテストする
フィルターが配置されたら、新しいブラウザタブでショップページにアクセスできます。「在庫状況」というタイトルと、商品が使用する各ステータスのチェックボックスが表示されます。
最初のテストでは、instockをチェックします。デモストアでは、在庫ありフィルターオプションをチェックしたところ、在庫切れだったため、Puddle Jumper Waterproof Rain Bootsがページをリロードせずにすぐにリストから削除されました。

2回目のテストでは、チェックボックスをオンにした後のページURLを確認してください。
URLにstock-statusが含まれ、その後に選択したステータスが続くことがわかります。
そのURLをコピーしてプライベートウィンドウで開くと、同じ在庫あり商品が表示されることを確認できます。
方法2:カスタム在庫属性(タクソノミー)で絞り込む
この方法は、「本日出荷」や「予約注文」など、WooCommerceが追跡しない分かりやすいラベルが必要な場合に最適です。
トレードオフとして、商品が売り切れたときにWooCommerceが属性を変更しないため、自分で更新する必要があります。
注意: データソースリストに商品表示順序タクソノミーが表示されることがありますが、在庫フィルターとしては機能しません。WooCommerceは売り切れ商品に対してoutofstockタグを追加するだけで、対応する在庫ありタグがないため、WPFiltersタクソノミーフィルターは買い物客が選択したタグを持つ商品しか表示できず、在庫あり商品は決して表示されません。
ステップ1:在庫属性を作成する
まず、在庫ラベルを保持する属性が必要になります。
作成するには、WordPressダッシュボードの商品 » 属性に移動します。新しい属性を追加の下の名前フィールドに「在庫」と入力します。
WooCommerceはスラッグを自動入力するため、属性を追加をクリックできます。

次に、属性テーブルで「在庫」を見つけ、その下の用語を設定をクリックします。
これにより、買い物客が表示する各ラベルを追加できる画面が開きます。名前フィールドに「本日出荷」と入力し、在庫を追加をクリックしてください。
次に、「2週間で出荷」と「予約注文」についても同様に繰り返します。
ステップ2:商品に在庫を割り当てる
これで、各商品にどのラベルが適しているかをWooCommerceに伝えることができます。
これを行うには、エディターで商品を開き、商品データボックスまでスクロールします。
そこから、属性タブをクリックし、グローバルを追加ドロップダウンから「在庫」を選択します。
その後、値フィールドで「本日出荷」のようなラベルを選択します。

商品の追加情報タブの下に在庫を表示したくない場合は、商品ページで表示のチェックを外します。
それが完了したら、属性を保存をクリックし、次に更新をクリックして商品を保存します。
ステップ3:フィルターを作成してショップに追加する
次に、WPFilters » 要素に戻り、新規追加をクリックします。

要素に「在庫」という名前を付け、フィルターフィールドの下でチェックボックスを選択します。

データソースドロップダウンで、タクソノミーグループから商品在庫(pa_availability)を選択します。

今回は、チェックボックスに「本日出荷」、「2週間で出荷」、「予約注文」と入力したとおりに表示されます。
コンテナの下のタイトルを表示をオンにしてから、保存をクリックします。
その後、方法1のステップ2と同じように、WPFilters要素ブロックを使用してフィルターをショップのサイドバーに追加します。

ステップ4:在庫状況フィルターのテスト
テストするには、新しいタブでショップページを開き、「本日発送」にチェックを入れます。
「本日発送」とラベル付けされた商品のみがページに残るはずです。

次に、「予約注文」にもチェックを入れます。
いずれかのラベルが付いた商品が表示されるようになりました。同じフィルターで複数のボックスをオンにすると、いずれかに一致する商品が表示されるためです。
どの在庫状況フィルター方法を使用すべきか?
どちらの方法も買い物客に在庫状況フィルターを提供しますが、それぞれ異なるストアに適しています。
| 方法1:在庫状況 | 方法2:在庫状況属性 | |
|---|---|---|
| 在庫が変更されると更新される | 在庫数量を追跡している場合、自動的に更新される | 手動で更新する |
| オプションラベル | instock、outofstock、onbackorder | 入力した任意のラベル |
| 「予約注文」などのカスタムステータス | いいえ | はい |
| セットアップ時間 | 数分 | 各商品にラベルを付けるため、より時間がかかる |
ほとんどのストアでは方法1から始めることをお勧めします。在庫と同期した状態を保つためです。
方法2は、買い物客が単純な「はい」か「いいえ」よりも配送時間を重視する場合に適しており、同じサイドバーで両方のフィルターを実行できます。
もし、それらの隣にさらにフィルターを追加したい場合は、WordPressでWooCommerceの商品をフィルターする方法に関するガイドで、カテゴリー、タグなどをカバーしています。
よくある質問
1. WooCommerceには組み込みの在庫状況フィルターがありますか?
WooCommerceには在庫状況フィルターブロックが含まれていますが、ブロックベースのショップページでは商品フィルターブロック内でのみ機能します。
クラシックなショップサイドバーの場合、WPFiltersプラグインはWooCommerceの_stock_statusカスタムフィールドで商品をフィルターできるため、買い物客はボックスをオンにして在庫状況の商品のみを表示できます。
2. WooCommerceで在庫切れの商品を非表示にするにはどうすればよいですか?
すべての買い物客に対して在庫切れの商品を非表示にするには、WooCommerce » 設定 » 商品 » 在庫の下にあるカタログから在庫切れの商品を非表示にするにチェックを入れます。
在庫状況フィルターは、売り切れの商品は買い物客が非表示を選択するまで表示されるため、より穏やかなオプションです。
3. 買い物客はバックオーダーのステータスでもフィルターできますか?
買い物客は、WPFiltersフィルターを使用してバックオーダーのステータスでフィルターできます。これはWooCommerceの_stock_statusフィールドに基づいており、ショップページの商品がそのステータスを使用するたびにonbackorderが独自のチェックボックスとして表示されるためです。
instock と onbackorder を同時に表示すると、購入者が今日注文できるすべての商品が表示されます。
4. 在庫フィルターに「In stock」ではなく「instock」と表示されるのはなぜですか?
WPFilters は、WooCommerce が保存したとおりにカスタムフィールドオプションを表示します。WooCommerce は在庫状況を instock、outofstock、または onbackorder として保存します。
より分かりやすいラベルを作成するには、「配送状況」のようなグローバル商品属性を作成し、「本日出荷」のような用語を設定してから、その属性から WPFilters フィルターを構築してください。
5. 在庫フィルターは在庫が変更されると更新されますか?
WooCommerce の _stock_status フィールドに基づいて構築された WPFilters フィルターは、WooCommerce が在庫数量を追跡している場合、自動的に更新されます。これは、WooCommerce が売り切れまたは再入荷時にステータスを変更するためです。
カスタム在庫属性に基づいて構築されたフィルターは、各商品を編集したときにのみ変更されます。
結論
これで、ショップに在庫ありフィルターが追加されました。すぐに発送できる商品のみを希望する購入者は、ワンクリックで見つけることができます。
この記事が、WooCommerce に在庫ありフィルターを追加する方法を学ぶのに役立ったことを願っています。
また、属性で WooCommerce 商品をフィルターする方法 や WordPress にフィルターリセットボタンを追加する方法 に関するガイドも参照してください。
購入者が今日購入できる商品を見つけるのを手伝う準備はできましたか?ここから WPFilters を開始できます。14日間の返金保証付きです。



