今回は「variant」オブジェクトを説明します。
こちら商品情報の出力でよく使うオブジェクトで、商品のバリエーション情報を持った重要度の高いオブジェクトです。

公式リファレンスを基に説明していきます。


variantオブジェクト

variantオブジェクトは商品のバリエーション情報を持ったオブジェクトです。
使用するときのほとんどがproductオブジェクトと併用します。productオブジェクトの説明はこちら

今回の説明では商品オプション「Size:S,M,L」「Color:Black,White」があり、それぞれ「S,Black」「M,Black」「L,Black」「S,White」「M,White」「L,White」といったバリエーションがある商品サンプルをもとに説明します。

次のような書き方で、variant.titleを表示できます。

{% for variant in product.variants %}
<p>{{ variant.title }}</p>
{% endfor %}

上記の例のように、variantオブジェクトを使用するときのほとんどが「priduct.variants」をfor文で回して使用します。

それでここからvariantオブジェクトの説明をしていきます。


variant.available

バリエーションが利用できるかどうかをbool値で返します。
バリエーションの在庫の数が0以下、かつ、「在庫ポリシー」が「shopifyが在庫を追跡する」になっている場合にfalseを返します。


variant.barcode

バリエーションのバーコードを返します。


variant.compare_at_price

バリエーションの「定価」を返します。
表示の際は{{ variant.compare_at_price | money }}と記述したほうがいいです。


variant.id

バリエーションの「id」を返します。
バリエーション管理画面のURLが「https://ドメイン/admin/products/△△/variants/〇〇」の「〇〇」の箇所がidです。


variant.image

バリエーションの登録画像の画像パスを返します。
表示の際は{{ variant.image | img_url }}と記述したほうがいいです。


variant.incoming

バリエーションが「入荷中」だった場合にtrueを返します。
「仕入管理」で該当バリエーションが「保留」だった場合が、入荷中であるという状態です。


variant.inventory_management

バリエーションの「在庫ポリシー」を返します。
「在庫を追跡しない」の場合はnilを返し、「shopifyが在庫を追跡する」の場合は「shopify」を返します。


variant.inventory_policy

バリエーションが「この商品が在庫切れのときでも、お客様が商品を買えるようにする」にチェックが入っていると「continue」を返します。
「この商品が在庫切れのときでも、お客様が商品を買えるようにする」にチェックが入っていない、または、「在庫を追跡しない」の場合は「deny」を返します。


variant.inventory_quantity

バリエーションの「在庫数量」を返します。


variant.next_incoming_date

バリエーションの直近の入荷日時を返します。
「仕入管理」の「Shipment」の日付を返します。

表示する際は{{ variant.next_incoming_date | date:'%Y-%m-%d' }}などのように記述するのがいいです。
例のような場合だと「2018-07-09」といった感じで表示します。
他の表示方法はこちらを参考にしてください。


variant.option1

バリエーションのオプション1の値を返します。


variant.option2

バリエーションのオプション2の値を返します。


variant.option3

バリエーションのオプション3の値を返します。


variant.price

バリエーションの「価格」を返します。
表示の際は{{ variant.price | money }}と記述したほうがいいです。


variant.requires_shipping

バリエーションの「配送が必要な商品です」にチェックが入っている場合にtrueを返します。


variant.selected

バリエーションが選択されているとtureを返します。
「バリエーションが選択されている」とは、ページのURLのパラメータに「variant=【variant ID】」がある状態です。


variant.sku

バリエーションがSKUを返します。


variant.taxable

バリエーションの「商品価格に税を適用する」にチェックが入っている場合にtrueを返します。


variant.title

バリエーションのタイトルを返します。
バリエーションタイトルは「option1 / option2 / option3」となります。
今回の商品サンプルの場合は「S / Black」のように返します。


variant.url

バリエーションのURL返します。
例えば「/products/【商品handle】?variant=【variant ID】」といった感じで返します。


variant.weight

バリエーションの重量を単位g(グラム)の数量で返します。


variant.weight_unit

バリエーションで選択されている単位を返します。


variant.weight_in_unit

バリエーションの重量を選択されている単位の数量で返します。


これからもshopifyのオブジェクトについて書いていきますので、よろしくお願いします〜。