案例作品集 浏览精选项目

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

开发知识库 / 系列选型与比较

系列选型与比较

先定真实差异属性,再实现筛选、结果与型号比较。

真实属性筛选与空结果

用 collection.filters 的实际选项、参数名和结果数生成表单,保持已选状态。先让提交与清除可靠,再增强为手机抽屉。

数据与依赖

  • 真实配置的 list/boolean 筛选。
  • 价格区间需要单独使用对应 min/max 字段。

交互逻辑

  • 无结果且未选中的值禁用。
  • 已选的零结果值仍可取消,排序值保留。
示例代码 · snippets/ww-filters.liquid
Liquid · WESWOO
<form action="{{ collection.url }}" method="get">
  {% for filter in collection.filters %}
    {% if filter.type == 'list' or filter.type == 'boolean' %}
      <fieldset>
        <legend>{{ filter.label | escape }}</legend>
        {% for value in filter.values %}
          <label>
            <input type="checkbox" name="{{ value.param_name }}" value="{{ value.value | escape }}"
              {% if value.active %}checked{% endif %}
              {% if value.count == 0 and value.active == false %}disabled{% endif %}>
            {{ value.label | escape }} ({{ value.count }})
          </label>
        {% endfor %}
      </fieldset>
    {% endif %}
  {% endfor %}
  <input type="hidden" name="sort_by" value="{{ collection.sort_by | default: collection.default_sort_by }}">
  <button type="submit">Apply filters</button>
  <a href="{{ collection.url | escape }}">Clear all filters</a>
</form>
<p>{{ collection.products_count }} products</p>

验收检查

  • 核有结果、无结果、组合与重置。
  • 刷新后核参数、选择与结果一致。

片段不处理价格区间;分面 URL 的抓取策略另行确认,不能只靠前端隐藏参数。

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

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

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

架构参考

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

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

依据核对 2026-11-12