0

Solidus を e ショップ アプリケーションに使用しており、アイテムのパックとして販売されている製品を処理しようとしています。私は、在庫数の値を持つ製品「一枚の紙」を持っており、これらの紙を 50 枚までしか販売していません。

アイテム「一枚の紙」は私の在庫場所に個別に保管されていますが、個別に販売されることはありません。

考えられる解決策は 2 つあります。

  1. OptionType「パック」を作成し、それを製品に割り当ててから、オプション タイプの値を 50 に設定してバリアントを作成できることを確認しました。しかし、個々の紙の在庫数を50個のアイテムパックの在庫数です。これが私がやりたいことです。

  2. 製品を他の製品のバッチとして有効にする solidus_product_assembly アドオンを試しました。このソリューションは、製品の assembly_parts の在庫更新を処理するため、うまく機能しているようです。ここでの問題は、アセンブリ製品の在庫にあります。手動で設定する必要があるようです。他の製品を構成する可用性に応じて、ここでは自動計算は行われません。多分私は何かを逃した?とりあえず、total_on_hand Spree::Product のメソッドをオーバーライドして、その他のいくつかのカスタマイズを処理します。

私の場合、アセンブリ製品に複数の assembly_part が含まれることはないので、より良い解決策を考えている人はいますか?それを処理する最も明白な方法だと思いますか?

4

1 に答える 1

0

同様の状況があります。製品に関連付けられた setsize を作成しました。フロントエンド コードでは、セット サイズを表示し、数量をセット数量として受け取ります。個々の商品の価格を表示していますが、必要に応じてセット全体で表示することもできます。発注時に、設定値に発注数量を掛けるだけです。セットに関して適切な量を取得するには、いくつかの JavaScript コードを追加し、フロントエンド gem からコントローラー コードを少しオーバーライドする必要があります。また、エンドユーザーに数量を表示している場合は、セットに関して更新された状態を維持してください。また、もう 1 つのヒントとして、バックエンドから注文を変更できます。数量が設定されたサイズで割り切れない値に変更された場合は、数量をアイテム単位で表示します。

バックエンドでは、数量をアイテムのみにすることができます。残りのコードをアップグレード可能で十分に安定させるために、他に何も調整しないことをお勧めします。

于 2017-06-30T17:21:38.587 に答える