cart

购物车模板渲染 /cart 页面,该页面提供客户购物车内容的概览。概览通常以表格形式显示,每一行显示一个项目。

提示
请参阅 Dawn 中的购物车模板项目分区页脚部分,了解实施示例。

位置

购物车模板位于主题的模板目录中:

└── theme
    ├── layout
    ├── templates
    |   ...
    |   ├── cart.json
    |   ...
    ...

Cart对象

您可以访问 Liquid 购物车对象来显示购物车详情。

应用

使用购物车模板时,应熟悉以下内容:

提示
如果您使用的是 JSON 模板,那么任何 HTML 或 Liquid 代码都需要包含在模板引用的分区中。

购物车行项目

行项目是购物车中的一行,用于记录添加的产品型号和相关数量。例如,如果客户在购物车中添加了同一件中号和大号的 T 恤,那么每件 T 恤都有自己的行项目。

购物车模板应包含一个表格,每个细列项目都有一行:

{% for item in cart.items %}
  <!-- line item info -->
{% endfor %}

继续结账

要让客户从购物车中继续结账,需要在<form>元素中输出购物车中的行项目。<form>元素需要有 action=”{{ routes.cart_url }}” 和 method=”post” 的属性。

<form>元素还需要包含一个,其属性为 type=”submit” 和 name=”checkout”。该输入将触发结账。

<form action="{{ routes.cart_url }}" method="post">
  {% for item in cart.items %}
    <!-- line item info -->
  {% endfor %}

  <input type="submit" name="checkout" value="Checkout">
</form>

从购物车中删除行项目

您应该为客户提供从购物车中删除行项目的选项。为此,您可以在每个行项目中包含一个<a>元素,其 href 属性引用line_item object的url_to_remove

{% for item in cart.items %}
<!-- line item info -->

<a href="{{ item.url_to_remove }}">Remove</a>
{% endfor %}

提示
有关使用 JavaScript 更改购物车的更多信息,请参阅购物车 API

更新行项目数量

您应该为客户提供更新购物车中产品数量的选项。为此,您可以在每个细列项目中包含一个<input>  元素,其属性为 name=”updates[]” 和 value=””:

{% for item in cart.items %}
  <!-- line item info -->

  <input type="text" name="updates[]" value="{{ item.quantity }}">
{% endfor %}

要在数量输入发生变化时实际触发更新,可以在购物车<form>中包含一个属性为 type=”submit” 的<input> :

<input type="submit" value="Update cart">

使用此<input>提交表单后,页面将重新载入更新的数量。

提示
请参阅 Cart API 的 /{locale}/cart/update,了解使用 JavaScript 更新购物车的更多信息。

显示购物车和产品折扣

由于折扣可适用于整个购物车或单个行项目,因此应在显示购物车总计和单个行项目时显示折扣。

支持购物车备注和属性

您可以让客户选择通过购物车备注和属性在订单中添加其他信息。

购物车备注
要获取购物车备注,请在 main-cart-footer.liquid 文件中加入一个 HTML  input,通常是 <textarea>,属性为 name=”note” 和 form=”cart:

<textarea name="note" form="cart"></textarea>

该值可通过购物车对象的 note 属性访问。

购物车属性
要捕获购物车属性,请在 main-cart-footer.liquid 文件中加入一个属性 name=”attributes[attribute-name]” 和 form=”cart” 的 HTML input:

<p>
  <label>Please let us know your favorite color</label>

  <input type="text" name="attributes[Favorite color]" form="cart" value="{{ cart.attributes['Favorite color'] }}">
</p>

任何值都可以通过购物车对象的 attributes 属性访问。

显示行项目属性

将项目添加到购物车时,它们可以包含行项目属性。您可以通过循环浏览每个属性,在购物车页面上显示这些属性:

{% for item in cart.items %}
  <!-- line item info -->

  {% unless item.properties == empty %}
    {% for property in item.properties %}
      {{ property.first }}:

      {% if property.last contains '/uploads/' %}
        <a href="{{ property.last }}">{{ property.last | split: '/' | last }}</a>
      {% else %}
        {{ property.last }}
      {% endif %}
    {% endfor %}
  {% endunless %}
{% endfor %}

提示
如果在购物车中添加了两个相同的商品,但它们的行项目属性各不相同,那么它们将被拆分成不同的行项目。

原文链接:cart (shopify.dev)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注