mcpField
S
shopify-liquid

shopify-liquid

github.com/toilahuongg开发50 次安装
代码仓库

关于 shopify-liquid

面向使用 Liquid 开发 Shopify 店铺主题和应用的参考技能,涵盖模板语法、应用区块、Shopify 对象、过滤器,以及向 JavaScript 传递 Liquid 数据。

主要功能

  1. 01Liquid 输出、标签与过滤器
  2. 02主题应用区块和 schema 设置
  3. 03常用 Shopify 对象
  4. 04金额、资源 URL 和 JSON 过滤器
  5. 05在 JavaScript 中使用 Liquid 数据
  6. 06通过应用代理返回 Liquid 响应

适用场景

  1. 01构建动态 Shopify 店铺模板
  2. 02向主题添加可配置的应用区块
  3. 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. 主题应用扩展(应用区块)

现代应用使用应用区块向主题注入代码,避免直接修改旧版代码。

schema 标签

定义主题编辑器中可用的设置。

{% 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>
应用嵌入区块

全局运行的脚本(例如,分析工具、聊天气泡)。

{% 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 }}(适用于向 JS 传递数据)

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. 应用代理

请求来自应用代理时,Liquid 会先渲染响应,然后再将其发送到布局。

  • 如果返回 Content-Type: application/liquid,Shopify 将解析响应中的 Liquid。

评论

支持 Markdown