今回は「variant」オブジェクトを説明します。
こちら商品情報の出力でよく使うオブジェクトで、商品のバリエーション情報を持った重要度の高いオブジェクトです。
公式リファレンスを基に説明していきます。
目次
- variantオブジェクト
- variant.available
- variant.barcode
- variant.compare_at_price
- variant.id
- variant.image
- variant.incoming
- variant.inventory_management
- variant.inventory_policy
- variant.inventory_quantity
- variant.next_incoming_date
- variant.option1
- variant.option2
- variant.option3
- variant.price
- variant.requires_shipping
- variant.selected
- variant.sku
- variant.taxable
- variant.title
- variant.url
- variant.weight
- variant.weight_unit
- variant.weight_in_unit
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のオブジェクトについて書いていきますので、よろしくお願いします〜。