SOY Shopで商品に複数のカテゴリを設定したいという質問が時々あります。
今回はその時に返答している内容を記載します。
SOY Shopでは一つの商品に複数のカテゴリを選択することは出来ません。
以前、複数のカテゴリを選択できる仕様がありましたが、
標準機能で複数カテゴリを設定できるようにしているとパフォーマンスが激落ちするので廃止しました。
代わりにカスタムサーチフィールドというプラグインでの実装を勧めています。
※以前はカスタムフィールドでしたが、カスタムサーチフィールドの方が検索性が高くて便利です。
カスタムサーチフィールドについては下記の記事を参考にしていただいた上で、
カスタムサーチフィールドでの実装方法を説明します。
カスタムサーチフィールドをインストールし、
カスタムサーチフィールドの設定画面で項目種別をチェックボックスにして追加します。
※IDとラベルは何でも良いです。
※今回はカテゴリと分けるため、タグという表記にしています
追加できたら、
詳細設定で上記の様に選択項目を追加します。
追加できたら商品の詳細画面を開くと、
チェックボックス形式で項目が追加されています。
続いて、商品一覧ページですが、
カスタムサーチフィールド用のページを追加します。
ページURLをitem/tagsにしたので、
ショップIDがshopの場合、
ページのURLはhttp://example.com/shop/item/tags/になります。
ページが追加できたら、
作成したページの詳細画面を開き、商品一覧ページ設定を開きます。
そこで、
モジュール名の選択で、
CustomSearchFieldItemListを選択し更新をすれば終了です。
カスタムサーチフィールド用の実際の商品一覧のURLですが、
今回はフィールドIDをcustom_tagsにしています。
カテゴリAの商品一覧ページを開く場合のURLは
http://example.com/shop/item/tags/custom_tags/カテゴリA
という様に、
http://ドメイン/ショップID/ページのURL/フィールドID/カスタムサーチフィールドの値
になります。
カスタムサーチフィールドで複数カテゴリの様な運営を行う上で一つ欠点があります。
それは、管理画面の商品一覧の検索機能でカスタムサーチフィールドでの検索が出来ないこと。
これを解消するために、
各フィールド毎に一括設定ページがあり、
一括設定ページで最低限の商品検索フォームを用意しています。
ちなみに今回説明した機能はすでにいくつかのサイトで導入されています。
今回対応分を含んだパッケージは下記のサイトからダウンロード出来ます。
https://saitodev.co/soycms/soyshop/
関連記事
カスタムサーチフィールドのチェックボックスで商品詳細ページで選択した項目を表示したい