2011-01-14 13 views
1

すぐに、私は構成済み製品の本質的にeコマースアプリであるプロジェクトに取り組んでいきます。この質問は、日々変化する価格体系を実装する方法に関するものです。そのため、コードロジックをコードからデータベースに取り込みたいが、データベースにすべての作業をさせる方法ではない。「ダイナミック」価格設定システム

基本的な考え方は、5つの属性があります。それらの属性のそれぞれからオプションを選択します。次にカートに商品を追加します。追加するすべての商品には、5つの属性が貼られます(属性が価格に影響します)。製品を追加したら、変更を適用することができます(属性は変更にも適用されます)。

ここで私たちが得たのは、(価格を修正する)いくつかの情報と、固定価格のゼロ以上の修正を加えた製品(固定ベース価格を持つ) (価格を変更する)それらに関するいくつかの情報。変更には追加料金もかかります。たとえば、A社がこのソフトウェアを使用していて、BASE_PRICE + $ 50 * NUM_WHIRLIGIGSを使用してアイテムに価格を付け、そのアイテムにWHIRLIGIGを追加する変更がある場合、その価格に反映される必要があります。

これを設定する方法を決定する際に役立つさまざまな価格設定システムの例をご存知ですか?より良いアイデアはありますか?

私の現在の最善の考え方は以下の通りです。方法の詳細が不明な場合は、スキップして回答を得ることができます。

任意のアイテム(またはアイテムのコレクション)について、会社は特別なインターフェイスを使用して価格設定式を設定し、実行時に解釈して評価することができます。

PRODUCT_Aの場合、会社はBASE_PRICE + WHIRLIGIG_UPCHARGE * NUM_WHIRLIGIGSのようなものを入力することがあります。そしてソフトウェアは、価格を決定する時になると、そのアイテムに何個のWHIRLIGIGSがあるか、何らかの修正によって何個のWHIRLIGIGSが追加されたかを調べます。

誰もこの種の通訳を実装した経験はありますか?どのようになったのですか?難しい/面倒でしたか?

すべてのすばらしい入力をお待ちしております。 :P

答えて

0

一般的に、これはコンポーネントを含む製品バンドルで処理されます。したがって、5つの追加サブコンポーネントを持つ製品はベース+ 5 *アドオンではなく、SUM(ベース、アドオン、アドオン、アドオン、アドオン、アドオン)になります。

あなたの製品テーブルは、自己参照型であるか、またはどのサブ製品がどの製品に接続できるかを示すリンクテーブルがあります。

私の経験では、価格設定は通常、製品/顧客または契約ベースで行われるため、別のテーブルになります。

実際の注文自体に製品バンドルが含まれています。注文が見積もりの​​場合、価格は固定されます(見積もりの​​期限まで)。

請求書または注文書が請求書に変換されると、価格設定のパラダイムに応じて、価格は主価格または見積もりから固定されます。

+0

設定された製品がキッチンキャビネットであることに注意してください。残念なことに、いずれのメーカーも最終製品とは異なる方法で製品の価格を設定します。PRICE = CABINET_BASE_PRICE * FINISH_UPCHARGE +(BASE_COST_OF_DOOR * FINISH_UPCHARGE * NUM_DOORS) –

+0

キャビネットに変更が加えられている場合は、「+ BASE_MOD_COST * FINISH_UPCHARGE」のような第3項を追加できます。実際の問題は、彼らができることがたくさんあることです(そして、ほとんどのものがメーカーにとって意味をなさない - 場合によっては特殊なソフトウェアの助けを借りてキャビネットの価格を決めることもできません)。彼らが思い付くかもしれないあらゆる種類の公式を可能にするのに十分柔軟である。 –

+0

@Anthony Comptonわからない。注文の属性はいくつかありますか? - すべての別々のキャビネットに同じ仕上げアップチャージがありますが、それを各自に適用することを覚えなければなりませんか?アプリケーションでは、数式をその場で多言語で確実に解釈できます。あなたはある種のスコープを持たなければならないように見えますが、おそらくどんな種類の式も扱うことはできません。 –

関連する問題