# Price Lists and Pricing Rules

Use price lists to store your standard buying and selling rates. Use pricing rules when a rate, discount, margin, or free product should apply only under defined conditions.

This guide explains how to set up a dependable base price, add controlled exceptions, test the result, and update prices safely.

## What each record controls

| Record | Use it for | Example |
|--------|------------|---------|
| **Price List** | The currency and purpose of a group of prices | Standard Selling, Standard Buying, or a regional selling list |
| **Item Price** | A base rate for one item in one price list | An item sells for 25.00 in Standard Selling |
| **Pricing Rule** | A conditional rate, discount, margin, or product benefit | Give a customer group 10% off selected items during a defined period |

A Price List does not set rates by itself. Each base rate is stored as an Item Price. Pricing Rules are evaluated after NexWave finds the applicable price list and Item Price.

## Before you start

Confirm the following:

* You have permission to view and edit Price List, Item Price, and Pricing Rule records.
* Each item has the required **Stock UOM** and any necessary UOM conversion factors.
* You know whether the prices are for buying, selling, or both.
* You know the currency for the new prices.
* You have reviewed any party-specific prices and existing Pricing Rules that may overlap.
* You have exported the affected Item Prices before a large update.

Test price changes in a draft transaction before using them in live work. Submitted transactions retain the rates stored on those documents.

## 1. Review your default price lists

NexWave can select a price list from several places. Review the defaults that apply to your workflow before adding prices:

* **Default Price List** in Selling Settings
* **Default Buying Price List** in Buying Settings
* **Default Price List** on a Customer or Customer Group
* **Price List** on a Supplier

A party-specific default normally takes precedence over the system default. Always confirm the selected **Price List** on the draft transaction.

Also review these automation settings before a bulk price change:

* **Auto Insert Item Price If Missing**
* **Update Existing Price List Rate**
* **Update Price List Based On**
* **Disable Last Purchase Rate**

These settings can create or update Item Prices from transactions, or affect the rate used when no buying price is found. If you do not want transactions to maintain price masters, disable the relevant automation before testing.

## 2. Create or review a Price List


1. Search for **Price List**.
2. Open an existing record, or select **Add Price List**.
3. Enter a clear **Price List Name**.
4. Select the **Currency**.
5. Enable **Buying**, **Selling**, or both, as required.
6. Confirm **Enabled** is selected.
7. Save the record.

 ![Price List settings and Add or Edit Prices action](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC8wNzk1MjJlMC1hN2UxLTRmMzctYjkxYS03Njk4NDIzYTcwMjkvMDEtcHJpY2UtbGlzdC1zZXR0aW5ncy5qcGciLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MjYyMTgwMCwiZXhwIjoxNzkyNzA4MjAwfQ.2u5mnZWU6D0TiJk-x_HezFUKQv4_y6SbTXbSK43TaP8)

Use a separate Price List for each currency. Changing the currency on a populated Price List does not convert the existing numeric rates. Create a new Price List when you need the same products priced in another currency.

## 3. Add base Item Prices

From the Price List, select **Add / Edit Prices** to review the existing rates.

To add one price:


1. Select **Add Item Price**.
2. Choose the **Item Code**.
3. Confirm the **Price List**.
4. Enter the **Rate** and confirm the **Currency**.
5. Select the **UOM** when the price applies to a particular unit.
6. For a party-specific price, select a **Customer** or **Supplier**.
7. If the price is time-limited, enter **Valid From** and **Valid Upto**.
8. Save the Item Price.

 ![New Item Price form](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC8yZmM1ODg0MS0zYTE5LTRiOTMtOGRkNy03MWMwNjkyMDY4MWIvMDItaXRlbS1wcmljZS1mb3JtLmpwZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkyNjIxODAwLCJleHAiOjE3OTI3MDgyMDB9.6SgYtcGV0z8CH0fOkJmaTH9ObiX-38Ae5aUrpkRKHBE)

### Party-specific prices

A Customer-specific or Supplier-specific Item Price is preferred when that party is selected on a transaction. A general Item Price remains the fallback for other parties.

Keep party-specific prices limited to genuine agreements. Too many overlapping records make the selected rate difficult to predict and maintain.

### Date ranges and replacements

For a future price change:


1. Give the new Item Price a future **Valid From** date.
2. Set **Valid Upto** on the previous Item Price so the periods do not overlap.
3. Test a transaction before, on, and after the change date.

Avoid multiple Item Prices for the same item, price list, party, UOM, quantity range, and overlapping date range.

### Bulk price updates

Use Data Import when many Item Prices must change:


1. Export the existing Item Price records, including their **ID** values.
2. Keep an untouched backup of the export.
3. Change only the required fields.
4. Select **Update Existing Records** when importing.
5. Test a small sample before importing the complete file.
6. Review the import result and confirm that no duplicate Item Prices were created.

Do not use an insert import for an update. An insert creates new records instead of changing the records identified by **ID**.

## 4. Add a Pricing Rule for a controlled exception

Use a Pricing Rule when the result depends on conditions such as the item, item group, customer group, supplier, quantity, value, date, company, or transaction type.


 1. Search for **Pricing Rule**.
 2. Select **Add Pricing Rule**.
 3. Enter a descriptive **Title**.
 4. Set **Apply On** to the product scope you need.
 5. Set **Price or Product Discount**.
 6. Select the affected item, item group, brand, or transaction condition.
 7. Enable **Selling** or **Buying**.
 8. Under **Party Information**, set **Applicable For** and select the required party or party group.
 9. Add **Min Qty**, **Max Qty**, **Min Amt**, or **Max Amt** only when the rule needs a threshold.
10. Set **Valid From**, **Valid Upto**, **Company**, and **Currency** where required.
11. Under **Rate or Discount**, enter the fixed **Rate**, **Discount Amount**, **Discount Percentage**, or margin.
12. Select **For Price List** when the rule should apply only to a particular price list.
13. Save the rule.

 ![New Pricing Rule form](https://docs.nexwaveapp.com/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2YxMTg5ZTEzLTdlMTQtNDA1ZC04MDI1LWMxZmI0Y2Y2MTg0ZC82NTllNDlkNC05NGQ0LTQwYWQtOWJhMi04N2FmOTYzMjkwM2MvMDMtcHJpY2luZy1ydWxlLWZvcm0uanBnIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTI2MjE4MDAsImV4cCI6MTc5MjcwODIwMH0.TQTookP8JFsiYrn8gotsA_6zUvgNfFurnqJtM6Nv72I)

A fixed **Rate** in a Pricing Rule replaces the applicable list rate for the matching line. A discount or margin changes the result calculated from the applicable base price.

### Quantity thresholds

**Min Qty** and **Max Qty** use the transaction quantity expressed in the item's stock UOM. They do not refer to the quantity currently held in stock.

Test values immediately below, at, and above each threshold.

### Keep the first version simple

While preparing a complex rule, select **Disable** until its conditions have been reviewed. Start with the narrowest clear scope, then test it before enabling additional conditions.

Avoid using several advanced options in the first version of a rule. Options such as **Mixed Conditions**, **Is Cumulative**, coupon-based rules, and dynamic conditions should be introduced only when the business requirement and test cases are clear.

## 5. Control overlapping Pricing Rules

When more than one rule can match the same line:


1. Review whether both rules are necessary.
2. Narrow the item, party, price list, company, currency, quantity, value, or date scope.
3. Select **Has Priority** and set **Priority** when one rule must win.
4. Give the intended winning rule the higher Priority value.
5. Use **Apply Multiple Pricing Rules** only when the discounts are deliberately designed to combine.
6. Test every intended combination in a draft transaction.

An Item Code rule is more specific than an Item Group or Brand rule. Do not rely only on specificity when two rules still overlap. Make the scope or Priority explicit.

## 6. Test the result in a draft transaction

Use a draft Quotation or Sales Order for selling prices. Use a draft Supplier Quotation or Purchase Order for buying prices.


1. Select the Customer or Supplier first.
2. Confirm the **Price List**, **Currency**, and **Company**.
3. Add the item and confirm its UOM.
4. Enter the test quantity and transaction date.
5. Review the line's **Price List Rate**, margin, discount, **Rate**, and **Pricing Rules**.
6. Change the quantity and date to test every threshold and validity boundary.
7. If needed, select **Ignore Pricing Rule** to compare the base Item Price with the rule result.
8. Remove or cancel the draft test document when the review is complete.

**Ignore Pricing Rule** bypasses Pricing Rules. It does not change the Price List or Item Price.

Do not submit a transaction only to test pricing.

## Buying price checks

Buying prices require a few additional checks:

* Confirm the Supplier's **Price List** and transaction currency.
* Check whether a Supplier-specific Item Price exists.
* Review **Disable Last Purchase Rate** in Buying Settings if a previous purchase rate appears when no suitable Item Price is found.
* Confirm that the selected UOM matches the unit quoted by the Supplier.
* Compare the final Rate with the Supplier's current agreement before submitting the transaction.

## Review checklist

Before releasing a pricing change:

* The correct Price List is enabled for buying or selling.
* Its currency is correct.
* General and party-specific Item Prices do not have unintended overlaps.
* Date ranges do not overlap.
* UOM and quantity thresholds have been tested.
* Pricing Rules have a clear item, party, company, currency, and date scope.
* Any overlapping rules have an intentional Priority.
* A sample transaction shows the expected Price List Rate, discount or margin, and final Rate.
* A small import sample completed successfully before any bulk update.
* A second person has reviewed high-impact changes.

## Troubleshooting

| Problem | What to check |
|---------|---------------|
| No rate is returned | Confirm the transaction's Price List, currency, item, UOM, date, party, and whether a matching Item Price is enabled and valid. |
| The wrong Price List is selected | Review the Customer, Customer Group, Supplier, Selling Settings, and Buying Settings defaults. |
| One party receives an unexpected rate | Check for Customer-specific or Supplier-specific Item Prices and party-scoped Pricing Rules. |
| The rate changes when the UOM changes | Confirm the Item Price UOM and the item's UOM conversion factors. |
| A Pricing Rule does not apply | Check **Disable**, **Selling** or **Buying**, item scope, party scope, company, currency, dates, quantity, amount, and **For Price List**. |
| An unexpected rule wins | Review overlapping scopes, **Has Priority**, **Priority**, and **Apply Multiple Pricing Rules**. |
| A bulk import creates duplicates | Use **Update Existing Records** and include each existing Item Price **ID**. |
| Transactions create or change Item Prices | Review the automatic Item Price settings in Stock Settings. |
| The screen is correct but the print is unclear | Review the Print Format. Standard prints generally show the final Rate, so include additional pricing fields only when the format has been reviewed. |

## Related documentation

* [Import Data](/doc/091d8918-347e-4d54-a769-8c52f7260e09)
* [Selling](/doc/9611c59c-fa49-4d68-ae8d-435ff4e26eed)
* [Inventory Item Record](/doc/fe202d8f-a9bf-4698-90d9-5e7be5b1e632)