価格設定エンジンの概要
カタログには製品が含まれており、各カタログにはデフォルトの 基本価格リスト と 基本プロモーション リストがあります。 これらのリストには、カタログ内のすべての製品 SKU の基本価格エントリが保存されており、すべての顧客が利用できます。 また、カスタム 価格リスト と プロモーション リスト を作成して、よりターゲットを絞った構成可能な価格エンティティを定義することもできます。 また、各エントリの一部として、数量に応じて商品の特別価格を設定する価格レートを定義することができます。 最後に、 割引 が価格エントリを上書きせずに上に適用されます。
以下の概要では、Commerce Pricing Engine v2.0 について説明します。 これは、Commerce 3.0 以降および Portal/DXP 7.3 以降で使用されるデフォルトの価格設定アルゴリズムです。 以前のバージョン (Commerce 2.1.x など) では、デフォルトで Pricing Engine v1.0 が使用されます。 必要に応じて、インスタンスに使用される価格設定エンジンのバージョンを 変更 できます。
Liferay DXP 2023.Q4+/Portal GA98+ SKU に 測定単位 が設定されている場合、基本価格リスト、基本プロモーションリスト、カスタム価格リスト、およびカスタムプロモーションリストに各単位のエントリがあります。

基本価格表
基本価格リストには、カタログ内のすべての製品 SKU の開始価格が格納されます。 これらのエントリは、各SKUに上書きが適用されていないときに使用される標準通貨と価格を設定します。 このリストはカタログごとに自動的に作成され、すべてのアカウントとチャネルで利用できます。 詳細については、「 製品の基本価格の設定 」を参照してください。

基本プロモーション表
基準プロモーション表には、カタログに掲載されているすべての商品SKUの基準プロモーション価格のエントリが保存されています。 SKUに適用されると、基本プロモーション価格エントリはすべての顧客に対して基本価格を上書きします。 このリストはカタログごとに自動的に作成され、すべてのアカウントとチャネルで利用できます。 詳細については、 プロモーション ベース リスト リファレンス を参照してください。

価格表
カスタム価格表は、特定の商品の価格エントリを保存し、対象となる顧客のみが利用できるようになっています。 これらのリストは、基本価格表とは異なる通貨を使用し、カタログのすべての、または一部の商品を含むことができます。 カスタム価格表のエントリーは、対象となる顧客のSKUの基本価格を上書きします。 特定の価格エントリを変更するには、 価格変更子 を定義することもできます。 詳細については、「 価格表の作成 」を参照してください。

プロモーションリスト
カスタムプロモーションリストは、特定の商品のプロモーション価格エントリーを保存し、対象となる顧客のみが利用できるようになっています。 これらのリストは、基本価格表とは異なる通貨を使用し、カタログのすべての、または一部の商品を含むことができます。 これを適用すると、対象となるユーザーに対してSKUの他の価格エントリー(基本価格、段階価格など)が上書きされます。 これらのリストでは、特定の価格エントリを変更するための 価格変更子 を定義することもできます。 有効にされている場合は、元の価格とプロモーション価格、両方が商品ページに表示され、購入者が値下げを確認できます。 詳細については、「 プロモーションの作成 」を参照してください。

Liferay DXP 7.4 U42/GA42 より前では、プロモーション価格はセール価格と呼ばれていました。
価格レート
価格レートは、価格エントリ内に直接設定されていて、最小数量の要件を満たす注文に対する特定の価格を定義します。 これらの価格は、割引された注文オプションとして顧客に表示されます。 詳細については、「 価格帯の使用 」を参照してください。
割引
割引は、価格に上乗せして適用され、価格に影響を与えることなく変更されます。 これらは、既存の価格エントリ内で定義することもできますし、独立したエンティティとして作成し、商品、商品グループ、カテゴリー、送料、小計、合計を対象に使用することもできます。 詳細については、「 割引の概要 」を参照してください。

Pricing Engineによる商品価格の算出方法
Pricing Engineは、各価格コンポーネントがチャンネルにおけるSKUの価格にどのように貢献するかを決定します。 エンジンが価格リクエストを受信すると、まず商品の 単価 と プロモーション価格を計算します。 これらの価格をもとに、 最終価格 が決定され、お客様に提供されます。
Liferay DXP 2023.Q4+/Portal GA98+ 価格設定エンジンは、 測定単位 を含む SKU に対して、測定単位のない SKU と同じように単価、プロモーション価格、最終価格、注文価格を計算します。
SKUの単価を計算する
SKUの単価を計算する際、Pricing Engineは対象となるカスタム価格表を検索します。 複数のリストが存在する場合、エンジンは最も高い優先度を持つリストを選択します。 そして、選択されたリストの価格エントリーから商品SKUを検索します。
-
SKUのエントリがある場合、アルゴリズムは既存の価格修飾子のそのSKUのエントリを適用し、SKUの単価の合計を使用します。
-
SKUのエントリーが存在しない場合、エンジンはSKUの基本価格を使用し、最も優先度の高い価格リストの中から修飾子を適用します。 合計がSKUの単価となります。
注このエンジンは、最も優先度の高いリストのみを検索し、優先度の低いリストのSKUは検索しません。 これは、同じカタログ内のSKUに異なる価格表の価格が適用されるのを避けるためです。
適格なカスタム価格表が存在しない場合、エンジンはSKUの基本価格表のエントリーを単価に使用します。

このプロセスの間に、エンジンは該当する価格レートもチェックします。 価格レートがある場合は、その価格が特定の数量のデフォルトの価格の代わりに使用されます。
SKUのプロモーション価格を計算する
SKUの単価を計算した後、Pricing EngineはSKUのプロモーション価格を計算します。 この計算は、2つの例外を除き、基本的には単価の計算プロセスと同じです:
-
該当するプロモーションリストにSKUの価格エントリーがない場合、既存の価格修飾子が単価に適用され、合計がプロモーション価格に使用されます。
-
該当するプロモーションリストがなく、基本プロモーションリストが0に設定されている場合、プロモーション価格は0に設定されます。
SKUの最終価格を計算する
単価とプロモーション価格を計算した後、Pricing Engineが両者を比較し、より安い価格を選択します。 そして、価格アルゴリズムは、適用可能なすべての割引を検索し、価格に適用します。 合計はSKUの最終価格、つまり顧客が商品を購入するために支払う価格となります。
Pricing Engineによる注文価格の算出方法
注文価格を計算する際、Pricing Engineはまず送料を取得し、送料を対象とした割引を適用します。
次に、エンジンは注文に含まれるすべてのSKUの最終価格を加算して小計を決定します。 小計を対象とした割引が適用されます。
最後に、Pricing Engineは割引後の送料と割引後の小計を合計し、注文の合計金額を算出します。 合計を対象とした割引が適用されます。

価格設定エンジン v1.0 リファレンス
| 価格設定方法 | 概要 | 基本価格のオーバーライドの有無 | 設定場所 | 適用者 | 適用対象 |
|---|---|---|---|---|---|
| 基本価格 | 基本価格 | n/a | 商品SKU | すべての購入者 | 商品SKU |
| 基本プロモーション | 値下げ価格 | はい | 商品SKU | すべての購入者 | 商品SKU |
| 価格表(定価、プロモーション価格) | 商品および購入者ごとの特別価格(または通貨) | はい | 価格表 | 選択された購入者(アカウント & アカウントグループ) | 個々の商品SKU |
| レート価格表(レート価格、プロモーションレート) | バルク数量での商品および購入者ごとの特別価格(または通貨) | はい | 価格表 | 選択された購入者(アカウント & アカウントグループ) | 個々の商品SKU |
| 割引 | 商品または購入者のグループの価格を変更します(数量を制限し、クーポンコードを使用できます) | いいえ | 割引 | 選択された購入者(アカウント & アカウントグループまたは特定の資格を満たす人) | 商品のグループ(または個々の商品SKU) |
v1.0 では、価格エントリには SKU、標準価格、プロモーション価格の 3 つのコンポーネントが含まれます。 v2.0では、それぞれが個別のエンティティとなっています。

Commerce2.1.xでのPricing Engine v2.0の有効化
デフォルトでは、Commerce 2.1.x以前のバージョンではCommerce Pricing Engine v1.0が使用されています。 以下の手順に従って、Commerce Pricing Engine v2.0を有効にします:
-
コントロール パネルを開き、 システム設定 → コマース → 価格設定に移動します。
-
左側のパネルで コマース価格設定 をクリックします。
-
価格計算キー フィールドで、
v1.0をv2.0に置き換えます。 -
[保存]をクリックします。
インスタンスはすべての価格計算に Pricing Engine v2.0 を使用するようになりました。