案例作品集 浏览精选项目

WESWOO 提供 Shopify Plus 项目开发费抵扣,至多 US$4,800

开发知识库 / 商品详情与组合购买

商品详情与组合购买

先同步型号与变体事实,再处理媒体、配件和规格信息。

规格 TAB、包装与政策入口

把规格、包装、兼容和政策放进有序分区,默认使用可键盘展开的原生内容。若增强为 TAB,所有正文仍在服务器 HTML 中,并保持同一字段和政策版本。

数据与依赖

  • 规格行依赖 ww-specifications。
  • custom.compatibility:单行文本;政策引用现行页面。

交互逻辑

  • 缺失内容不生成空承诺。
  • 展开后保留标题和可点击出处。
示例代码 · snippets/ww-product-details.liquid
Liquid · WESWOO
<details>
  <summary>Specifications and compatibility</summary>
  {% render 'ww-specifications', product: product %}
  {% assign compatibility = product.metafields.custom.compatibility.value %}
  {% if compatibility != blank %}<p>{{ compatibility | escape }}</p>{% endif %}
</details>
<details>
  <summary>Shipping and returns</summary>
  {% if shop.shipping_policy != blank %}<a href="{{ shop.shipping_policy.url | escape }}">Shipping policy</a>{% endif %}
  {% if shop.refund_policy != blank %}<a href="{{ shop.refund_policy.url | escape }}">Returns policy</a>{% endif %}
</details>

示例代码 · snippets/ww-specifications.liquid
Liquid · WESWOO
{% assign rows = product.metafields.custom.specification_rows.value %}
{% if rows != blank %}
  <table>
    <caption>{{ product.title | escape }} — specifications</caption>
    <tbody>
      {% for row in rows %}
        {% if row.label.value != blank and row.spec_value.value != blank %}
          <tr>
            <th scope="row">{{ row.label.value | escape }}</th>
            <td>{{ row.spec_value.value | escape }} {{ row.unit.value | escape }}</td>
          </tr>
        {% endif %}
      {% endfor %}
    </tbody>
  </table>
{% endif %}

验收检查

  • 关掉脚本仍能读规格与政策。
  • 核手机表格、长参数及实际条款目标。

展示政策入口不代表已适配所有市场;地区例外由政策模块继续判断。

先理解,再整合,最后验证

  1. 选择模块,确认数据和输入输出。
  2. 将片段接入当前主题或框架。
  3. 用真实变体、市场和失败恢复场景验收。

示例按 Shopify Online Store 2.0 主题编写;Headless 使用单独的数据与版本边界。代码片段需接实际字段、主题和语言文件。

架构参考

示例由 WESWOO 编写,结合 Shopify 官方文档和固定版本的仓库参考。采用仓库代码时应保留适用许可。

Shopify/dawn · 许可commit 3e9ee2281dc4 · Shopify 集成主题的限定许可;参考架构,不复制仓库实现。
Shopify/hydrogen · 许可commit 9e358a2462ba · MIT;采用实质代码时保留版权与许可。

依据核对 2026-11-12