折扣
折扣可以使用在购物车、结帐、订单项或者订单。这意味着折扣可以灵活地作用于特定的订单项目,或者整个购物车/订单。
在本教程中,你将学习如何在主题中显示折扣。
要求
资源
要在你的主题中显示折扣,你将使用以下内容:
discount_application
object
在购物车、订单或者结帐中使用了折扣后,就会存在 discount_allocation object。根据使用折扣的位置,你可以通过父对象获取对应的折扣信息。
discount_allocation
object
discount_allocation object 将一个 discount_application
与一个订单项联系起来。
你可以使用 line_item.line_level_discount_allocations 访问与一个订单项相关的所有折扣信息。
line_item
object
要完成价格展示,需要用到 line_item object 的 price 和 discount 属性,包括:
实现折扣显示
因为折扣可以使用于订单项、整个购物车或者订单,所以你需要在两个地方展示折扣信息:
本教程使用购物车作为例子。同样的,你可以调整这些例子,通过像使用购物车 object 一样去使用订单 object,将折扣添加到客户/订单模板中。
你可以直接在 handlebars 模板中实现这些组件,也可以在 JSON 模板的某个 section 中实现。
订单项折扣
如果订单项使用了折扣,就需要在订单项中展示折扣。要展示订单项的折扣,你需要在展示以下内容:
订单项价格
如果订单项使用了折扣,就需要对原始价格使用删除线,同时,展示新的折扣价。可以使用 Handlebars line_item object 的访问以下属性:
订单项折扣
如果订单项使用了折扣,就需要展示使用的每个折扣及其关联的折扣金额或总折扣金额。可以通过 Handlebars line_item object 的 line_level_discount_allocations 属性访问特定于订单项的折扣,并且可以通过该 line_level_total_discount 属性访问总订单项折扣。
例子
以下是输出价格和折扣显示的示例:
<s></s>
Discounts:
<ul>
<li>
-
</li>
</ul>
另外一个显示订单项折扣的例子,可以参考 Seed 的实现。
购物车折扣
小计是使用订单项折扣后的订单项总额,总计是使用购物车折扣后的购物车总额。如果折扣适用于整个购物车,那么它应该展示在小计和总计之间。
购物车级别的折扣可以通过 cart 或 order object 的 cart_level_discount_applications
属性访问
Subtotal:
Discounts:
<ul>
<li>
-
</li>
</ul>
Total:
另外一个显示订单项折扣的例子,可以参考 Seed 的实现。