shopify-liquid について
Liquid で Shopify のストアテーマやアプリを開発するためのリファレンススキルです。テンプレート構文、アプリブロック、Shopify オブジェクト、フィルター、JavaScript へのデータ受け渡しを扱います。
主な機能
- 01Liquid の出力、タグ、フィルター
- 02テーマアプリブロックと schema 設定
- 03一般的な Shopify オブジェクト
- 04金額、アセット URL、JSON のフィルター
- 05JavaScript での Liquid データ利用
- 06アプリプロキシ経由の Liquid 応答
活用シーン
- 01動的な Shopify ストアテンプレートの構築
- 02テーマへの設定可能なアプリブロック追加
- 03商品とカートのデータを JavaScript に渡す
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ toilahuongg/ google-antigravity-kit --skill shopify-liquidインストール後、Claude Code で/shopify-liquidを入力して読み込まれたか確認します。
詳細
Shopify Liquid スキル
Liquid は、ストアフロントで動的コンテンツを読み込むために Shopify が使用するテンプレート言語です。
1. 基本構文
- 出力:
{{ ... }}- コンテンツをページに表示します。 - タグ:
{% ... %}- ロジック(if、for、assign)を記述します。 - フィルター:
{{ value | filter }}- 出力を変更します。
2. Theme App Extensions(App Blocks)
最新のアプリでは、テーマの既存コードを直接編集する代わりに、App Blocks を使ってテーマにコードを挿入します。
schema タグ
Theme Editor で使用できる設定を定義します。
{% schema %}
{
"name": "Star Rating",
"target": "section",
"settings": [
{
"type": "color",
"id": "star_color",
"label": "Star Color",
"default": "#ff0000"
}
]
}
{% endschema %}
設定へのアクセス
block.settings.id を使って、schema で定義した値にアクセスします。
<div style="color: {{ block.settings.star_color }}">
★★★★★
</div>
App Embed Blocks
グローバルに実行されるスクリプトです(例:分析機能、チャットバブル)。
{% schema %}
{
"name": "Chat Bubble",
"target": "body",
"javascript": "chat.js",
"settings": []
}
{% endschema %}
3. よく使うオブジェクト
product:{{ product.title }}{{ product.variants.first.id }}{{ product.featured_image | image_url: width: 400 }}
cart:{{ cart.item_count }}{{ cart.currency.iso_code }}
customer:{% if customer %}でログイン状態を確認します。
shop:{{ shop.name }}{{ shop.permanent_domain }}
4. 便利なフィルター
- 金額:
{{ product.price | money }}->$10.00 - アセット URL:
{{ 'style.css' | asset_url }}(assets/フォルダー内のアセットを参照します) - JSON:
{{ product | json }}(JavaScript にデータを渡すときに便利です)
5. JavaScript での使用
データ属性またはグローバル変数を使って、Liquid のデータを JavaScript に渡します。
パターン:データ属性(推奨)
<div id="my-app" data-product-id="{{ product.id }}" data-shop="{{ shop.permanent_domain }}"></div>
<script>
const app = document.getElementById('my-app');
const productId = app.dataset.productId;
</script>
パターン:グローバルオブジェクト(従来方式)
<script>
window.ShopifyData = {
product: {{ product | json }},
cart: {{ cart | json }}
};
</script>
6. App Proxies
App Proxy 経由のリクエストの場合、liquid はレスポンスをレイアウトに送信する前にレンダリングします。
Content-Type: application/liquidを返すと、Shopify がレスポンス内の Liquid を解析します。
コメント
Markdown 対応