LoginSignup
17
13

More than 1 year has passed since last update.

【Shopify】liquidのオブジェクトについてまとめてみた (fulfillment, gift_card, handle)

Last updated at Posted at 2021-02-15

はじめに

この記事は、Liquid オブジェクトについて日本語訳したものです。

fulfillment, gift_card, handleオブジェクトをまとめていきます。

fulfillment オブジェクト

フルフィルメントとは、注文から発送前の業務全般のことです。

fulfillmentオブジェクトでは、そのフルフィルメントに関連する値にアクセスすることができます。

公式ドキュメントを参考にしています。

fulfillment.fulfillment_line_items

fulfillment.fulfillment_line_itemsは、すべてのラインアイテムとそのアイテムの数量を配列で返します。
すでに履行されている、あるいはまだ履行されていないラインアイテムは配列に含まれません。

line_itemはショッピングカート内の一行を表します。カート内の商品の種類ごとに1つのラインアイテムがあります。

Input
We have fulfilled the following items:
<ul>
{% for line in fulfillment.fulfillment_line_items %}
  <li>{{ line.line_item.title }} x {{ line.quantity }}</li>
{% endfor %}
</ul>
Output
We have fulfilled the following items:
* T-shirt - White / Medium x 8
* Adorable boots x 1

fulfillment.tracking_company

fulfillment.tracking_companyは、フルフィルメントサービスの名前を返します。

Input
Tracking Company: {{ fulfillment.tracking_company }}
Output
Tracking Company: Yamato

fulfillment.tracking_number

fulfillment.tracking_numberは、フルフィルメントの追跡番号が存在する場合、その番号を返します。

Input
Tracking Number: {{ fulfillment.tracking_number }}
Output
Tracking Number: 1Z5F44813600X02768

fulfillment.tracking_url

fulfillment.tracking_urlは、追跡番号のURLを返します。

Input
{{ fulfillment.tracking_url }}
Output
http://wwwapps.ups.com/etracking/tracking.cgi?InquiryNumber1=1Z5F44813600X02768&TypeOfInquiryNumber=T&AcceptUPSLicenseAgreement=yes&submit=Track

gift_card オブジェクト

gift_cardオブジェクトは、Shopifyのギフトカードに関する情報が格納されたオブジェクトです。

gift_cardオブジェクトは、以下のテンプレートでアクセスできます。

  • 「設定 > 通知 > ギフトカードの作成」により作成された電子メール通知テンプレート
  • gift_card.liquidテンプレートファイル内

gift_card変数がもつ属性についてまとめていきます。

gift_card.balance

gift_card.balanceは、ギフトカードの残額を返します。

gift_card.code

gift_card.codeは、ギフトカードの利用に使用したコードを返します。

gift_card.currency

gift_card.currencyは、カードが発行された通貨を返します。この通貨が店舗の通貨となります。

gift_card.customer

gift_card.customerは、ギフトカードが割り当てられている顧客のcostomer変数を返します。costomer変数についてはこちら

Input
こんにちは, {{ gift_card.customer.last_name }}さん!
Output
こんにちは、齊藤さん!

gift_card.enabled

gift_card.enabledは、ギフトカードが有効な場合にtrue、無効な場合にfalseを返します。

gift_card.expired

gift_card.expiredは、ギフトカードの有効期限が切れている場合にtrue、切れていない場合にfalseを返します。

gift_card.expires_on

gift_card.expires_onは、ギフトカードの有効期限を返します。

gift_card.initial_value

gift_card.initial_valueは、ギフトカードの初期金額を返します。この金額は、顧客の現地通貨での金額です。

gift_card.last_four_characters

gift_card.last_four_charactersは、ギフトカードの交換に使用したコードの最後の4文字を返します。

gift_card.properties

gift_card.propertiesは、ギフトカードがカートに追加された際に、ギフトカードに割り当てられたラインアイテムのプロパティを返します。

gift_card.product

gift_card.productは、購入したギフトカードに関連する商品を返します。

gift_card.url

gift_card.urlは、ショップのギフトカードのページにリンクしているユニークなURLを返します。
このURLは、gift_card.liquidを通してレンダリングされ、checkout.shopify.comのドメインで表示されます。

handle オブジェクト

handleオブジェクトは、以下のリソースのハンドルを返します。

  • blogs
  • articles
  • collection
  • pages
  • products

検索結果のプレビューの設定項目では、Shopifyの管理画面からリソースのハンドルを表示したり編集したりすることができます。

handleの画像

Webページのターゲッティング

異なるページに異なるコンテンツを表示したい場合に、handleオブジェクトを使用して特定のウェブページをターゲットにすることができます。

例えば、ハンドルがtop-secretのウェブページのみにメッセージを表示するには、次のコードをtheme.liquidテンプレートに追加します。

Input
{% if handle contains 'secret' %}
  <p>シーッ!これはお前と俺たちの問題だ</p>
{% endif %}
Output
<!-- トップシークレットのタイトルと、トップシークレットのハンドルネームが書かれたページに表示される -->
シーッ!これはお前と俺たちの問題だ

独自のハンドルを持たないWebページ

すべてのWebページが独自のハンドルを持っているわけではありません。

index.liquidテンプレートを使用しているストアのホームページは、ハンドルの値を返しません。

Input

{% if handle %}
  <p>あなたは、商品、コレクション、ページ、ブログ、ブログの記事のいずれかを見ています。<p>
{% else %}
  <p>どこか他の場所にいるんでしょうね。楽しんでいるといいね!</p>
{% endif %}
Output
<!-- ストアのホームページでは以下のように表示される -->
どこか他の場所にいるんでしょうね。楽しんでいるといいね!

特殊文字

ハンドルはストアフロントのナビゲーションに使用されるため、そのハンドルには英数字(a-z、0~9)のみを含める必要があります。次の文字は使用できません。

  • アクセント(ウムラウトなど)、その他のダイアクリティカル
  • @, #, $などの記号
  • スペース(空白)

スペースはハイフンに変換され、その他の文字は完全に削除されるか、同等の標準ASCII文字に変換されます。

終わりに

今回の記事はここまでになります。
お疲れ様でした。

Shopify アプリのご紹介

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

17
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
13