更新用于脚本的 Liquid 模板

如果您在您的在线商店中运行脚本,则需要检查它们如何影响店面中的页面。许多模板都包括支持脚本的代码,但有些则不包括。如果您的模板没有代码,您可以添加代码。

问题排查

脚本和模板的大多数问题都涉及提供折扣的订单项目脚本。例如,订单总价是正确的,但是订单项目价格没有反映折扣。客户需要理解折扣的计算方式。他们想看到原价和折扣价,以及折扣的简短说明。如果购物车中缺失这些详细信息中的任何一项,您就需要添加 Liquid 代码来显示这些信息。

为了有效地查看您的脚本对店面的影响,可以采用客户的身份访问店面并执行触发脚本的操作。

Liquid 对象属性

以下列表包含支持商店购物车中的脚本通常所需的 Liquid 对象属性:

Cart 对象属性:

订单项目属性:

脚本对象:

  • 脚本对象可用于返回商店活动脚本的相关信息。在调试脚本时,此对象会非常有用。

示例

以下示例描述了您能对 cart.liquid 模板进行的更改,从而让该模板支持订单项脚本。

示例购物车

例如,如果您的购物车中包含三件订单项目:

  • 足球

    • 数量:1
    • 单价:15.00 美元
  • 网球

    • 数量:5
    • 单价:5.00 美元
  • 跑鞋

    • 数量:1
    • 单价:30.00 美元

并且您已发布应用以下折扣的脚本:

  • 如果购买两个或更多网球,则享受 10% 的折扣
  • 所有鞋子减价 5 美元

则您的 cart.liquid 模板可能会是一个简单的表格,其中列出了订单项以及它们的总金额摘要:

<table class="cart">
  <thead class="heading">
    <tr>
      <th>Product</th>
      <th>Quantity</th>
      <th>Total</th>
    </tr>
  </thead>

  <tbody class="line-items">
    {% for item in cart.items %}
    <tr>
      <td>{{ item.product.title }}</td>
      <td>{{ item.quantity }}</td>
      <td>{{ item.line_price | money }}</td>
    </tr>
    {% endfor %}
  </tbody>

  <tfoot class="summary">
    <tr>
      <td colspan="2">Total</td>
      <td>{{ cart.total_price | money }}</td>
    </tr>
  </tfoot>
</table>

在脚本中应用该折扣后,此模板会为您的购物车创建以下表格:

产品数量总计
足球115.00 美元
网球522.50 美元
跑鞋125.00 美元
总计62.50 美元

更新订单项目

若要显示脚本应用的折扣,我们需要更新订单项以显示三项关键的信息:

  • 应用折扣之前的订单价格
  • 折扣后的订单价格
  • 描述应用的折扣的消息。

为此,请使用以下 Liquid 对象属性:

  • line_item.total_discount 返回已应用于订单项目的折扣金额
  • line_item.original_line_price 返回应用折扣前的订单项目价格
  • line_item.message 返回用于描述应用于订单项目的折扣的消息。

通过加上删除线效果,可以帮助区分订单原价和订单折后价:

<tbody class="line-items">
  {% for item in cart.items %}
  <tr>
    <td>{{ item.product.title }}</td>
    <td>{{ item.quantity }}</td>
    <td>
      {{ item.line_price }}
      {% if item.total_discount > 0 %}
        <s>{{ item.original_line_price }}</s>
        ( {{ item.message }} )
      {% endif %}
    </td>
  </tr>
  {% endfor %}
</tbody>

您的购物车现在应如下所示:

产品数量总计
足球115.00 美元
网球522.50 美元 25.00 美元(购买两个或更多网球,则享受 10% 的折扣)
跑鞋125.00 美元 30.00 美元(所有鞋子减价 5 美元)
总计62.50 美元

更新购物车摘要

为了帮助客户跟踪订单价格,您还应该显示以下内容:

  • 购物车的原始小计,让客户可以比较折扣前后的总额
  • 客户在购物车中节省的总金额。

同样,要添加此信息,请使用以下 Liquid 对象属性:

  • cart.total_discount 返回购物车中的商品享受的折扣金额
  • cart.original_total_price 返回应用折扣之前的购物车小计。

有了这些信息,更新后的 .summary 块可能与以下类似:

<tfoot class="summary">
  <tr>
    <td colspan="2">Subtotal</td>
    <td>{{ cart.original_total_price | money }}</td>
  </tr>
  <tr>
    <td colspan="2">Discount Savings</td>
    <td>{{ cart.total_discount | money }}</td>
  </tr>
  <tr>
    <td colspan="2">Total</td>
    <td>{{ cart.total_price | money }}</td>
  </tr>
</tfoot>

现在,您的购物车表应该如下所示:

产品数量总计
足球115.00 美元
网球522.50 美元 25.00 美元(购买两个或更多网球,则享受 10% 的折扣)
跑鞋125.00 美元 30.00 美元(所有鞋子减价 5 美元)
小计70.00 美元
折扣优惠7.50 美元
总计62.50 美元

通过将几个新的 Liquid 对象添加到模板,您可以帮助客户理解折扣的计算方式。

其他示例

以下 Liquid 示例显示每件订单项的折扣:

  {% if item.original_line_price != item.line_price %}
  <small class="original-price"><s>{{ item.original_line_price | money }}</s></small>
  {% endif %}
  {{ item.line_price | money }}
  {% for discount in item.discounts %}
  <small class="discount">{{ discount.title }}</small>
  {% endfor %}

请参阅其他包含 Liquid 代码更改的折扣示例

没有找到您需要的答案?我们将为您提供帮助。