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

Shopify技术问题:编辑订单后如何修正装箱单已删商品的价格计算

解决Shopify订单移除多件商品后总价修正问题

你可以通过对比订单的原始商品列表(order.subtotal_line_items)和当前剩余商品列表(order.line_items),找出所有被移除的商品并累加它们的总金额,再以此修正订单的小计和总价。

具体实现代码

替换你现有代码中计算修正价格的部分,改为以下逻辑:

{% unless includes_all_line_items_in_order %}
    {% assign removed_total = 0 %}
    {% for original_item in order.subtotal_line_items %}
        {% unless order.line_items contains original_item %}
            {% assign removed_total = removed_total | plus: original_item.final_price %}
        {% endunless %}
    {% endfor %}
    {% assign modified_subtotal = order.subtotal_price | minus: removed_total %}
    {% assign modified_total = order.total_price | minus: removed_total %}
{% endunless %}

代码说明

  1. 初始化removed_total变量,用于累加所有被移除商品的总价
  2. 遍历订单的原始商品列表order.subtotal_line_items
  3. 对每个原始商品,判断它是否不在当前剩余商品列表order.line_items中——如果不在,说明该商品已被移除,将其final_price加到removed_total中
  4. 用订单原始的subtotal_price和total_price分别减去removed_total,得到修正后的小计和总价

完整整合后的代码

将上述逻辑替换你原代码中的对应部分,完整代码如下:

{% unless includes_all_line_items_in_order %}
    {% assign removed_total = 0 %}
    {% for original_item in order.subtotal_line_items %}
        {% unless order.line_items contains original_item %}
            {% assign removed_total = removed_total | plus: original_item.final_price %}
        {% endunless %}
    {% endfor %}
    {% assign modified_subtotal = order.subtotal_price | minus: removed_total %}
    {% assign modified_total = order.total_price | minus: removed_total %}
{% endunless %}
<div class="price-info text-align-right">
    <p>
        <span class="subtitle-bold to-uppercase">Sub Total: 
        </span>
        <span> 
            {% unless includes_all_line_items_in_order %}
                {{modified_subtotal | money}}
            {% else %}
                {{order.subtotal_price | money}} 
            {% endunless %}
        </span>
    </p>
</div>
<div class="price-info text-align-right">
    <p>
        <span class="subtitle-bold to-uppercase">Shipping: 
        </span>
        <span> {{order.shipping_price | money}}</span>
    </p>
</div>
<div class="price-info text-align-right">
    <p>
        <span class="subtitle-bold to-uppercase">Total Paid:                      </span>
        <span>
            {% unless includes_all_line_items_in_order %}
                {{modified_total | money}}
            {% else %}
                {{order.total_price | money}}
            {% endunless %}
        </span>
    </p>
</div>
</div>

这个方案会自动识别所有被移除的商品,无论移除数量多少,都能正确修正订单显示的小计和总价。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:35:26