Rails +电子商务:如何实现用户购买的产品的退货?

时间:2014-06-25 21:27:38

标签: ruby-on-rails

我正在建立一个电子商务商店,而且我正在"退货/换货"部分。但是,我在概念化如何在关系数据库中实现Return模型/表时遇到了问题。到目前为止,我有这些模型:

User(has_many:orders)

Order(has_many:line_items,belongs_to:user)

LineItem(belongs_to:order,belongs_to:variant)

Variant(has_many:line_items)

非常通用。让我们说用户下了一个包含2个订单项的订单:

LineItem 1: {quantity: 1, variant_id: 1}

LineItem 2: {quantity: 3, variant_id: 2}

让我们说用户只想返回2个LineItem 2单元。那么将来他们仍然可以返回1个LineItem 2单元,因为总共有3个单元(quantity: 3)......那么什么样的关系会是什么?

有没有人有实施Return模型的经验?我会喜欢一些见解。如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

我认为它不得不拥有那么多功能或边缘情况。可能客户会花更多的钱让你处理每一个案子,而不是一个职员只是捏造这些数字,以使顾客在这些边缘案件中出现的罕见情况下感到高兴。

我会将return_datereturn_qty添加到line_item表格中。然后,如果有人返回2/3项,请设置return_qty = 2return_date = Time.now。如果他们确实返回第3个项目,请递增return_qty并覆盖return_date。你将失去历史回归日期,但这似乎是如此罕见,可能毫无价值的信息。你甚至可能不需要它。