You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shopify中实现最多显示10个最近购买商品的再次购买列表?

Shopify 实现最多10个最近购买商品的“再次购买”列表

你可以通过收集订单中的商品项,凑够10个后停止遍历的方式实现需求,以下是两种可选方案:

方案1:显示最近10个购买的商品(含重复购买的同商品)

从最近的订单开始逐个收集商品,直到满10个就停止,支持重复展示同一商品:

{% assign collected_items = '' | split: '' %}
{% for order in customer.orders %}
  {% for line_item in order.line_items %}
    {% unless line_item.product == nil %}
      {% if collected_items.size < 10 %}
        {% assign collected_items = collected_items | push: line_item %}
      {% else %}
        {% break %}
      {% endif %}
    {% endunless %}
  {% endfor %}
  {% if collected_items.size >= 10 %}
    {% break %}
  {% endif %}
{% endfor %}

{% for item in collected_items %}
<div class="buy-again-item">
  <a class="buy-again-card" href="{{ item.product.url }}">
    <img class="buy-again-image" src="{{ item.product.featured_image | img_url: '100x100' }}" width="100" height="100">
    <div class="buy-again-info">
      <div class="buy-again-title">
        {{ item.product.title }}
      </div>
      <div class="buy-again-sku">
        {{ item.variant.sku }}
      </div>
      <div class="buy-again-price">
        {{ item.variant.price | money }}
      </div>
    </div>
  </a>
</div>
{% endfor %}

方案2:显示最近10种不同的购买商品(去重)

如果希望同一商品仅展示一次,优先显示最近购买的不同商品,可使用这个版本:

{% assign collected_items = '' | split: '' %}
{% assign added_product_ids = '' | split: '' %}
{% for order in customer.orders %}
  {% for line_item in order.line_items %}
    {% unless line_item.product == nil %}
      {% unless added_product_ids contains line_item.product.id %}
        {% if collected_items.size < 10 %}
          {% assign collected_items = collected_items | push: line_item %}
          {% assign added_product_ids = added_product_ids | push: line_item.product.id %}
        {% else %}
          {% break %}
        {% endif %}
      {% endunless %}
    {% endunless %}
  {% endfor %}
  {% if collected_items.size >= 10 %}
    {% break %}
  {% endif %}
{% endfor %}

{% for item in collected_items %}
<div class="buy-again-item">
  <a class="buy-again-card" href="{{ item.product.url }}">
    <img class="buy-again-image" src="{{ item.product.featured_image | img_url: '100x100' }}" width="100" height="100">
    <div class="buy-again-info">
      <div class="buy-again-title">
        {{ item.product.title }}
      </div>
      <div class="buy-again-sku">
        {{ item.variant.sku }}
      </div>
      <div class="buy-again-price">
        {{ item.variant.price | money }}
      </div>
    </div>
  </a>
</div>
{% endfor %}

关键说明

  • 用split: ''初始化空数组,通过push方法添加符合条件的商品项
  • 内外层循环均加入判断,收集满10个商品后立即停止遍历,减少不必要的计算
  • 图片地址改用Shopify官方img_url过滤器,比手动拼接更稳定,可自动适配指定尺寸

内容的提问来源于stack exchange,提问作者kcm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:34:57