Freeze Price on Sales Orders

If your source order contains price details and you don't want to recalculate or reevaluate them, then you can set the freeze attributes in the source order to Y.

  • Freeze Price

  • Freeze Shipping Charge

  • Freeze Tax

The term freeze means Oracle Pricing won't recalculate charges. For example, if you set Freeze Price to:

  • Y. Don't recalculate charges.

  • N. Recalculate charges.

Here's how Pricing maps these freeze attributes to other attributes on the header entity of the service data object (SDO) that you use for pricing.

Attribute in Source Order

Attribute on Header of Service Data Object

FreezePricing

CalculatePricingChargesFlag

FreezeShippingCharge

CalculateShippingChargesFlag

FreezeTax

CalculateTaxFlag

Pricing will use the values in your import payload to determine price, shipping charges, and tax. The attributes that you use depend on how you import price data. For details, see Import Price Lists and Attributes That You Can Use with Web Services.

Attributes That You Must Include When You Freeze Price

If you freeze pricing, then you must include values for these attributes in your import payload:

  • Header Currency Unit Price
  • Header Currency Extended Amount

If you freeze pricing and your sales order has a recurring charge, then you must include values for these attributes in your import payload:

  • Charge Currency Duration Extended Amount. If you're using file-based data import, then use the Duration Charge Total attribute.
  • Header Currency Duration Extended Amount. If you're using file-based data import, then use the Duration Header Total attribute.

Freeze Price for Coverage Items

If you copy a sales order in the Order Management work area that includes a configured item, and if a coverage covers the configured item, a configure option, or an option class, then Order Management copies each of these coverages to the new sales order.

Order Management copies a coverage that covers an included item differently depending on whether you freeze price, shipping charges, and tax.

Frozen

Not Frozen

Order Management doesn't copy a coverage that covers an included item to the new order.

Order Management copies each coverage that covers an included item to the new sales order.

For details, see Set Up Coverages for Sales Orders.

Freeze Price on Return Orders

If you set the FreezePriceFlag attribute to Y in your import payload for a return order, then the import doesn't calculate price but instead automatically reverses the value that your import payload contains for the ChargeCurrencyUnitPrice attribute. For example, if ChargeCurrencyUnitPrice equals 2960 in your import payload, then the import sets ChargeCurrencyUnitPrice to -2960 (negative 2960) on the return order.

So you must make sure your payload contains accurate data.

Assume you have this import payload.

<ns2:OrderChargeComponent>
  <ns2:HeaderCurrencyCode>SAR</ns2:HeaderCurrencyCode>
  <ns2:HeaderCurrencyExtendedAmount>2960</ns2:HeaderCurrencyExtendedAmount>
  <ns2:PriceElementCode>QP_NET_PRICE</ns2:PriceElementCode>
  <ns2:SequenceNumber>2</ns2:SequenceNumber>
  <ns2:PriceElementUsageCode>NET_PRICE</ns2:PriceElementUsageCode>
  <ns2:HeaderCurrencyUnitPrice>1480</ns2:HeaderCurrencyUnitPrice>
  <ns2:RollupFlag>false</ns2:RollupFlag>
  <ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
  <ns2:SourceChargeComponentIdentifier>SCC2</ns2:SourceChargeComponentIdentifier>
  <ns2:ChargeCurrencyCode>SAR</ns2:ChargeCurrencyCode>
  <ns2:ChargeCurrencyExtendedAmount>2960</ns2:ChargeCurrencyExtendedAmount>
  <ns2:ChargeCurrencyUnitPrice>2960</ns2:ChargeCurrencyUnitPrice>
</ns2:OrderChargeComponent>

This payload will result in an incorrect value for ChargeCurrencyUnitPrice.

ChargeCurrencyUnitPrice should equal ChargeCurrencyExtendedAmount divided by Quantity. In this example, assume the quantity on the return line is 2. You should set ChargeCurrencyUnitPrice to 1480 instead of 2960 because ChargeCurrencyExtendedAmount divided by Quantity is 2960 divided 2, which equals 1480. The import will then automatically set ChargeCurrencyUnitPrice to -1480 to reverse the charge.

Don't Modify Freeze Attributes After You Import and Submit

If you import a sales order and submit it, then import a revision of the order, then you must make sure the values of the freeze attributes in your import payload match the values that you used the first time you imported. For example, if you set the FreezePricing attribute to yes the first time you import, then FreezePricing must contain yes in every subsequent import.