目的
- 「Hide Collection」を導入してみて、考慮しないといけ部分が多かったので忘れないように記述
前提条件
- 同じ商品でも、得意先によって違う料金で提供したい
- 会員登録を通さずに表示を切替えたい
- パスワード入力を省略したい
「Hide Collection」とは?(ざっくりとできることを説明)
- 特定のコレクションを非表示(実際にはアクセス権限をなくす)になり、発行したURLを知っている人しかページを参照できないようにする
- パスワードが必要ない
発生した現象
- Hide Collectionに登録した商品が検索に表示される
- デモで現象を確認できます
- hidden-collectionのページへ遷移
- 「サンプルストアを表示する」というボタンがあるので、そこからサンプルストアページへ遷移
- 「View Secret Collection」ボタンを押下後、登録されている商品を確認(先頭に「Hidden」と記載)
- トップページへ戻り、検索から「Hidden」と検索するとシークレットページの商品が表示される
- 料金の違う商品があるのがバレる!
- デモで現象を確認できます
- Collection一覧に表示される
- シークレット対象のCollectionを押下してもアクセスはできないが、そういうページがあるというのがバレる!
対応
1. 「Metafields Guru」というアプリを導入してサイト内検索ヒットさせる
手順2. 「Products & Variants」を押下
手順3. 対象の商品を押下
手順4. 「Create metafield」ボタンを押下し、設定後保存。
以下を入力。
項目 | 値 |
---|---|
key | hidden |
namespace | seo |
value_type | integer |
value | 1 |
手順4. 完。👍
2. URLの独自ルール(キーワード)を設定し、それに該当する場合は、非表示にする
私の場合はURLに「hidden」を含んでいると非表示になるように設定しました。
ルールとしては先頭に「hidden」をつけるようにしました。
{% unless collection.handle contains 'hidden' %}
{% include 'collection-list-item' %}
{% endunless %}
所感
条件を満たすのが「Hide Collection」ぐらいしかなかったのですが、使い勝手悪いです😅