Understand tax and shipping calculations with loyalty programs

Oracle Commerce can be configured to provide shipping and tax calculations in both loyalty points or in monetary currency.

Currency conversion is enabled by setting the isCurrencyConversionEnabled flag to true in the PriceListGroupManager.

Understand tax calculations with loyalty points

There are three different types of conversion for Avalara and Vertex processors. Depending on the configuration made in the price list group, an administrator can configure the price list group to perform the conversion, skip the tax call entirely, or make the tax call without performing any currency conversions.

Whenever an order contains a combination of loyalty points and monetary currency, the secondaryCurrencyCode and ExchangeRate are added to the order.

Currency conversion is enabled by setting the isCurrencyConversionEnabled flag to true in the PriceListGroupManager. When conversion is enabled, the shipping and commerce line item amounts are converted to currency before being sent to Avalara and Vertex tax systems.

For details additional about creating and activating price groups, see Configure Price Groups for additional information on working with price list groups.

For information on configuring tax processor integrations, refer to Configure Tax Processing and Configure Tax Processors.

Understand shipping calculations with loyalty points

Shipping is calculated in the same currency as the order. In loyalty points-based orders, shipping is calculated in loyalty points. The CloudShippingPriceInfo stores the shipping value that has been converted to a loyalty-based order.

The shipping price is determined for each shipping method by calling pre-calculators, applying promotions and then applying any shipping surcharges. For detailed information on setting up shipping methods, refer to Configure Shipping. The final value is converted to the currency amount and set within the SecondaryCurrencyShippingAmount property.

How order totals are calculated

When a secondary currency is identified for tax and/or shipping, the PriceInfo stores the total shipping/tax amounts that are applied to the order in the secondaryCurrencyAmount property. The currency conversion amounts for shipping and tax are also set within the order using the priceTaxForOrderTotal and priceShippingForOrderTotal property.