Important
You are browsing upcoming documentation for version 6.1 of OroCommerce, scheduled for release in 2025. Read the documentation for version 6.0 (the latest LTS version) to get up-to-date information.
See our Release Process documentation for more information on the currently supported and upcoming releases.
Configure Global Pricing Settings
Hint
This section is part of the Price Management topic that provides a general understanding of pricing concept in Oro applications.
Out-of-the-box, OroCommerce comes with a Combined Price List (CPL) functionality built for the needs of large B2B businesses with multiple price lists, pricing strategies, price fallbacks, and price merges.
If you operate a business without complex pricing, or use an external third-party pricing system to generate and manage prices outside of OroCommerce, you can switch from the default CPL pricing to a simpler Flat pricing. To use the Flat pricing feature, your system administrator should enable it via the console, not the UI. The pricing configuration page will then have only the General, Pricing Rounding, Price List, and Display Currency settings.
The pricing settings are configured globally, per organization, and per website.
The price list settings (i.e., price list assignment and fallback) are configured on the website, customer group, and customer levels.
To change the default global pricing settings:
Navigate to System > Configuration > Commerce > Catalog > Pricing in the main menu.
To customize the option configuration, clear the Use Default checkbox next to the option and select or type in the new option value.
Click Reset at the top right to roll back any changes to the pricing settings.
Click Save Settings to save the changes.
Oro Pricing
In the General section, enable or disable the default OroCommerce pricing management system.
Enable Oro Pricing — By default, this option is enabled. When disabled, all pricing stored in and managed by the default OroCommerce pricing management system becomes hidden from the application. Disable Oro Pricing when you need to introduce a custom pricing management system for storing and fetching prices.
Pricing Rounding
Price Calculation Precision in Price Lists
Price Calculation Precision in Price Lists — The number of digits allowed in the fractional part of the price calculation rule results when generating price lists in the back-office. The system uses the round half away from zero rule to round the results. For example:
If this value is empty, the system will not apply any rounding until the maximum supported price precision (4 digits) is reached. For example: The price calculated as 5.55555 will be rounded to 5.5556 (4 digits). Below is a table that compares the input price with the results after different levels of precision are applied.
Input Price |
Precision (0) |
Precision (1) |
Precision (2) |
Precision (3) |
Precision (4) |
Precision (Empty) |
---|---|---|---|---|---|---|
5.55055 |
6.00 |
5.60 |
5.55 |
5.551 |
5.5506 |
5.5506 |
10.50515 |
11.00 |
10.50 |
10.51 |
10.505 |
10.5052 |
10.5052 |
The illustration of applying the price precision value (1
) to a Med Price List.
Subtotals Calculation Precision in Sales Documents
Subtotals Calculation Precision in Sales Documents — The number of digits allowed in the fractional part of the subtotals, totals, and taxes calculated in shopping lists, checkout, orders, and RFQs. The value cannot be empty. For example, if the precision for sales documents is set to 2
, and the original price is $5.5556, the subtotal or tax will be rounded to $5.56 (2 digits). The system uses the Pricing Rounding Type setting to decide how to round the value if the fractional part exceeds the allowed precision.
Pricing Rounding Type
Pricing Rounding Type — The rounding type is used when a calculated product price has more digits in the fractional part than allowed by the respective price precision settings. These are the rounding settings used for price and tax calculations that happen in shopping lists, checkout, orders, and RFQs. Please use one of the following options:
Ceil — Always rounds up to the nearest integer that is not less than the price with the fractional part (e.g.,
23.3
,23.5
and23.7
are all rounded up to24
).
Product Price |
Subtotal Precision (0) |
Subtotal Precision (1) |
Subtotal Precision (2) |
Subtotal Precision (3) |
Subtotal Precision (4) |
---|---|---|---|---|---|
5.5505 |
5.60 |
5.56 |
5.551 |
5.5505 |
|
23.3533 |
23.40 |
23.36 |
23.354 |
23.3533 |
|
23.5000 |
23.50 |
23.50 |
23.50 |
23.50 |
|
23.5253 |
23.60 |
23.53 |
23.526 |
23.5253 |
|
23.7577 |
23.80 |
23.76 |
23.758 |
23.7577 |
|
10.5051 |
10.60 |
10.51 |
10.506 |
10.5051 |
Floor — Always rounds down to the nearest integer that does not exceed the price with the fractional part (e.g.,
23.3
,23.5
or23.7
is rounded down to23
).
Product Price |
Subtotal Precision (0) |
Subtotal Precision (1) |
Subtotal Precision (2) |
Subtotal Precision (3) |
Subtotal Precision (4) |
---|---|---|---|---|---|
5.5505 |
5.50 |
5.55 |
5.55 |
5.5505 |
|
23.3533 |
23.30 |
23.35 |
23.353 |
23.3533 |
|
23.5000 |
23.50 |
23.50 |
23.50 |
23.50 |
|
23.5253 |
23.50 |
23.52 |
23.525 |
23.5253 |
|
23.7577 |
23.70 |
23.75 |
23.757 |
23.7577 |
|
10.5051 |
10.50 |
10.50 |
10.505 |
10.5051 |
Half Down — Rounds down if the fractional part is less or exactly 0.5 (
X ≤ 0.5
). Rounds up otherwise (X > 0.5
). For instance,23.3
,23.5
are rounded down to23
, while23.7
is rounded up to24
.
Product Price |
Subtotal Precision (0) |
Subtotal Precision (1) |
Subtotal Precision (2) |
Subtotal Precision (3) |
Subtotal Precision (4) |
---|---|---|---|---|---|
5.5505 |
5.5505 |
||||
23.3533 |
23.3533 |
||||
23.5000 |
23.50 |
23.50 |
23.50 |
23.50 |
|
23.5253 |
23.5253 |
||||
23.7577 |
23.7577 |
||||
10.5051 |
10.5051 |
Half Up — Rounds up if the fractional part is exactly 0.5 or more (
X ≥ 0.5
). Rounds down otherwise (X < 0.5
). For instance,23.3
is rounded down to23
, while23.5
and23.7
are rounded up to24
.
Product Price |
Subtotal Precision (0) |
Subtotal Precision (1) |
Subtotal Precision (2) |
Subtotal Precision (3) |
Subtotal Precision (4) |
---|---|---|---|---|---|
5.5505 |
5.5505 |
||||
23.3533 |
23.3533 |
||||
23.5000 |
23.50 |
23.50 |
23.50 |
23.50 |
|
23.5253 |
23.5253 |
||||
23.7577 |
23.7577 |
||||
10.5051 |
10.5051 |
Half Even — Rounds up if the fractional part is more than 0.5 (
X > 0.5
). Rounds down if the fractional part is less than 0.5 (X < 0.5
). Rounds to the nearest even integer if the fractional part is exactly 0.5 (X = 0.5
). For instance,23.5
is rounded up to24
(odd to even integer), while24.5
is rounded down to24
(the nearest even integer).
Product Price |
Subtotal Precision (0) |
Subtotal Precision (1) |
Subtotal Precision (2) |
Subtotal Precision (3) |
Subtotal Precision (4) |
---|---|---|---|---|---|
5.5505 |
5.55 (even integer) |
5.5505 |
|||
23.3533 |
23.3533 |
||||
23.5000 |
24.00 (even integer) |
23.50 |
23.50 |
23.50 |
23.50 |
23.5253 |
23.5253 |
||||
23.7577 |
23.7577 |
||||
10.5051 |
10.5051 |
Hint
For more information on how rounding is applied to taxes, refer to the Tax Calculation documentation.
Default Price Lists
In the Default Price Lists section, configure default price lists, their priority, and merge strategy to get the necessary resulting combination of prices that are shown on the websites:
Price Lists — A set of default price lists that can be used for price calculation. A website, a customer group, and a customer can have their own set of price lists that overrides the default configuration. Remember that the customer group configuration overrides the config on the website level, while the customer configuration overrides the one on the customer group level (website < customer group < customer).
To add a price list to the default price lists, click Add Price List and select the price list in the newly added line. The price list is appended to the bottom of the list and, initially, has lower priority than the existing price lists.
To change the price list priority, click and hold the Sort icon, and drag the price list up or down the list.
To control the way prices are merged into the combined price list, select or clear the Merge Allowed option for the price lists. The option is shown only for the Merge by priority price selection strategy. When merge is allowed, the prices for the tiers and units that are missing in the higher priority price list can be covered by the prices from the lower priority price lists that should support price merge too.
To delete a price list from the default price lists, click the Deactivate at the end of the corresponding row.
Price List Calculations
In the Price List Calculations section, specify an offset in hours that helps launch combined price list recalculation before the price change is activated.
Offset Of Processing CPL Prices — An offset (in hours) from the scheduled price change that determines how early the price list recalculation and reindex should happen to prepare the actual prices in the OroCommerce storefront for the scheduled launch. Delayed recalculation helps spread resource-consuming tasks in time and launch them only when the price is going to be used soon. This eliminates unnecessary intermediate recalculation every time the price is updated between the time the price list schedule is added and the time when recalculation is expected to start (considering the offset from the scheduled launch). If you update the price once a week, set the offset to 40 (hours). If you update prices more frequently, set the value that approximately matches the delay between the updates of the price information. It can be aligned with the data synchronization process between your OroCommerce and the external ERP system. For continuous price updates, use the minimal recommended offset value of 0.083 (5 minutes).
Price Selection Strategy
In the Price Selection Strategy section, configure the following setting:
Pricing Strategy — The strategy used for matching prices. OroCommerce searches for the closest match of the product price in the selected units and currency for the requested product quantity in one of the following ways:
Using Minimal Price strategy — From the default or customized set of price lists, OroCommerce collects all product prices that match product units, currency, and the requested product quantity, and selects the minimal price per tier and per unit as the one to show to the customer user:
Using Merge by priority strategy — OroCommerce walks through the default or customized set of price lists, starting with the price list of the top priority and moving along to those with the lower priority.
Hint
See the Price Selection Strategy article for more details about strategy concepts and differences.
When the product price is initially found in the price list with the Merge Allowed option enabled, the price and the price list priority are collected for further evaluation and merge. Prices for other units and for other tiers of product quantity can be collected from the same price list and from other price lists with the Merge Allowed option enabled. The tier/unit prices with the highest priority are shown to the customer user.
When the product price is initially found in the price list with the Merge Allowed option disabled, OroCommerce collects the product prices for all units and for all tiers of product quantity from this price list only. Other price lists are not taken into account, as price merge is not allowed. The units and tiers of quantity where the price is missing are hidden from the customer user.
Display Currencies
Note
The Display Currencies setting is only available in the Enterprise edition.
In the Display Currencies section, enable all or some currencies from the allowed currencies list to be used in the OroCommerce storefront and back-office.
Enabled Currencies — The subset of allowed currencies that is available for the customer user by default.
Default Currency — The currency that is used by default to show prices in the storefront.
Minimum Sellable Quantity
In the Minimum Sellable Quantity, you can enable the following options:
Allow fractional quantity price calculation on quantities smaller than the minimum quantity priced in a price list(s) — Applicable only to the product units that allow fractional quantity input (unit precision > 0). The implied minimum sellable quantity is 1 (one whole unit). The Allow fractional quantity price calculation on quantity less than 1 whole unit configuration option can be enabled to go lower than 1 unit. The Minimum quantity to order for specific products can be used to prevent purchases of fractional quantities smaller than the desired sellable quantity either way.
Allow fractional quantity price calculation on quantity less than 1 whole unit — Applicable only to the product units that allow fractional quantity input (unit precision > 0). The Minimum quantity to order for specific products can be set to 1 to prevent purchases of fractional quantities smaller than 1 whole unit.
Allow price calculation on quantities smaller than the minimal quantity priced in a price list(s) — Applicable to the product units that allow only whole numbers for quantity. The Minimum quantity to order for specific products can be used to prevent purchases of quantities smaller than the desired sellable quantity.
Related Articles