【Shopify】liquidのオブジェクトについてまとめてみた (transaction~variantまで)

# はじめに
今回は、Liquidのオブジェクトについて一つ一つまとめていきます。

`transaction`から`variant`までをまとめていきます。

それでは、頑張っていきましょう。

# The transaction object
トランザクションオブジェクトには、次の属性があります。

## transaction.amount
トランザクションの金額を返します。この金額は、顧客の現地通貨でのものです。金額を金額形式で返すには、マネーフィルターのいずれかを使用します。

## transaction.created_at
トランザクションが作成されたときのタイムスタンプを返します。日付フィルターを使用してタイムスタンプをフォーマットします。

## transaction.gateway
トランザクションに使用された支払いプロバイダーの名前を返します。

```input.liquid
{{ transactionl.gateway }}
```

>Cash on Delivery (COD)

## transaction.id
トランザクションの一意の数値識別子を返します。

## transaction.kind
トランザクションの種類を返します。トランザクションの種類は以下です。

+ `authorization`とは、顧客が支払うことを同意したお金を予約することです
+ `capture`とは、承認の段階で予約されたお金の転送です
+ `sale`とは、一つのステップで実行される承認とキャプチャの組み合わせです
+ `void`とは保留中の承認またはキャプチャのキャンセルです。
+ `refund`とは獲得したお金の一部または全額を顧客に返金します。

##transaction.name
トランザクションの名前を返します

```input.liquid
{{ transaction.name }}
```

>c251556901.1


## transaction.payment_details
payment_detailsオブジェクトには、トランザクションで使用sれる支払い方法に関連する追加のプロパティが含まれています。

### credit_card_company
顧客のクレジットカードを発行した会社の名前を返します。

```.liquid
{{ transaction.payment_details.credit_card_company }}
```

>Visa

### credit_card_number
顧客のクレジットカード番号を返します。

最後の４桁を除く全てが隠されます。

```.liquid
{{ transaction.payment_details.credit_card_number }}
```


>•••• •••• •••• 1234

## gift_card
トランザクションで使用された場合、ギフトカードのドロップを返します



```.liquid
{{ transaction.payment_details.gift_card.last_four_characters }}
```

>1234

## transaction.receipt
支払い領収書に関する支払いプロバイダーからの情報を含むテキストを返します。これには、支払いがテストケースであったかどうかと、トランザクションに含まれている場合は認証コードが含まれます。

## transaction.status
トランザクションのステータスを返します。

## transaction.status_label
トランザクションのステータスの変換された出力を返します。

```.liquid
English: {{ transaction.status }}
French: {{ transaction.status_label }}
```

>English: Success
French: Réussite


# The unit_price_measurement object

>unit pricesは、ドイツまたはフランスにある店舗でのみご利用いただけます。

`unit_price_measurement`オブジェクトは、製品バリアントの単位がどのように測定されるかについての情報を含みます。これは、単価で計算するために`unit_price`属性によって使用されます。

`unit_price_measurement`オブジェクトには、次のプロパティがあります。

|Property  |Type  |Description  |
|---|---|---|
|`measured_type`  |string  |測定のタイプ。たとえば、`valumeなど。  |
|`quantity_unit`  |string  |`quantity_value`の測定に使用される測定単位。たとえば、1など。  |
|`quantity_value`  |float  |含まれているユニットの数量。例えば、2.5など。  |
|`reference_unit`  |string  |`reference_value`の量を測定するために使用される単位。例えば、ml。  |
|`reference_value`  |integer  |基本単価を説明するために使用される参照値。たとえば、100など。  |

# The variant object
バリアントオブジェクトには、次の属性があります。

## variant.available
`variant` が購入可能な場合は`true`、そうでない場合は`false`を返します。

`variant` が購入可能であるためには、 `variant.inventory_quantity` がゼロよりも大きいか、 `variant.inventory_policy` が継続するように設定されていなければなりません。

`variant.inventory_management` が設定されていない `variant` も利用可能とみなされます。

## variant.barcode
バリアントのバーコードを返します。

##variant.compare_at_price
バリアントの比較を価格で返します。金額フィルターを使用して、金額形式で値を返します。

## variant.featured_media
バリアントに添付されている最初のメディアアイテムを返します。

##varitant.id
バリアントの一意のIDを返します。

## variant.image
バリアントに関連付けられている画像オブジェクトを返します。

```.liquid
{{ variant.image.src }}
```

>/products/red-shirt.jpeg

## variant.incoming
バリアントに受信在庫がある場合はtrueを返します。

## variant.inventory_management
バリアントの在庫追跡サービスを返します。

## variant.inventory_policy
管理画面のバリアントオプションで、「ユーザーにこのアイテムの購入を許可する」チェックボックスがチェックされている場合に、文字列`continue`を返します。

チェックが入っていない場合は`deny`を返します。

## variant.inventory_quantity
バリアントの在庫数量を返します。

## variant.next_incoming_date
次の入荷在庫が到着する日付を返します。

## variant.options
バリアントの製品オプション値の配列を返します。

```.liquid
{% for option in variant.options %}
  - {{ option }}
{% endfor %}
```

アウトプットは以下になります。

```output.html
  - Red
  - Small
  - Wool
```


## variant.option1
バリアントの最初の製品オプションの値を返します。

## variant.option2
バリアントの２番目の製品のオプションの値を返します。

## variant.option3
バリアントの３番目のオプションの値を返します。

## variant.requires_shipping
バリアントの出荷が要求するように設定されている場合は`true`を返します。

## variant.requires_selling_plan
カートに追加されたときにバリアントが`selling_plan`を要求するように設定されている場合に、`true`を返します。

##variant.selected
バリアントが現在選択されている場合はtrueを返します。選択されたバリアントは、URLパラメータバリアントに基づいています。

## variant.selected_selling_plan_allocation
URLパラメータ`selling_plan`に基づいた`selling_plan_allocation`オブジェクトを返します。

例えば、URLパラメーターに`variant=12345&selling_plan=8765`を指定すると、`valiant`が`12345`、`selling_plan`が`8765`の値が返されます。

選択された`selling plan allocation`の割当がない場合、このプロパティはnilを返します。

## valiant.selling_plan_allocations
バリアントで使用可能な`selling_plan_allocation`オブジェクトの配列。

## valiant.sku
バリアントのSKUを返します。

## variant.store_availabilities
StoreAvailabilityオブジェクトのリストを返します。

## variant.taxable
バリアントに税金が請求される場合はtrueを返し、そうでない場合はfalseを返します。

## variant.title
すべてのバリアントの製品オプション値を、/で連結して返します。

```input.liquid
<!-- If variant's option1, option2, and option3 are "Red", "Small", "Wool", respectively -->
{{ variant.title }}
```
>Red / Small / Wool

## variant.unit_price

>Unitは、ドイツまたはフランスにある店舗でのみご利用いただけます。

製品バリアントのUnitを返します。価格は、広告申し込み情報に適用される割引を反映しています。

## variant.unit_price_measurement
製品バリアントのunit_price_measurementオブジェクトを返します。

## variant.url
1つの製品バリアントのみに固有のURLを返します。バリアントIDは一意の識別子として使用されます。

```input.liquid
{{ variant.url }}
```

>/products/t-shirt?variant=12345678

## variant.weight
バリアントの重量をグラムで返します。 `weight_with_unit`フィルターを使用して、ストアの重量形式またはバリアントで構成された重量単位に変換します。

## variant.weight_unit
バリアントで構成されたウェイトの単位を返します。 weight_in_unit属性およびweight_with_unitフィルターと組み合わせて使用​​するとうまく機能します。

## variant.weight_in_unit
variant で設定した単位に換算した製品の重量を返します。weight_unit 属性や weight_with_unit フィルタと組み合わせるとうまく動作します。

#終わりに
今回の記事はここまでで終わりです。

お疲れさまでした。

# Shopify アプリのご紹介

Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。

https://coming-soon.reterior.jp/

https://apps.shopify.com/shopify-application-314?locale=ja&surface_detail=%E3%83%AA%E3%83%86%E3%83%AA%E3%82%A2&surface_inter_position=1&surface_intra_position=1&surface_type=search