web-dev-qa-db-ja.com

JSONおよびONIX(XML)入力に基づいてマージンを計算し、それらに基づいてポイントを計算する方法は?

Drupalに基づく商流分布Drupal 7に基づいて本を販売します。最初に、いくつかの与えられたデータに基づいてマージン価格を計算します。JSONがインポートされるか、手動で追加できます。ONIX(実際にはXML)データはすでに初期段階でインポートされています。ONIXデータでは、タグとして価格、重量、および発行元を変数として使用できます。注文時に、これらのデータを組み合わせるルールが必要です、計算を行い、注文完了後の結果を管理者のダッシュボードにビューとして表示します。

この後、以前に計算されたマージンとの関係で、注文のアイテムごとの注文価格に基づいて、購入者が獲得するポイント数を計算します。獲得したポイントは、本の価格の最大パーセンテージに相当し、計算されたマージンの最大%を超えることはできません。

Drupalにこれを行う方法またはテクニックはありますか?

1
gpruim

計算

あなたは間違いなく(かなり新しい) Math Field モジュールを見て、それを次の目的で使用する必要があります:

  • マージン価格の計算。
  • 注文完了後の計算。

(モジュールのプロジェクトページからの)このモジュールの詳細と、計算が実際に行われるwhenの詳細:

数学フィールドモジュールは、エンティティフォームの値を動的に計算する新しいフィールドタイプを定義します。 これは 計算フィールド の代替であり、PHP Filter。

数式フィールドは、すべての必要なフィールドが入力されるとすぐにエンティティフォームのajaxを介して動的に更新されます。 JavaScriptが無効になっている場合、フォームが送信されるとフィールドが評価されます。フォームが送信されると、結果がデータベースに保存されます。

詳細(詳細な手順)については、次のいずれかのリンクを参照してください。

既知の問題

これはかなり新しいD7モジュールであるため、プロジェクトページにも記載されているように、まだいくつかの(既知の)問題があります。

ボーナス:「PHPフィルター」は必要ありません(IMOのみがこの代替策を調査す​​る正当な理由であるはずです)...

ダッシュボード

実際の要件/期待に応じて、 Views モジュールのみでダッシュボードを実装できる場合があります。おそらく、そのための追加モジュールの1つを補完します。たとえば、ある種のグラフも作成したい場合は、 charts などのモジュールが適しています。

代替として(または可能な補完ですか?) Forena モジュール(ディスコ:私は共同メンテナです)を検討することもできます。すぐに使用できるグラフが付属しているため、XMLに格納されている一部のデータ(ONIXデータ)をインポートせずに統合することもできます。

バイヤーポイント

これらのポイントは serpoints モジュールを使用して実装できます(それは明らかです)。そして Goals モジュールを使用することで(開示:私はそのメンテナーです)、適切な数のユーザーポイントを付与するために Rules モジュールを処理することができます。そのため、あなたの質問(チャレンジ)はGoalsの適切なセットと関連するタスクGoals に関する基本的な紹介については、以下をご覧ください。

ボーナス:質問にそれが(まだ)要件として含まれていないように見えても、特別な報酬を実装するのは簡単ですあなたの頻繁なバイヤー。以下にその方法を示します。

  1. 目標= "新規顧客"、1つだけTask= "購入1つの製品 "(マシン名= buy_productと言います)。
  2. 目標= "Silver customer"、withTask= "Buy 10 products 、10日間、3か月の期間で」.
  3. 目標= "ゴールドカスタマー"、Task= "100製品を購入、25日間、12か月の期間で」.

これの興味深い部分は、新しい/シルバー/ゴールドの顧客になるためのユーザーの進捗状況を追跡するために、1つのルール(そのマシン名= buy_productに関連)を書くだけでよいことです(同様のサンプルのビデオ)。

0
Pierre.Vriens