2016-11-14 77 views
0

我正在使用Solidus作为电子商店应用程序,并且我正在尝试处理以物品包的形式出售的产品。我有一个产品“纸片”,有一个库存计数值,而我只是将这些纸片卖出50.产品作为一批物品(但物品都是一样的)和solidus_product_assembly

项目“一张纸”单独存储在我的库存位置,但从未单独销售。

我心里有两个可能的解决方案:

  1. 我所看到的,我可以创造一个OptionType“包”,将其分配给我的产品,然后创建设置为50的选项类型值的变体。但我没有找到任何方法将我个人纸张的库存数量与我50件物品的库存数量联系起来,这正是我想要做的。

  2. 我尝试了solidus_product_assembly插件,该插件允许产品作为一批其他产品。由于该解决方案处理产品的assembly_parts库存更新,因此该解决方案似乎工作得更好。我的问题在于我的组装产品的库存:在我看来,我必须手工设置它,根据组成其他产品的可用性,此处不进行自动计算。也许我错过了什么?目前,我重写了total_on_hand Spree :: Product的方法来处理这一点,以及其他一些定制。

因为在我来说,我永远不会有一个以上的assembly_part更多的组装品,没有人想到一个更好的解决方案,或者是因为我觉得最明显的方式来处理这个问题?

回答

0

我们有类似的情况。我们已经制作了与产品相关的套餐。在前端代码中,我们显示设置的大小并将数量作为设置数量。我们为个别商品显示的价格,您可以按照您的要求显示整个集合的价格。在订单放置时,只需将订单数量与订购数量相乘即可。您需要添加一些JavaScript代码并覆盖前端gem中的一些控制器代码,以便根据设置获得适当的数量。无论您向最终用户显示数量,都要按照设置更新数量。另外,从后端开始,可以修改订单,并且如果数量更改为某些不能被整数大小整除的值,而不是按项目显示数量。

在后端,您可以让数量仅限于项目。我建议不要调整其他任何东西来保持代码的其余部分可升级和稳定。