Every ERP stores and applies prices, but they do it in different ways. NetSuite uses price levels on a base price, SAP uses condition records in a pricing procedure, Business Central uses sales price lists, and Odoo uses pricelists with rules. All of them answer the same question well: given this customer, item and quantity, which stored price applies? None of them answers the harder one: what should that price be?
How the main ERPs handle pricing
- NetSuite
Price levels as a markup or discount on base price, quantity pricing, and customer item prices.
- SAP S/4HANA
Condition types and records, applied in order by a pricing procedure.
- Business Central
Sales price lists by customer, price group or campaign, plus line and invoice discounts.
- Odoo
Pricelists with rules: fixed prices, discounts or formulas on cost or another list.
- QuickBooks
Price levels in Desktop and price rules in Online, for simpler catalogues.
NetSuite: price levels and quantity pricing
NetSuite starts from a base price per item. Price levels are named markups or discounts on it, such as "Contractor, 10% below base", and each customer has a default level. Quantity pricing adds breaks, and customer-specific item pricing overrides the level for chosen items. For more complex rules, NetSuite also offers Advanced Pricing, compared with Elastly in NetSuite Advanced Pricing vs Elastly.
It works well for a clean catalogue with a few levels. The strain shows as levels multiply and as exceptions pile up on customer records, where nobody reviews them.
SAP: the condition technique
SAP prices every sales line through a pricing procedure: an ordered list of condition types, such as the base price, customer discounts, surcharges and freight. Each condition type finds its value through an access sequence, which checks the most specific record first, such as this customer and this material, then falls back to broader ones.
It is the most flexible of the four and the hardest to change. Adding a new kind of discount usually means configuration work, and the records themselves still have to be maintained by hand.
Business Central: price lists
Microsoft Dynamics 365 Business Central keeps sales prices in price lists that can apply to all customers, a customer price group, one customer or a campaign, with start and end dates. Line discounts and invoice discounts sit alongside them. The system picks the best price among the lists that apply.
Odoo: pricelists with rules
Odoo pricelists hold rules per product, category or all products: a fixed price, a percentage discount, or a formula based on cost or another pricelist, with minimum quantities and date ranges. Each customer has a pricelist. It is quick to set up and readable, which makes it popular with smaller distributors.
What every ERP does well
- Apply the right stored price for a customer, item, quantity and date.
- Hold contract prices and quantity breaks.
- Keep an audit trail of who changed a price record.
- Calculate the margin on a line once cost is known.
Where ERP pricing stops
The result is the same in every ERP after a few years: thousands of price records, levels and exceptions, maintained by hand, that drift away from cost and from what customers actually accept. Reps work around them with discounts on every quote.
The ERP is where prices live. It is not where they should be decided.
Pricing on top of the ERP
The common fix is a pricing layer that sits next to the ERP rather than replacing it. It reads items, costs, customers, price levels and quote history from the ERP, recommends a price for each quote line with the reasons, and writes the price back into the quote or sales order. The ERP stays the system of record. The prices in it get better.
Elastly works this way with NetSuite today, and with the commerce platforms many distributors run beside their ERP. The integrations page lists what connects and what syncs in each direction.
Price a quote on top of your ERP
Common questions
Each item has a base price, and each price level is a named markup or discount on it, such as 10% below base for contractors. Customers are assigned a default price level, quantity pricing can set lower prices for larger orders, and customer-specific item prices override the level for chosen items. The level decides the price; nothing in it learns from results.
A pricing procedure is the ordered list of condition types SAP applies to a sales document line: the base price, then discounts, surcharges, freight and taxes. Each condition type looks up condition records through an access sequence, for example a price for this customer and material first, then a price for the material alone.
Not on its own. ERPs apply prices that someone has already decided and stored as levels, records or lists. They can hold many rules, but they do not learn from won and lost quotes or explain a recommended price. Dynamic pricing usually runs in a pricing layer that reads cost and customer data from the ERP and writes the price back to the quote.