Shopifyのコレクション機能に関して

## 概要
商品を特定の条件や任意でグルーピングして、コレクションというまとまりで管理できるようになるShopify標準の機能です。
コレクションには、Smart Collection(自動コレクション)とCustom Collection(手動のコレクション)の2種類があります。
Smart Collectionとは、商品名や商品につけたタグ、価格など様々な条件を一つ以上指定して、条件に該当する商品を自動で集めて作成するコレクションです。
Custome Collectionは、管理画面上で任意の商品を自由に選択して作ったコレクションのことです。
同じコレクションをわざわざ2種類の名前にわけなくても、ただ2通りの作成方法があるとしても良さそうですが、担当するAPIがそれぞれ独立して存在するので、分けて把握しておいた方が良さそうです。
Smart Collectionに任意の商品を追加することはできず、Custom Collectionに条件を設定することはできません。
管理画面上で確認したところ、コレクションを作成する際に「自動」か「手動」か選ぶ欄があり、一度作成するとそれを変更することはできなさそうです。

>作成するコレクションの例を次にいくつか示します。
男性用、女性用、子供用の服
照明、クッション、敷物などの特定の種類のアイテム
セール中のアイテム
特定のサイズまたは色のアイテム
ホリデーカードやデコレーションなどの季節商品
[コレクション](https://help.shopify.com/ja/manual/products/collections)

## カテゴリとメニュー機能
上記例以外にも、「トップス」や「ソファー」などのカテゴリを作るのにもShopifyではコレクション機能を使います。
Shopifyにはいわゆる「カテゴリ」を作るための独立した機能がありません。
具体的には、例えば商品に「トップス」や「ソファー」などのタグをつけるか商品タイプを設定しておいて、Smart Collectionの条件としてそれらを指定し、各カテゴリのまとまりを作ります。
このようにして作ったカテゴリを、例えば「トップス」-「Tシャツ」、「ソファー」-「革製」など親子関係を持ったまとまりとするには、Shopifyの「メニュー」機能を使います。具体的には、管理画面上のオンラインストア→メニュー→メニューを追加するで、リンクを作成し、ドラッグ&ドロップでそのリンクを並び替えて親子関係を作っていきます。
階層は親>子>孫の3階層まで作ることができ、有料アプリを使うとその階層を増やすこともできます。
メニューを表示するためには、テーマエディタでメニューを選ぶ箇所でそのメニューを選択するか、もしくはLiquidファイル内で```linklists```オブジェクトを介してアクセスします。

## collectionsオブジェクト
どのLiquidファイルからでもアクセスできる```Global Objects```のひとつに、```collections```オブジェクトがあります。
```collections```オブジェクトには配列型式ですべてのコレクションに対応する```collection```オブジェクトが格納されています。
Liquidの```for```タグを使って```collections```オブジェクトからすべての```collection```オブジェクトを取り出すことができます。
また、Liquidの```where```フィルターを使って、どのLiquidファイルからでも特定の```collection```を抜き出すことができます([[Shopify]どのページからでも特定のコレクションを抜き出す](https://qiita.com/momonoki1990/items/bfb4778121b6d342d4ef))

## collectionオブジェクト
```collection```オブジェクトは特定のコレクションに関する情報を保持しています。例えば、コレクションのタイトルやhandleには```collection.title``` ```collection.handle```などでアクセスすることができます。
```handle```は一意の管理記号で、管理画面上のコレクションの作成・編集画面の一番下に、「ウェブサイトのSEOを編集する」という項目があり、そこで設定・変更することができます。```handle```はコレクションのURLの末尾になります。
```handle```は管理者が任意のものを設定することができますが、```collection.id```は作成時に自動で番号が割り振られます。```id```は管理画面上のコレクション編集画面のURLの末尾となり、そちらで確認することができます。APIを叩いて特定のコレクションの情報を取得するときはこの```id```を使用します。

## その他
Smart Collectionを作る際に標準以外の条件を追加したり、ベストセラーを任意の期間で作成できるようになるなど、コレクションに関する様々な有料アプリがあります。
ちなみにですが、Shopify標準の「並び替え：ベストセラー」は、ショップ開設以降の累積の販売実績を基準にしているようです([best selling is just a stack ranking of product sales over the life of the store.](https://jadepuma.com/blogs/blog/what-is-the-shopify-best-selling-sort-order-algorithm))

## 参考
コレクション
https://help.shopify.com/ja/manual/products/collections
自動コレクション
https://help.shopify.com/ja/manual/products/collections/automated-collections
手動のコレクション
https://help.shopify.com/ja/manual/products/collections/manual-shopify-collection
Product APIs
https://shopify.dev/docs/admin-api/rest/reference/products
メニューについて理解する
https://help.shopify.com/ja/manual/online-store/os/menus-and-links/understanding-navigation
The linklist object
https://shopify.dev/docs/themes/liquid/reference/objects/linklist
Global objects
https://shopify.dev/docs/themes/liquid/reference/objects#collections
The collection object
https://shopify.dev/docs/themes/liquid/reference/objects/collection
The Shopify Cheat Sheet
https://www.shopify.com/partners/shopify-cheat-sheet