タグアーカイブ バリエーション

WooCommerceのバリエーション商品だけ検索にヒットしない時の原因と直し方

WooCommerceのバリエーション商品だけ検索にヒットしない時の原因と直し方

WooCommerceで複数のバリエーションを持つ商品のうち特定のバリエーションだけサイト内検索に表示されない場合、Algoliaなどの検索インデックスに「非公開扱い」「価格未設定」「在庫切れの非表示」などの条件が記録されたままになっている可能性が高い。まず商品編集画面で該当バリエーションの有効状態とカタログ表示の設定を確認し、再保存してインデックスを更新する。

なぜ特定のバリエーションだけ検索にヒットしないのか

なぜ特定のバリエーションだけ検索にヒットしないのか

WooCommerceはバリエーションを親商品とは別の商品データとして管理する。検索用のインデックスを作る仕組みでは、親商品に加えて各バリエーションが別レコードとして登録されることが基本になる。その際、各バリエーションの公開条件や商品データに不備があると、そのバリエーションだけインデックスから除外される。

たとえば一部のバリエーションは検索に出るのに特定の型番だけ出ないという症状は、インデックス全体の問題ではなく、該当バリエーションの扱いに原因が集中している場合が多い。親商品の更新では直らず、バリエーション単位の設定を見直す必要がある。

WooCommerceでバリエーションの公開設定を確認する手順

WooCommerceでバリエーションの公開設定を確認する手順

バリエーションが検索に引っかからない場合、まず商品編集画面から該当バリエーションを開き、公開状態とデータの入力を確認する。単純商品であれば「更新」ボタンを押すだけで直る症状でも、バリエーション商品は個別の設定がそのまま残ることがある。

STEP 1 商品編集画面で「バリエーション」タブを開く
STEP 2 該当バリエーションを開き「有効」を確認する
STEP 3 価格、在庫、SKUの入力を確認する
STEP 4 商品を更新して検索インデックスを再構築する
確認ステップ 設定とデータの修正

このデモでは、検索に出ないバリエーションを確認する流れを示している。ここからは各ステップの詳細を見ていく。

「有効」チェックボックスがオフになっていないか

バリエーション編集画面の上部には「有効」のチェックボックスがある。ここがオフになっていると、そのバリエーションはカタログや検索から除外される。特定のバリエーションだけ検索に出ない場合、最初に確認したい項目だ。

チェックが外れている場合はチェックを入れて保存する。複数のバリエーションで同じ問題が起きているなら、一覧画面の絞り込み表示を活用し、無効化されたバリエーションだけを確認するのが早い。

価格と在庫が正しく入力されているか

バリエーションに価格が入力されていない場合、WooCommerceはそのバリエーションを非表示にする。また在庫切れでかつ「在庫切れ商品をカタログから隠す」設定が有効だと、検索インデックスからも外れる。価格と在庫はバリエーションごとに独立して管理されるため、親商品が正常でも特定のバリエーションだけ欠けていることがある。

親商品の「カタログ表示」設定が検索対象になっているか

親商品の編集画面には「カタログ表示」の設定がある。ここが「ショップと検索結果」または「検索結果のみ」になっていないと、その商品のバリエーション全体が検索に出なくなる。ただし一部のバリエーションはヒットするというケースでは、親商品の設定は原因になりにくい。それでも親商品が「非表示」になっていないか併せて確認しておく。

Algoliaにバリエーションが同期されない場合の対処

Algoliaにバリエーションが同期されない場合の対処

WooCommerceとAlgoliaを連携しているサイトでは、商品データの変更がAlgolia側に正しく同期されないと、特定のバリエーションだけ検索結果から漏れることがある。管理画面からインデックス設定と同期キューを確認する。

変動商品のインデックス設定を確認する

AlgoliaのWooCommerce連携プラグインには、バリエーションをインデックスに含めるかどうかの設定がある。ここが無効だと親商品だけが検索対象になり、バリエーションの型番検索が機能しない。設定を開き、バリエーションが検索可能になっているか確認する。

該当バリエーションを無効化して再度有効化する

検索に出ないバリエーションの「有効」チェックを一度外して保存し、その後に再びチェックを入れて保存する方法が有効なことがある。これによりWooCommerce側の更新イベントが発火し、Algoliaへの同期処理が再実行される。単純商品の「更新」で直るのと同じ理屈だが、バリエーションは親商品の更新だけではイベントが伝わらない場合がある。

インデックスキューをリセットして再構築する

Algolia連携プラグイン側でキューに滞留しているタスクがあると、一部の商品だけ同期されない。プラグインの設定画面からインデックスを再構築するか、キューをクリアしてから商品を再保存する。再構築には数分かかることがあるため、完了後に検索結果を確認する。

再保存しても直らない時に確認するデータ不整合

再保存しても直らない時に確認するデータ不整合

設定面で問題がないのにインデックスされない場合は、バリエーションデータそのものに不整合が起きている可能性がある。データベース上のpost_statusやSKUの重複を確認する。

重複するSKUや空の価格が原因になっていないか

SKUが別の商品と重複していると、検索プラグイン側でレコードの上書きや取り込みスキップが発生することがある。また親商品で価格を設定せずバリエーション側だけ価格を入れる運用では、空の値が検索条件から除外される場合もある。SKUの重複は管理画面の商品一覧からCSV書き出しなどで確認できる。

バリエーションの投稿状態が下書きになっていないか

WooCommerceのバリエーションは内部的に「product_variation」という投稿タイプで保存される。何らかの操作で投稿状態が下書きのままになっていると、検索インデックスに登録されない。通常は管理画面から確認できないため、WP CLIやデータベースの直接確認が必要になる。WP CLIが使える環境なら次のコマンドで該当バリエーションの状態を調べられる。

wp post list --post_type=product_variation --post_status=draft

検索インデックスを更新したあとに確認する動作

検索インデックスを更新したあとに確認する動作

設定とデータを修正したら、実際にサイトの検索窓から該当するバリエーションを検索して表示されるか確認する。検索結果に出るかだけでなく、リンク先のURLが正しく該当バリエーションに飛ぶかも見る。

フロントエンドで検索して該当バリエーションが出るか

型番やSKUを検索語にして、対象のバリエーションがヒットするか確かめる。キャッシュが残っていると更新前の結果が表示されることがあるため、ブラウザのシークレットウィンドウを使うか、サイト側のキャッシュを削除してから検索する。

検索結果のURLが正しいバリエーションに飛ぶか

バリエーション検索では、インデックスから返されるURLにバリエーション識別子が含まれていないと、親商品のページに飛んで該当するオプションが初期表示されない。検索結果をクリックして商品ページを開き、狙った型番が選択された状態で表示されるか確認する。URLに属性のクエリパラメータが付いているかを目視で確かめるのが確実だ。

よくある質問

バリエーション検索はWooCommerce標準機能でも使えるのか

WooCommerce標準の商品検索は親商品を対象にすることが多く、バリエーション単位の型番検索には対応が弱い。Algoliaなどの専用検索プラグインを入れることで、バリエーションごとのインデックスが可能になる。

Algoliaの再インデックスにかかる時間はどのくらいか

商品数が多いほど時間がかかる。数百件程度なら数分で完了するが、数千件を超える場合は10分以上かかることもある。完了後に何度か検索して結果が安定するのを確認する。

特定のバリエーションだけ在庫切れになるたびに検索から消えるのはなぜか

WooCommerceの設定で「在庫切れ商品をカタログから隠す」が有効になっていると、在庫がゼロになったバリエーションは検索インデックスから除外される。在庫切れでも検索に表示したい場合は、この設定を無効にするか、検索プラグイン側で在庫切れの扱いを調整する。

親商品を更新してもバリエーションが同期されないのはなぜか

Algolia連携プラグインによっては、親商品の更新イベントがバリエーションの個別更新まで伝わらないことがある。該当バリエーションを直接開いて保存するか、無効化と有効化の操作を行うことで同期が再開される。

バリエーションの一括修正はできるのか

商品一覧のCSV書き出しと取り込みを使うと、複数のバリエーションに対してSKUや価格、在庫を一括で修正できる。ただしインデックスへの同期までは自動で走らないことがあるため、取り込み後に再インデックスを実行する。

この記事のポイント

  • 特定のバリエーションだけ検索に出ない原因は、公開状態や価格、在庫といったバリエーション単位の設定に集中している
  • 商品編集画面で該当バリエーションを開き、「有効」チェックと価格、在庫を確認する
  • 親商品の更新だけでなく、該当バリエーションを一度無効化して再度有効化すると同期が再開されることがある
  • Algolia連携プラグインではインデックス設定と同期キュー、再構築の状態を確認する
  • それでも直らない場合はSKU重複やpost_statusの不整合を調べる
WooCommerce 10.9でカラースウォッチがコア機能に。商品ページの視覚表現が大幅に向上

WooCommerce 10.9でカラースウォッチがコア機能に。商品ページの視覚表現が大幅に向上

WooCommerce 10.9で商品属性に新しいタイプ「Color / Image」が追加された。これまではテキストリンクやセレクトボックスでしか選べなかった色や柄のバリエーションを、フロントエンド上で視覚的なスウォッチ(小さな色見本)として表示できるようになる。

この機能はブロックテーマ利用時の実験的機能として提供され、商品フィルターブロックや「カートに追加+オプション」ブロック内のバリエーションセレクターに自動適用される。WooCommerce Developer Blogの記事によると、6月8日予定のベータ版から利用可能だ。

本記事では、この新機能の概要、具体的な設定手順、技術的な内部構造、そして他のブロックとの共有APIの仕組みを詳しく解説する。WooCommerceストアを運営する担当者や、ECサイトのデザインを改善したい制作者に役立つ情報だ。

カラースウォッチ機能の概要

カラースウォッチ機能の概要
従来のバリエーション表示(Before)
色を「カラー レッド」のようなテキストチップで表示
カラー レッド カラー ブルー カラー グリーン
WooCommerce 10.9の新しいスウォッチ表示(After)
実際の色を円形のスウォッチで視覚的に表現
← クリックで選択

上の比較で分かるように、テキストだけでは実際の色味が伝わらず、購入者は商品画像だけを頼りに判断するしかなかった。今回の変更で、Chipsブロック(チップス)やListブロック(リスト)での表示が直感的になる。

対応するブロックと表示パターン

カラースウォッチが適用されるのは、以下の2つのブロック内でColor / Image属性がレンダリングされる場面だ。

  • 商品フィルター内の「属性で絞り込む」ブロック(Filter by Attribute)
  • 「カートに追加+オプション」ブロック内のバリエーションセレクター(Variation Selector)

Chipsスタイルでは、各スウォッチがHEXカラーコードまたは画像を使った円形で表示される。管理画面で設定した色や画像がそのままフロントエンドに反映される仕組みだ。Listスタイルでは、属性名の隣に小さなスウォッチが並ぶ。これにより、フィルター画面でも色の判別が容易になる。

Chipsスタイル(チップス)でのスウォッチ表示例
※ 選択中のスウォッチは枠線が強調表示される
Listスタイル(リスト)でのスウォッチ表示例
レッド(12)
ブラック(8)
ゴールド(5)
※ 各属性名の左に小さな色見本が付与される

色だけでなく画像スウォッチにも対応

今回の機能は単なるカラーピッカーにとどまらない。属性タイプ名が「Color / Image」であることからも分かるとおり、メディアライブラリから画像を選択することも可能だ。チェック柄やヒョウ柄、グラデーションパターンなど、HEXコードでは表現しきれない複雑なデザインもスウォッチ化できる。

この画像スウォッチ機能は、ファッションECやインテリアECで特に効果を発揮する。テキストだけでは「ダマスク柄」「ストライプ」といった情報が伝わりにくいが、小さなサムネイル画像があれば購入者は直感的に商品の外観を把握できる。

設定手順と利用条件

設定手順と利用条件

カラースウォッチ機能はブロックテーマでのみ利用可能な実験的機能として提供される。有効化の手順は以下の3ステップだ。

STEP 1 WooCommerce管理画面で「設定 → 高度な設定 → 機能」へ移動
STEP 2 「属性のカラースウォッチ」オプションをトグルで有効化
STEP 3 「商品 → 属性」で新規または既存の属性を「Color / Image」タイプに設定

特徴的なのは、この機能が完全にオプトイン方式である点だ。既存の属性をColor / Imageタイプに更新しない限り、ストアフロントにスウォッチは一切表示されない。既存のテキスト表示を維持したい商品がある場合も、属性タイプを変更しなければ従来通りの挙動を保てる。

属性タイプの内部的な識別子

属性のタイプを設定すると、各属性ターム(付与する値)の編集画面にカラーピッカーと画像選択の入力欄が追加される。内部的には、この属性タイプは「wc-visual」というスラッグで識別される。

スラッグの先頭に「wc-」というプレフィックスが付与されているのは、既存のプラグインが独自に登録している可能性のあるカスタム属性タイプとの名前衝突を防ぐためだ。すでに何らかのカラースウォッチ系プラグインを導入しているストアでも、コア機能とプラグイン機能が競合することなく共存できる設計になっている。

ブロックテーマが必須条件

現時点では、クラシックテーマではこの機能は動作しない。あくまでブロックテーマ(Site Editing対応テーマ)に限定された実験的機能だ。クラシックテーマ利用者向けには、引き続きサードパーティ製のカラースウォッチプラグインが代替手段となる。

正式リリースまでの間にクラシックテーマ対応が追加されるかは明言されていないが、WooCommerceのブロック化推進の流れを踏まえると、今後もブロックテーマを前提とした機能拡充が続くと見ておくのが妥当だろう。

共有インナーブロックによるブロック間の連携強化

共有インナーブロックによるブロック間の連携強化

カラースウォッチ機能と並行して、WooCommerceチームはブロック間のインナーブロック共有APIにも手を入れた。具体的には、「商品フィルター」ブロックと「カートに追加+オプション バリエーションセレクター」ブロックが同じインナーブロックを再利用できるようになっている。

共有インナーブロックの構造イメージ
商品フィルター Filter by Attribute ブロック Chips (共有インナーブロック)
カートに追加+オプション Variation Selector ブロック Chips (同じインナーブロック)
※ 両ブロックが同一のChipsブロックを内部で利用する

これまでは、商品フィルター用のChipsブロックとバリエーションセレクター用のUIが別々に実装されていた。今回の変更で、片方のブロックに加えられた改善がもう片方にも自動的に反映されるようになる。開発者視点では、メンテナンス対象のコードが減り、一貫性のあるUIを提供しやすくなるメリットがある。

また、後方互換性にも配慮されている。Variable Product(バリエーション商品)テンプレートパーツをカスタマイズしているストアでも、フロントエンド表示時やエディターで開いた際には、自動的に新しいインナーブロックが適用される仕組みだ。既存のカスタマイズが壊れる心配はない。

今後のロードマップとテスト参加方法

今後のロードマップとテスト参加方法

WooCommerce Developer Blogの記事によると、カラースウォッチ機能は6月8日予定のWooCommerce 10.9ベータ版からブロックテーマ上のフィーチャーフラグ(機能フラグ)として提供される。すでにGitHub上のナイトリービルドでもテスト可能だ。

正式版リリースに向けた注意点

現時点では実験的機能という位置付けであるため、本番環境への適用は避け、まずはステージングサイトでテストすることをWooCommerceチームは推奨している。テスト中に発見した不具合や改善要望は、GitHubのWooCommerceリポジトリのIssueトラッカーで報告できる。

実験的機能がいつ正式機能に格上げされるかは明言されていないが、WooCommerceのリリースサイクルを踏まえると、大きな問題が報告されなければ2〜3バージョン以内に正式対応となる可能性が高い。

プラグイン開発者への影響

「wc-visual」という標準化された属性タイプが追加されたことで、サードパーティ製プラグインやテーマ開発者にも恩恵がある。視覚的属性を識別するための統一的なパターンができたため、複数のプラグイン間での相互運用性や拡張性が高まる。

たとえば、商品エクスポートプラグインがスウォッチ情報をCSVに含めたり、カスタムテーマがスウォッチのスタイルを独自に調整したりする際に、「wc-visual」というスラッグを基準に処理を分岐できるようになる。

この記事のポイント

  • WooCommerce 10.9で商品属性に「Color / Image」タイプが新設され、フロントエンドで視覚的なスウォッチ表示が可能になる
  • 商品フィルターとバリエーションセレクターの両方で、ChipsブロックとListブロックに自動適用される
  • HEXカラーだけでなくメディアライブラリの画像もスウォッチとして使用できる
  • ブロックテーマ限定の実験的機能であり、設定画面のトグルで明示的に有効化するオプトイン方式
  • 共有インナーブロックAPIの改善により、複数ブロック間で一貫性のあるUIとメンテナンス効率の向上が図られている