プロモーション・コードを使用した販売オーダーへのプロモーションの適用
Oracle Order ManagementおよびOracle Pricingを含むRedwoodページを使用して販売オーダーにプロモーション・コードを入力すると、価格設定ではそれを使用してオーダーがプロモーションに適格かどうかを判断します。 コードを使用して、品目に割引を提供するか、オーダーに無料品目を追加します。
次のような利点があります:
- 顧客を歓迎するパーソナライズされたテキストを使用し、ビジネスおよび販売する品目に固有の言語で対処します。
- クロスセルを奨励し、より高い価値のオーダーに導きます。
- 特定の顧客にアピールする最新の言語と専門用語を使用します。
- 割引は対象となる顧客に制限します。 たとえば、50ドルを超えるオーダーは、FREESHIPコードを使用すると送料無料にします。
- 販売が遅い品目をより効果的に動かします。 たとえば、 クリアランス・セール: 選択した品目は、コードFINAL40を使用すると40%オフにします。
- 放棄されたオーダーを減らし、緊急性を高めます。 たとえば、タイム・サービス: 24時間限定のコードFAST15を使用すると15%オフにします。
- 顧客、インフルエンサなど、ブランドの認知度を高める簡単な方法を提供します。
- 各プロモーションに対するマーケティング戦略と戦術の有効性を追跡します。
設定
- 次の機能を有効にします:
- 価格設定を設定します。 この機能とOracle Pricingとの連携に関する重要な詳細は、「価格設定プロモーションの管理」を参照してください。
オプションとして、「クローズ済明細を使用した品目の価格設定の支援」機能をオプト・インすることもできます。 Oracle Pricingで価格設定販促を含む品目の価格を設定する必要がある場合に、クローズ済明細を検討できるようにするために使用します。
インポート
REST APIを使用して、プロモーション・コードがある販売オーダーをインポートできます。 RESTペイロードでPromotionCode属性を使用します。
- Oracle Pricingを使用すると、REST APIを介してのみインポートする前にオーダーの価格を設定できます。 これは、webサービスやFBDIでは実行できません。
- インポート後、価格設定では、再設計されたページやクラシック・ページと同様にプロモーションの価格が設定されます。
- インポート前に独自の価格設定アプリケーションを使用してオーダーの価格を設定する場合、インポートにプロモーション詳細を含めることはできません。
- FOM_IMPORT_VIA_REST_BACKENDでwebサービスまたはFBDIを使用して無料品目を追加することはできません。 バックグラウンドについては、大量の注文書のインポートおよび配送を参照してください。
- RESTを介したインポートでは、重複するプロモーション・コードがあるかどうかのみが検証されます。 他の検証は実行されません。
- FBDIを介してインポートすることはできません。
詳細は、Oracle Supply Chain Management Cloud REST APIに移動し、「オーダー管理」 > 「オーダー・ハブの販売オーダー」 > 「オーダー」 > 「プロモーション・コード」を展開します。
独自の検証の記述
オーダー管理には、様々な検証を実行するように事前定義されていますが、オーダー管理拡張の「プロモーション・コード」エンティティを使用して独自の検証を実行することもできます。 たとえば、この拡張機能は、販売オーダーに適用できるプロモーション・コードの数を制御します。
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
if ("PROMO_NA".equals(header.getAttribute("CustomerPONumber"))) {
def it = header.getAttribute("OrderPromotionCodes");
List<Message> messages = new ArrayList<Message>();
messages.add(new Message(Message.MessageType.ERROR, "Order can't be submitted with promo codes that are in not applied status"));
int count = 0;
int countApplied = 0;
while( it.hasNext() ) {
def promoCode = it.next();
header.setAttribute("ShippingInstructions",promoCode.getAttribute("StatusCode"));
header.setAttribute("PackingInstructions",promoCode.getAttribute("PromotionCode"));
if(!"ORA_QP_APPLIED".equals(promoCode.getAttribute("StatusCode")))
count = count +1;
else
countApplied = countApplied +1;
//messages.add(new Message( Message.MessageType.ERROR, "Promo Code = "+promoCode.getAttribute("PromotionCode") +" Status = " + promoCode.getAttribute("StatusCode")));
}
if(count > 0) {
ValidationException ex = new ValidationException(messages);
throw ex;
}
if(countApplied > 1) {
ValidationException ex = new ValidationException(messages);
throw ex;
}
}
承認
承認ルールで「プロモーション・コード適用なし」属性を使用できます。
無料アイテムを追加
また、注文管理拡張機能を使用して注文書にアイテムを追加し、より大量に購入した顧客に報酬を与えることもできます。 たとえば、顧客がAS54888デスクトップ・コンピュータの数量5を注文した場合、同じ注文の別の注文ラインに無料のAS9000ルーターを追加します。
- createLineParamsメソッドのsetProductNumberパラメータを使用して、追加する品目を指定します。
- createLineParamsのsetOrderedQuantityパラメータを使用して、追加する品目の数量を指定します。
- IF文を使用して、新規明細を追加するかどうかを決定するしきい値として使用する数量を指定します。
- createLineParamsを使用して、追加する新しい行にProductNumber、OrderedUOMおよびOrderedQuantity属性を設定できます。 これを使用して他の属性を設定することはできません。
たとえば:
import oracle.apps.scm.doo.common.extensions.CreateLineParams;
if (!"SUBMIT_AFTR_VALID".equals(header.getAttribute("CustomerPONumber"))) return; /* This line is only for testing purposes. Remove it after you successfully test this extension.*/
def createLineParams = new CreateLineParams();
createLineParams.setProductNumber("AS9000");
/* Specify the item.
that you want to add on the new line.*/
createLineParams.setOrderedUOM("Each")
createLineParams.setOrderedQuantity(1); /* Specify the quantity for the item that you're adding on the new line. */
def lines = header.getAttribute("Lines");
while (lines.hasNext()) {
def line = lines.next();
def isClosed = line.isClosed()
def isCanceled = line.isCanceled()
def isTransformed = line.isTransformed()
def transformLines = line.getTransformedLines();
if (isClosed || isCanceled || isTransformed || transformLines.size() != 0) {
continue;
}
if (line.getAttribute("ProductNumber") == "AS54888" && line.getAttribute("OrderedQuantity") >= 5)
/* Specify the quantity that you want to use as the threshold that determines when to add a new line. */
{
line.createNewLine(createLineParams);
}
}
詳細は、オーダー管理機能拡張の作成の概要を参照してください。
ガイドライン
- プロモーションを適用するには、「プロモーション・コード」属性に値を入力する必要があり、オーダーは「価格設定管理」作業領域で設定したプロモーションの条件を満たす必要があります。
- プロモーション・コードには、スペース、数字、特殊文字を含む任意の英数字テキストを使用できます。 すべてのテキスト文字は大文字にする必要があります。
- オーダー管理の販売オーダーの「プロモーション・コード」属性に入力する英数字のテキストは、「価格設定管理」の「プロモーション・コード」属性に入力する英数字のテキストと正確に一致する必要があります。 そうでない場合は、オーダー管理にエラーが表示されます。
- ユーザー・インタフェースを見やすく保つために、プロモーション・コードが30文字を超えないようにすることをお薦めします。
- オーダー管理の販売オーダーの「プロモーション・コード」属性に値を入力したが、「価格設定管理」に一致する値がない場合、オーダー管理作業領域にエラー・メッセージが表示されます。
- オーダー管理では、その他の様々な検証が実行されます。 たとえば、コードが「価格設定管理」に存在し、有効であり、販売オーダーがプロモーションの対象である場合、価格設定によってプロモーションが適用されます。 存在しない場合、有効でない場合、または対象でない場合、オーダー管理ではエラー・メッセージが表示されます。 すでに販売オーダーにプロモーションを適用している場合は、オーダー管理にエラーが表示されます。
- プロモーション・コードはオーダー・ヘッダーにのみ入力できます。 オーダー明細には入力できません。
- 各プロモーションに複数のプロモーション・コードを指定できます。
- オーダー明細に「プロモーション」列を表示し、その列のアイコンをクリックして詳細を取得します。
- インポート前に販売オーダーの価格を設定した場合は、プロモーションを適用できません。 プロモーションを適用できるのは、Oracle Pricingを使用して販売オーダーの価格を設定する場合のみです。
- 明細が「出荷待機中」ステータスでないかぎり、オーダー管理がプロモーションを適用した明細を出荷、履行またはクローズした後は、販売オーダーからプロモーション・コードを削除できません。 明細がそのステータスの場合は、オーダーを改訂してコードを削除できます。
- Order Managementのクラシック・ページでプロモーション・コードを使用するには、編集するオーダーを開き、「処理」→「プロモーション・コードの追加」をクリックします。
- 改訂、取消および返品は、価格設定プロモーションと同様に機能します。
動作は、販売オーダーの価格を設定する要求を価格設定に送信するときにOrder Managementが「プロモーション・コード」属性に値を含めるかどうか、および価格設定管理のプロモーションの「プロモーション・コード」属性に値を指定するかどうかによって異なります。
| オーダー管理がプロモーション・コードを送信するかどうか | 「価格設定管理」でコードを指定したかどうか | 動作 |
|---|---|---|
| はい | はい | 価格設定では、オーダー管理が送信する値が「価格設定管理」で指定した値と一致し、オーダーが条件を満たしている場合にのみ、プロモーションが適用されます。 |
| いいえ | はい | 価格設定ではプロモーションは適用されません。 |
| はい | いいえ | 価格設定ではプロモーションは適用されません。 |
| いいえ | いいえ | 価格設定では、プロモーション・コード全体が無視され、プロモーションが適用されます。 オーダーが条件を満たしている場合、価格設定はプロモーションを適用します。 |