Import Pricing Details
Specify how to use price details when you import a sales order.
Example
Assume you have two charges for the order line:
|
Original Order |
Import Payload |
|---|---|
|
UnitListPrice equals 100. Shipping charges equal 20. Tax equals 10. |
Price equals 120. Shipping charges equal 24. Tax equals 12. |
Assume:
-
Current price for the item is 130.
-
Shipping charges at runtime are price multiplied by 20%.
-
Tax calculated at runtime is total net price plus shipping multiplied by 10%.
Values That You Can Use for Freeze Attributes with Unreferenced Returns
Use these values when your import includes an order line or a return line that doesn't reference the original sales order:
|
FreezePriceFlag |
FreezeShippingChargeFlag |
FreezeTaxFlag |
Description |
|---|---|---|---|
|
Y |
Y |
N |
Pricing uses the price and shipping charges from the import payload, but calculates the tax. Price equals 120. Shipping charges equal 25. Tax equals 14.50. |
|
Y |
N |
N |
Pricing uses the price from the payload, but calculates shipping and tax. Price equals 120. Shipping charges equal 24. Tax equals 14.40. |
|
N |
Y |
N |
Pricing uses the shipping charges from the payload, but gets the price from your set up in Pricing Administration and calculates tax. Price equals 130. Shipping charges equal 24. Tax equals 15.40. |
Values That You Can't Use for Freeze Attributes with Unreferenced Returns
Use these values use when your import includes an order line or a return line that doesn't reference the original sales order:
|
FreezePriceFlag |
FreezeShippingChargeFlag |
FreezeTaxFlag |
Description |
|---|---|---|---|
|
N |
N |
Y |
Pricing can calculate the price and shipping, but can't validate that the imported tax is correct for the price and the shipping it calculates. |
|
Y |
N |
Y |
Pricing can calculate shipping, but can't validate that the imported price and tax is correct for the shipping it calculates. |
|
N |
Y |
Y |
Pricing can calculate shipping and tax, but can't validate that the imported price is correct for the shipping and tax that it calculates. |
Referenced Return Line
Assume your import includes a return line that does reference the original sales order:
|
FreezePriceFlag |
FreezeShippingChargeFlag |
FreezeTaxFlag |
Description |
|---|---|---|---|
|
Y |
Y |
Y |
Pricing ignores the original sales order. Instead, it uses values from the import payload. Price equals 120. Shipping charges equal 24. Tax equals 12. |
|
Y |
N |
Y |
If at least one of these attributes equals N, then Pricing prices everything from the original sales order, and ignores price, shipping charges, and tax that the import payload contains. Price equals 100. Shipping charges equal 20. Tax equals 10. |
Required Attributes
If you freeze pricing, then you must include values for required attributes in your import payload. For details, see Freeze Price on Sales Orders.
Validate Charge and Charge Components for Sales Orders
Use the Manage Profile Options task in the Setup and Maintenance work area to manually add and enable this profile option:
| Attribute | Value |
|---|---|
| Profile Name | FOM_VALIDATE_CHARGES_FULFILLMENT_RESPONSE |
| Profile Display Name | Validate Charges and Charge Components for Sales Orders |
| Application | Order Management |
| Module | Manage Orders |
| Description | Validate attributes that involve charges and charge components in the response that you send to Order Management when you integrate with other systems. |
Order Management does a variety of validations when you enable the profile option. It will make sure:
- Your response has only one SourceChargeIdentifier.
- Your response has at least one charge where the ApplyTo attribute contains PRICE.
- The order line has a unique value for each ChargeDefinitionCode attribute. For example, the line has only one ChargeDefinitionCode that equals QP_SALE_PRICE.
- Each usage charge has a rate plan.
If a charge's RollupFlag equals N, then it makes sure no other charges in your response have:
- PriceType that contains RECURRING
- A primary charge where the ApplyTo attribute contains PRICE or SHIPPING
- The same value for the ChargeDefinitionCode attribute
And it will apply these conditions:
- If the IntegratedSubscription attribute contains N, then make sure the PriceTypeCode doesn't contain ORA_USAGE.
- If the item isn't a subscription or a coverage, then make sure the response doesn't include attributes that you can use only with a subscription or a coverage, such as the Contract Start Date or Duration.
- If the order line includes attributes that you use with a subscription or coverage, then make sure the feature that you need for a subscription or coverage is enabled.
If your response fails any of these validations, then Order Management will reply with an error message that includes details about the failure and how to fix it.
Order Management applies these validations only on order lines that have a charge. If the line doesn't have a charge, then Order Management doesn't do the validations.
The Validate Charge and Charge Components for Sales Orders profile option validates each of the attributes that involve charges and charge components. You specify these attributes in the response that you send to Order Management from the Fulfillment Response Service or the Order Fulfillment Response Service. For details about them, see Use REST API and Web Services to Integrate Order Management.
We recommend that you leave this profile at its default Yes value. If you disable it, then Order Management won't validate values for the charge and charge components that you import.
If you enable the profile, then you must make sure your import payload meets the validation requirements.
Validation for Each Order Charge Entity
| Attribute | Must Include in Payload | Must Already Exist in Oracle Pricing |
|---|---|---|
| ApplyTo | Y | Y |
| ChargeDefinitionCode | Y | Y |
| ChargeSubTypeCode | Y | Y |
| ChargeTypeCode | Y | Y |
| PricePeriodicityCode | Y | Y |
| PriceTypeCode | Y | Y |
| SourceChargeIdentifier | Y | N |
Note
- Must Include in Payload means you must include the attribute in your import payload.
- Must Already Exist in Oracle Pricing means the value that you specify for the attribute in your import payload must already exist in Oracle Pricing's data.
- Make sure the lookup code that you specify in the ChargeSubTypeCode attribute is enabled in the ORA_QP_CHARGE_SUBTYPES pricing lookup.
- Make sure the lookup code that you specify in the ChargeTypeCode attribute is enabled in the ORA_QP_CHARGE_TYPE pricing lookup.
- Include pricePeriodicityCode only if you have a recurring charge.
You must make sure a charge definition exists in Oracle Pricing for the combination of values that you provide in your import payload for these attributes:
- ChargeDefinitionCode
- ChargeTypeCode
- ChargeSubtypeCode
- PriceTypeCode
Validation for Each Charge Component Entity
| Attribute | Must Include in Payload | Must Already Exist in Oracle Pricing |
|---|---|---|
| ChargeCurrencyCode | Y | Y |
| HeaderCurrencyCode | Y | Y |
| HeaderCurrencyDurationExtendedAmount | Y | N |
| HeaderCurrencyExtendedAmount | Y | N |
| HeaderCurrencyUnitPrice | Y | N |
| PriceElementCode | Y | Y |
| PriceElementUsageCode | Y | Y |
| SourceChargeComponentIdentifier | Y | N |
Note
- Make sure the charge doesn't include more than one list price or more than one net price.
- The Order Fulfillment Response Service uses ChargeInterfaceKey instead of SourceChargeComponentIdentifier.
- Include HeaderCurrencyDurationExtendedAmount only if you have a recurring charge.
- Use PriceElementUsageCode only for list price or net price.
Validation for Each Charge Tier Entity
| Attribute | Must Include in Payload | Must Already Exist in Oracle Pricing |
|---|---|---|
| AdjustmentAmount | Y | N |
| ApplicationMethod | Y | N |
| ApplicationMethodCode | Y | N |
| BlockSize | Y | N |
| SourceOrderChargeTierId | Y | N |
| TierFrom | Y | N |
| TierSequenceNumber | Y | N |
| TierTo | Y | N |
Note
- If you include a value in ApplicationMethod, then you must also include a value in BlockSize.
- Make sure the value in TierTo is equal to or greater than the value in TierFrom.