> For the complete documentation index, see [llms.txt](https://docs.xorosoft.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xorosoft.com/xoroerp-1/utilities/pricing-rules/what-is-a-pricing-rule/creating-pricing-rules.md).

# Creating Pricing Rules

Creating pricing rules involves entering the details of the recipient and item and defining the criteria for the rule. Pricing rules can be created based on a variety of factors, including production costs, competition, and profit margins. They play a crucial role in guaranteeing that item prices remain competitive, attractive, and profitable for the business.

### Entering a Pricing Rule

When creating a pricing rule, you will begin by entering the header-level information, such as rule name, recipient type, address type, item type, tag type, rule type, and priority. After the basic information is entered, you can proceed to set the criteria for the rule.

{% hint style="info" %}
To create a pricing rule, go to **Menu > Utilities > Pricing Rule**
{% endhint %}

<figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2Fl277vwLjc85CoarW4Ul6%2Fimage.png?alt=media&amp;token=77cce733-d33d-427e-b800-fc9fe40b3884" alt=""><figcaption></figcaption></figure>

#### Pricing Rule Header Fields

<table><thead><tr><th width="189">Field</th><th>Description</th></tr></thead><tbody><tr><td>Active</td><td>Check this box to mark this rule as "Active". Please note that only an active pricing rule will be applied by the system.</td></tr><tr><td>Show As Discount</td><td>Check this box to allow users to display the rule as a discount.</td></tr><tr><td>Rule Name</td><td>Give a name to the pricing rule here.</td></tr><tr><td>Rule For</td><td>This field allows you to select whether you want to create a rule for the "Sales" or "Purchase" workflow (Please Note: Turn on the "<strong>Enable pricing rules in purchase modules"</strong> app config to enable the pricing rule in purchase modules).</td></tr><tr><td>Recipient Type</td><td>Select the recipient for this rule. “Customer” will only apply the rule to a specific customer, “Customer Group” will only apply the rule to a group of customers, and “Any” will apply the rule to all customers.</td></tr><tr><td>Recipient</td><td>If “Any” is not selected for “Recipient Type”, then enter a “Customer” or “Customer Group” that this rule will apply to.</td></tr><tr><td>Address Type</td><td>Select the address type this rule will apply to. "Ship To Name" will apply the rule based on the shipping address name, "Ship To Zip Code" will apply the rule based on the zip code, and "Any" will apply to all addresses.</td></tr><tr><td>Address</td><td>If "Any" is not selected for the "Address Type", then enter a "Ship Address Name" or "Address Zip Code" that this rule will apply to.</td></tr><tr><td>Item Type</td><td>Select the item type this rule will apply to. “Item” will only apply to a specific item, “Item Group” will only apply to a group of items, “Item Brand” will apply to all items within a brand, and “Any” will apply to all items.</td></tr><tr><td>Item</td><td>If “Any” is not selected for “Item Type”, then enter an “Item”, “Item Group”, or “Item Brand”, that this rule will apply to.</td></tr><tr><td>Tag Type</td><td>Select the tag type this rule will apply to. "Customer" will allow you to apply the rule based on customer tag(s), "Item" will allow you to apply the rule based on item tag(s), "Task" will allow you to apply the rule based on task tag(s), and "Any" apply to all tags.</td></tr><tr><td>Tags</td><td>If "Any" is not selected for "Tag Type", then enter the "Customer Tags", Item Tags" or "Task Tags".</td></tr><tr><td>Rule Type</td><td><p>Select the type for the pricing rule. There are 2 options here: “Price Level” and “Restriction”.</p><ul><li><strong>Price Level</strong>: Use a Pricing Level if you want to override the default Standard Unit Price that is fetched in Sales modules. For instance, if you want a particular customer to have a set discount on a brand of items, use a Pricing Level. With an active Pricing Level, you will notice the default Standard Unit Price is overridden with the criteria that you have set.</li><li><strong>Pricing Restriction</strong>: Use a Pricing Restriction if you want to restrict how low Sales Reps in the system can sell items to customers. For instance, if you don’t want any item to be sold below cost you can set up a Pricing Restriction for this. Restrictions can then be manually overridden and approved by management.</li></ul></td></tr><tr><td>Priority Number</td><td>Enter the priority for this pricing rule. The bigger number takes higher priority over smaller numbers for conflicting rules.</td></tr></tbody></table>

### Adding the Pricing Rule Criteria

Once the basics are set, you will proceed to add the criteria based on which the pricing rule will be applied.

Pricing Rules support both standard pricing calculations and **Catch Weight** pricing calculations. For Catch Weight items, you can define a **Weight Range** to apply the Pricing Rule only when the configured item weight falls within the specified range. The system automatically selects the appropriate Cost Type and calculates the transaction price accordingly.

<figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2F7LkgkNgU47mrzD2GcLYg%2Fimage.png?alt=media&amp;token=8796b0ee-2454-4301-861f-e6cbba965a92" alt=""><figcaption></figcaption></figure>

#### Pricing Rule Criteria Fields

<table><thead><tr><th width="190">Field </th><th>Description</th></tr></thead><tbody><tr><td>Price Currency</td><td>Select the currency for the rule.</td></tr><tr><td>Price Adj Type</td><td><p>Select the pricing equation to apply for this rule. Choose from the following options:</p><ol><li><strong>Markup:</strong> Select this option to increase the item price. The new price will be equal to [Cost Type + [Value % * Cost Type]]. For example, if you set a 10% markup on a $50 item, the adjusted price would be $55.</li><li><strong>Markdown</strong>: Select this option to decrease the item price. The new price will be equal to [Cost Type – [Value % * Cost Type]]. For instance, a 10% markdown on a $50 item would result in an adjusted price of $45.</li><li><strong>Margin:</strong> Select this option to ensure a specified profit margin is maintained. The system calculates the adjusted price to achieve the desired profit margin based on the cost. [New Price – Cost Type] has to be equal to [Value % * Input Price]. For instance, you set a 20% margin on an item with a $40 cost, the adjusted price would be calculated to achieve a 20% profit margin.</li><li><strong>Percentage:</strong> This option allows you to directly adjust the base price by a specified percentage. The new price will be equal to [Value % * Cost Type]. If you choose a 5% percentage adjustment on a $60 item, the adjusted price would be $63.</li><li><strong>Amount:</strong> Select this option to add a fixed amount to the base price. The new price will be equal to [Value + Cost Type]. For example, if you set a $5 amount adjustment on a $30 item, the adjusted price would be $35.</li><li><strong>Fixed:</strong> Select this option to set an absolute price that will be applied to the item, regardless of its base price. The new Price has to be equal to the Value.  For example, if you set a fixed adjustment of $10, the new price will be $10.</li></ol></td></tr><tr><td>Operator</td><td>Select the equation’s operation to apply for this rule.</td></tr><tr><td>Value</td><td>Select the value to use in the pricing equation.</td></tr><tr><td>Cost Type</td><td><p>Select the cost type used as the basis for the pricing calculation. Available options include <strong>Standard Cost</strong>, <strong>Average Cost</strong>, <strong>Last Purchase Cost</strong>, <strong>Landed Cost</strong>, <strong>Purchase Rate per Weight Unit</strong> for Purchase Order Pricing Rules, <strong>Billing Rate per Weight Unit</strong> for Sales Order Pricing Rules, and other Custom Pricing options. </p><p>When the <strong>Weight Range</strong> option is enabled, this field is automatically populated with <strong>Billing Rate per Weight Unit</strong>.</p></td></tr><tr><td>Date Range</td><td>Enable this feature and select a date range if you want this pricing rule to be seasonal and should only apply for certain days of the year.</td></tr><tr><td>Qty Range</td><td>Enable this feature and enter a quantity range if you want this pricing rule to only apply for select quantities.</td></tr><tr><td>Weight Range </td><td>Enable this option to apply the Pricing Rule only to Catch Weight items whose configured weight falls within the specified range.</td></tr><tr><td>Weight</td><td>Specify the minimum and maximum weight values that determine when the Pricing Rule should be applied.</td></tr></tbody></table>

After setting the criteria, click on "Save" to create the pricing rule.&#x20;

<figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2FOqQSBOxWNRKOaYifdr6w%2Fimage.png?alt=media&amp;token=26c38aa5-0be3-48f1-bc99-0a718f31ee8d" alt=""><figcaption></figcaption></figure>

Once the rule is created, whenever the criteria are met, the rule will be applied as per the priority.

<figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2FvBaaZdz1xd1qW46yG3cZ%2Fimage.png?alt=media&amp;token=0f50198e-1fb8-41f8-9dae-93033d68a2a9" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
It is recommended when setting up Pricing Rules or Levels to do it on a single item first and test it on a Sales module to ensure it behaves as expected. If it is set up correctly, then it can be applied to the desired item(s).
{% endhint %}

### Manually selecting the pricing rule

The pricing rule can also be selected manually from the item detail level in the sales and purchase orders, in case you have multiple rules at your disposal. Although the auto-application of the highest priority level is the default for orders, users can choose an alternative pricing option if needed.

Right-click on the item in the SO Details/PO Details section and select the "Pricing Level" option.

<figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2F5vMb3tn0nZLBdMogiJ7c%2Fimage.png?alt=media&amp;token=090a12ca-7852-4d51-b6f5-f067d554ff0c" alt=""><figcaption></figcaption></figure>

Choose from the available pricing levels to apply to the item.

<div align="left"><figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2F54yRRnlUuQwfcjKAZglI%2Fimage.png?alt=media&amp;token=ed575b26-6a07-419a-b7fe-4fbc9bdb97e9" alt=""><figcaption></figcaption></figure></div>

<figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2Fut3DwydXQHs7WUWalqIm%2Fimage.png?alt=media&amp;token=060baeb8-5133-4a16-a415-dc3728631d23" alt=""><figcaption></figcaption></figure>

### Applying Pricing Rules to Catch Weight Items

**Step 1:** Navigate to **Menu → Admin → Item** and create a new inventory item. Under the **Primary** tab, enable the **Catch Weight** option and enter the required **Price per 1 kg** and **Purchase Rate per 1 kg** values.

<figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2F4l2T9pYjcn1nyXgZt6Zm%2Fimage.png?alt=media&amp;token=8385cb95-00ca-4e33-93aa-e7cc9d12b106" alt=""><figcaption></figcaption></figure>

Next, go to the **Weight & Dims** tab, specify the item's **Weight**, and click **Save**.

<figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2FaQwz0Jp4kjfY4Cu8Smco%2Fimage.png?alt=media&amp;token=e961cd31-9220-4d79-9f1f-2343a1f5c0d4" alt=""><figcaption></figcaption></figure>

**Step 2:** Navigate to **Menu → Utilities → Pricing Rule** and create a new Pricing Rule.

Complete the required header-level information. Under the **Pricing Rule Criteria** section, select the required **Price Adj Type**, **Operator**, and **Value**. Enable the **Weight Range** option. The **Cost Type** is automatically set to **Billing Rate per Weight Unit**. Specify the required minimum and maximum **Weight** values.

<figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2FUimhjm2CO9eTcbUvFduI%2Fimage.png?alt=media&amp;token=a251377c-ff71-4b2e-883c-1a70f8b2af7f" alt=""><figcaption></figcaption></figure>

Click **Save** to create the Pricing Rule.

**Step 3:** Navigate to **Menu → Sales → Sales Order** and create a Sales Order for the configured Catch Weight item.

Select the required customer and add the configured Catch Weight item to the Sales Order. When the item is added, the system evaluates the Pricing Rule by comparing the configured item weight with the defined **Weight Range**.&#x20;

If the item satisfies the configured criteria, the Pricing Rule is applied automatically.

**Step 4:** The system first calculates the **Billing Rate per Weight Unit** by applying the configured Pricing Rule adjustment to the item's **Price per 1kg (CAD)**.

For example, if the **Price per 1kg (CAD)** is **4.8** and the Pricing Rule is configured with a **10% Markup** (specified in the **Value** field under the **Pricing Rule Criteria** section), the system calculates the adjusted **Billing Rate per Weight Unit** as **5.28 CAD** *(4.8 × 1.10 = 5.28)*.

The final value is then displayed in the **Billing Rate per Weight Unit** field on the Sales Order line.

**Step 5:** After calculating the **Billing Rate per Weight Unit**, the system multiplies the calculated rate by the configured **Weight** of the Catch Weight item to determine the **Unit Price**.&#x20;

The calculated **Unit Price** is automatically populated in the Sales Order line and is used for the transaction.

<figure><img src="https://3188343778-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkf8DNCjEfcSm64PCPcmf%2Fuploads%2FwKWLVFkog2LdgyEks35i%2Fimage.png?alt=media&amp;token=3e5fcc21-7ecd-41b6-90c0-4a9ea4a26172" alt=""><figcaption></figcaption></figure>

The same functionality is available for **Purchase** Pricing Rules. In Purchase transactions, the system calculates the **Purchase Rate per Weight Unit** based on the item's **Purchase Rate per 1kg (CAD)** and the configured Pricing Rule.

{% hint style="info" %}
For transactions processed through WMS, the system always uses the **scanned barcode weight** to calculate the transaction amount. The configured item weight is not used for price calculation in this scenario.
{% endhint %}

### Receiving and Picking from the WMS

If the Sales Order or Purchase Order is processed through **WMS**, the system uses the [**actual weight scanned from the barcode**](/whats-new/release-notes/previous-releases/2026/july-2026-release.md#added-weight-precision-support-in-barcode-identification-profile) instead of the configured item weight to calculate the transaction amount.

The scanned weight is resolved using the configured **Barcode Identification Profile** and **Weight Precision** settings, and is stored in the **Total Weight** field of the corresponding **Invoice**, **Item Receipt**, or **Bill** line.

* For **Sales** transactions, the system multiplies the scanned weight by the **Billing Rate per Weight Unit** stored on the Sales Order. For example: **Invoice:** If the **Billing Rate per Weight Unit** is **5.28 CAD** and the scanned weight is **7.892 kg**, the Invoice line amount is calculated as **5.28 × 7.892 = 41.66976 CAD**.
* For **Purchase** transactions, the system multiplies the scanned weight by the **Purchase Rate per Weight Unit** stored on the Purchase Order. For example: **Item Receipt/Bill:** If the **Purchase Rate per Weight Unit** is **4.40 CAD** and the scanned weight is **7.892 kg**, the line amount is calculated as **4.40 × 7.892 = 34.7248 CAD**.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.xorosoft.com/xoroerp-1/utilities/pricing-rules/what-is-a-pricing-rule/creating-pricing-rules.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
