2016-11-14 56 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中的一些控制器代碼,以便根據設置獲得適當的數量。無論您向最終用戶顯示數量,都要按照設置更新數量。另外,從後端開始,可以修改訂單,並且如果數量更改爲某些不能被整數大小整除的值,而不是按項目顯示數量。

在後端,您可以讓數量僅限於項目。我建議不要調整其他任何東西來保持代碼的其餘部分可升級和穩定。