一、后台手动排序是前提
在Shopify中更改产品系列的展示顺序,首先要进入后台的产品系列管理页面。点击左侧菜单中的“产品”,再选择“产品系列”,然后打开需要调整的目标系列。在产品系列详情页的“产品”区域,可以看到当前系列包含的所有产品列表。默认情况下,产品可能按照添加时间、标题、价格或库存状态自动排序。要手动调整顺序,需要点击产品列表上方的“排序”下拉菜单,将其从“自动”或“最新”等选项切换为“手动”。
选择“手动”之后,产品列表的每一行左侧会出现拖动手柄图标。直接按住手柄上下拖动,即可改变产品在系列中的先后位置。调整完成后,点击页面底部的“保存”按钮,后台数据就会记录新的顺序。需要说明的是,手动排序只修改了产品系列内部的序号,并不会自动改变主题模板中的输出逻辑。许多店铺使用了自定义模板或第三方主题,模板中可能写死了排序参数,例如强制按照价格从低到高或者按创建时间倒序排列。这时即使后台拖动操作保存成功,前台页面仍然会按照模板规则重新排列,导致“改了没用”的错觉。因此,在完成手动排序后,必须对当前使用的模板文件进行针对性检查,确认没有代码覆盖了手动顺序。
二、模板检查步骤:定位排序逻辑
模板检查的第一步是确定当前产品系列页面使用的是哪个模板文件。在Shopify后台点击“在线商店”下的“主题”,再点击当前主题右侧的“自定义”按钮进入模板编辑器。在编辑器顶部的页面选择器中,切换到对应的产品系列页面,观察左侧显示的模板名称,例如“默认产品系列”或“自定义产品系列”。记录下模板文件名后,关闭编辑器,回到主题管理页面,点击“编辑代码”打开代码编辑器。
在代码编辑器中,打开刚才确认的产品系列模板文件,常见名称有 collection.liquid、collection.json 或自定义的 collection.custom.liquid。产品列表通常由Liquid循环输出,标准写法是 {% for product in collection.products %}。这一句会按照后台产品系列的手动排序依次输出产品,前提是没有在循环内部或之前添加额外的排序参数。需要重点检查循环前是否存在类似 {% assign products = collection.products | sort: 'price' %} 的语句,如果有,它会覆盖手动顺序,强制按价格重新排列。还要检查循环内部的产品卡片代码是否完全依赖循环顺序,没有额外按标题、标签或类型重新排序。
另外,许多现代主题会将产品系列模板拆分为多个区块文件,主模板中只包含一行引用代码,例如 {% section 'collection-template' %} 或 {% render 'product-grid' %}。此时排序逻辑可能不在主模板里,而在对应的section或snippet文件中。需要打开这些关联文件,使用代码编辑器的搜索功能查找 collection.products 或 sort_by 相关代码。如果看到 sort_by 参数被设为固定值,例如 sort_by: 'created-desc',那么前台就会按创建时间倒序显示,手动排序会被完全忽略。此时需要删除或注释掉这段固定排序代码,让循环直接使用 collection.products 的默认顺序。
三、常见模板冲突与修复方向
冲突一:模板中使用了 default 过滤器。类似 {% assign sorted_products = collection.products | sort: collection.default_sort_by %} 的写法,看似跟随后台设置,但如果后台产品系列没有明确设置默认排序,或者默认排序不是“手动”,这个过滤器会退回到自动规则,导致顺序错乱。此时应检查产品系列页面右上角的“排序”设置,确认默认值没有选择“自定义”之外的其他选项,并且模板中没有重复应用排序过滤器。
冲突二:前端脚本重新排列。有些主题为了视觉特效或响应式布局,会在页面加载完成后用JavaScript对产品网格重新排序,例如读取每个产品的 data-price 属性并按价格重新排列DOM结构。这种情况下,即使Liquid输出顺序正确,浏览器最终显示的顺序也会变化。检查方法是在浏览器中查看网页源代码,确认HTML标签中产品节点的顺序是否与后台手动顺序一致。如果源代码正确但页面显示不同,说明存在前端排序脚本,需要在主题的JS文件中查找 sort 或 order 相关函数,并调整为不干扰手动顺序的逻辑。
冲突三:产品系列筛选与分页干扰。如果系列页面启用了标签筛选、价格筛选或类型筛选,筛选器通常会发起AJAX请求重新获取产品数据,并且可能使用默认排序规则。此时手动排序只在未筛选状态下生效,筛选后的产品顺序可能回到自动规则。模板检查需要确认筛选器的AJAX请求参数中是否携带了手动排序的标识,以及后端返回的产品数据是否保持了手动设置的顺序。如果筛选器代码中写死了排序参数,需要同步修改为跟随后台设置。
为了更直观地对照后台排序选项与模板参数,可以参考下表:
| 后台排序选项 | 模板对应参数 | 是否保留手动顺序 |
|---|---|---|
| 手动 | 无额外sort参数,直接使用collection.products顺序 | 是 |
| 价格从低到高 | sort: 'price-ascending' | 否 |
| 价格从高到低 | sort: 'price-descending' | 否 |
| 最新上架 | sort: 'created-desc' | 否 |
| 标题 A-Z | sort: 'title-ascending' | 否 |
| 标题 Z-A | sort: 'title-descending' | 否 |
从上表可以看出,只要模板中出现了任何非“手动”对应的sort参数,手动排序都会失效。因此修复的关键是找到并移除或调整这些强制排序代码。
四、验证结果与保存修改
完成模板检查并修正代码后,不要直接发布,建议先在主题编辑器中点击“预览”查看效果。进入产品系列页面,对比后台手动顺序和前台实际显示是否一致。可以逐项检查前10个产品,确认没有跳位或倒置。如果使用了缓存插件、CDN或Shopify自带的页面缓存,需要先清除缓存再验证,否则可能看到旧版本页面,误判修改无效。
如果模板代码中没有发现任何强制排序语句,但前台顺序仍然不对,可以检查产品系列是否正确关联到当前模板。在后台产品系列编辑页面右侧,有一个“模板”选项,确认选中的模板就是你刚才检查的那个文件。不同系列可能使用了不同模板,修改A模板不会影响使用B模板的系列。同时,也要确认产品系列页面没有启用第三方应用进行排序覆盖,部分排序插件会通过Script Tag或App Proxy注入额外的排序逻辑。
最后,保存模板修改前建议备份原文件内容。可以复制原代码到本地文本文件,万一修改出错可以快速恢复。修改后点击“保存”并发布主题,然后再次测试移动端和桌面端显示,确保排序在所有设备上一致。如果修改后仍然存在排序异常,可以尝试还原备份并逐步排查,或者联系主题开发者获取更详细的模板结构说明。
Shopify产品系列排序Shopify模板检查Shopify系列顺序调整 修改时间:2026-09-23 09:34:40