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.

This section applies to both OSF and Storefront Classic. This section applies to Open Storefront Framework (OSF) and Storefront Classic.

Understand tax calculations with loyalty points

The taxCalculationType property of the loyalty points price list group determines how tax calculation is performed.

There are three different types of conversion for the Avalara and Vertex tax processor integrations. 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.

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.