2012-02-15 145 views
1

我是新的狂欢,并且我读到产品有一个包含price属性的主变体。我必须为主变体添加“折扣价”。Spree在折扣价格中添加折扣价

我可以简单地将列添加到变体模型并手动修改视图,但我认为这不是最好的方法,因为我想这个列应该修改结帐过程的行为(而不是我需要的主价格如果存在,则显示折扣价格)。

哪个是解决问题的最佳策略?

回答

2

我觉得你有几个选择这里:

  • 如果折扣适用于单个项目,你可能要考虑存储的是价格在line_items.price领域,而不是变异。订单项价格是从变体价格中复制的,但可以根据您希望设置的折扣价格进行调整,而不会影响变体。意思是,折扣代码可以在该商品上有任意的百分比,并且line_item价格将被更新以反映该折扣百分比。
  • 如果折扣适用于整个订单,它可以作为调整/信用添加,这是促销宝石的工作原理。

无论如何,我可能不会建议将其存储在变体数据模型中,我建议您查看promo核心gem支持的功能。

+0

折扣适用于单个商品,例如商品A价格:10,折扣价格:8。您是否建议将专栏discount_price添加到line_items对象?谢谢 – 2012-02-17 11:41:42

+0

不,我不建议创建一个额外的列。我建议添加一个基于其他类似Spree计算器的计算器,并更新line_item.price列。 – 2012-02-18 00:10:18