Sales
Sales Prices
Pricing Customer and Pricing Date
In Business Central, sales prices get calculated based on the Bill-to Customer using the Order Date as the pricing date. Some organisations require flexibility on both the customer and the date used. It is common for organisations to factor freight costs into their pricing. In such a case, if you have a customer with several branches nationwide, you need to specify different prices for these branches. Some organisations also agree with their customers on which date you will calculate pricing.
You can configure the following per customer:
- Whether to calculate prices using the Sell-to Customer or the Bill-to Customer.
- Whether to calculate prices using the Order Date or the Requested Delivery Date.
You configure these options on the Customer Card:

| Field | Purpose |
|---|---|
| Apply Prices From | Specifies the customer from which the price calculation should apply. You only need to update this field for customers with a different Bill-to Customer. A typical scenario where this is required is if pricing is different per region. |
| Pricing Date | Specifies whether the prices must get calculated using the Order Date or the Requested Delivery Date for sales quotes and orders. If you have specified Sell-to Customer for Apply Prices From, then the value of this field is taken from the sell-to customer. Else, the value from the bill-to-customer gets used. |
| Pricing Date (Blanket Orders) | Similar to the above field, except this field is used for blanket orders. |
- The pricing customer and pricing date features are supported for both the old pricing experience and the new sales pricing experience in Business Central.
- Sales Quotes and Orders will use the Order Date or Requested Delivery Date from the header to determine the price.
- Sales Blanket Orders will use the Shipment Date on the line to determine the price when the customer is configured to use the Requested Delivery Date. If the customer is configured to use Order Date then the Order Date from the header gets used.
- Other sales documents will use the Document Date to determine the price.
Some organisations use blanket orders to register contract prices, so we have a different field to specify the pricing date source for blanket orders. If you do not want the price to change when you update the shipment date, select Order Date as the pricing date.
Price Calculation Methods
Advanced Sales provides two pricing calculation methods that may appear similar, but they resolve prices differently.
Specific Pricing
How it works:
- Prioritises the most specific standard sales price source.
- Typical source order is customer, then customer groups, then all customers.
- This allows a specific customer price to win even when another standard source has a lower price.
When to use it:
- Use when you want customer-specific standard pricing to take precedence over generic standard pricing.
Contract Pricing
How it works:
- Adds Customer Contract Price as the highest-priority pricing source.
- If a valid contract price exists, it takes precedence over all other sources.
When to use it:
- Use when commercial agreements require contract prices to always override standard pricing.
How Contract Pricing differs from Specific Pricing
Although both methods control which price wins, they do not always produce the same result.
- Specific Pricing (first method above) is specificity-first within standard pricing sources.
- Contract Pricing (second method above) is contract-first and can override the result that Specific Pricing would have selected.
Sales Price Unit of Measure
Occasionally you will agree pricing with your customers in different units of measure to how you sell and ship your items. In Business Central, the sales pricing uses the sales line unit of measure. With Advanced Sales you can specify which unit of measure to use for pricing per customer.
This feature is only supported with the new pricing experience in Business Central.
Gross Margin on Sales Documents
The app includes a field containing the Gross Margin % on item sales document lines. If you want to show this field on the sales documents, you can specify this in the Advanced Sales Setup.
You can also use this field on workflows to require approval on margin irregularities - this is possible even if you don't want to show this field.
The Gross Margin % gets calculated when you enter the sales line. Since the cost can change, the app checks the margin before you release the document or send it for approval. You can also manually recalculate the margin using the Refresh Gross Margin action on the sales document pages.
Shipping
The app adds the following fields to the shipping tab of the Customer card:

| Field | Purpose |
|---|---|
| Requested Delivery Date Calculation | Specifies how to calculate a default requested delivery date for this customer. This overrides the default setting from the Advanced Sales Setup. |
| Warehouse Pick Group | Specifies the warehouse picking group that you allocate to this customer for picking. You can group customers based on regions, timeslots, etc. This is helpful to assist with optimising your picking process. |
- The Warehouse Group will only display on the Customer card if you have created records in the warehouse pick group.
- You can update the caption of the warehouse picking group to reflect how you group your customers on the Advanced Sales Setup
Minimum Order Values, Volumes or Weights
Occasionally you will agree with your customers that you only want to ship orders that meet a minimum value, volume or weight to make it economically viable for you. If this applies to you, you can enable this feature and specify default minimums on the Advanced Sales Setup. You can also specify minimums per customer to override the defaults on the Advanced Sales Setup.
| Field | Purpose |
|---|---|
| Shipment Criteria | Specifies whether to check the minimum order criteria on Value, Volume or Weight. If you do not specify this, the app will use the minimum order value default from setup. |
| Minimum Order Value | Specifies the Minimum Order Value to ensure you only pick and ship shipments for a sell-to customer if the total or combined order value exceeds a threshold sales value. |
| Minimum Order Weight | Specifies the value of the Minimum Order Weight to ensure we only pick and ship shipments for a sell-to customer if the total or combined weight exceeds a threshold. |
| Minimum Order Volume | Specifies the value of the Minimum Order Volume to ensure we only pick and ship shipments for a sell-to customer if the total or combined volume exceeds a threshold. |
- The above fields will only display on the customer card if you enable Minimum Order Values on the Advanced Sales Setup.
- You only specify minimum values on the customer card when you want to specify a value different from the default on Advanced Sales Setup.
Sales Changes
Features relating to all types of sales documents
Advanced Sales On the Advanced Sales Setup, you can configure the following features:
- Copy dimensions and/or salesperson from the sell-to customer instead of the Business Central standard of copying these values from the bill-to customer.
- Support pricing with a Unit of Measure to the sales line. This feature is discussed here in more detail.
- Specify if editing of sales discounts is allowed. If you choose to restrict this, you can still define Line Discounts in your pricing structure, you will just not be allowed to change this on a sales document.
- Show Unit Cost and Margin on the sales documents
- Warn about duplicate external document numbers to prevent duplicate order entries. This feature raises a notification (when updating the external document number or modifying the record) or displays a confirmation message when you manually release the order.
- Specify a default Requested Delivery Date calculation to default the Requested Delivery Date from the order date. You can also override this default on the customer.
The app also provides the following features:
- Pricing Customer and Pricing Date, which is discussed here in more detail.
- Restricted Items, which allows you to limit order quantities on items that are in short supply.
- Require a Reason Code before deleting a sales order when archive on delete is active. You can enable this in Advanced Sales Setup.
Require Reason Code on Sales Order Delete
When this feature is enabled, users must enter a Reason Code on the sales order before they can delete it.
This validation applies when the order is archived on delete. If no reason code is entered, the deletion is blocked and the user must update the order first.
Use this feature when you need better traceability and audit context for order deletions.
Available to Promise (ATP)
The Available to Promise feature allows you to implement order promising without imposing hard reservations on inventory. This feature is available for Sales Orders and Transfer Orders. You configure the Available to Promise settings on the Advanced Sales Setup.
When entering an order the app will calculate the Promised Delivery Date if the Requested Delivery Date is within the planning horizon specified on Advanced Sales Setup. The app only updates the Promised Delivery Date when there is sufficient inventory available based on the inventory availability projection.
Inventory Availability Projection
The Advanced Sales Setup allows you to specify how to project the inventory availability. The following settings are of importance:
- Consider Inventory Only - when enabled, the projection will not include scheduled receipts and will only include items that are on inventory. Use this when you want ATP to consider physical stock on hand only.
- Only Consider Inventory and Inbound Transfers / All Planned Receipts - options to include inbound transfers or all planned receipts (purchase orders, production, etc.) in the projection when you want ATP to consider expected supply.

ATP and Item Tracking Expiration (perishable inventory)
In release 26.0.2.0 we added two new setup fields to help you control how ATP treats item-tracked (lot/serial) inventory with expiration dates:
- ATP Check Item Tracking Expiration Date (Advanced Sales Setup)
- When enabled, ATP calculations will exclude lot and serial numbers that will expire before the Promised Delivery Date for item-tracked items. This prevents the system from promising inventory that will not have adequate shelf life at delivery.
- ATP Minimum Shelf Life (Advanced Sales Setup)
- Specifies a minimum shelf life (in days) that an item must have remaining beyond the Promised Delivery Date to be considered available by ATP. For example, if the Promised Delivery Date is 2025-11-10 and the Minimum Shelf Life is set to 10 days, ATP will exclude item tracking entries that expire before 2025-11-20.
These settings apply only to items that use item tracking with expiration dates (lots/serials). When both settings are used together, ATP excludes any item tracking entries that either expire before the Promised Delivery Date or do not meet the minimum shelf life requirement.
Examples:
- If the customer requests 10 units with a Requested Delivery Date of 2025-11-05 and ATP finds 10 units in a lot that expires on 2025-11-04, ATP will not promise from that lot when ATP Check Item Tracking Expiration Date is enabled.
- If ATP Minimum Shelf Life is set to 7 days and the Promised Delivery Date is 2025-11-10, ATP will exclude any lot that expires before 2025-11-17.
These settings are particularly useful for food, chemical, pharmaceutical or other perishable goods where receiving items with insufficient remaining shelf life is not acceptable.
ATP Automatic Update
The ATP Batch job allows you to update sales and transfer orders that do not have a promised date. The orders get updated with a promised date as soon as sufficient inventory is available. You can run this job manually or schedule it to run regularly in the background using a job queue. You schedule this batch job in the job queue by creating a new Job Queue Entry to run Report 58211 ATP Automatic Update.

| Field | Purpose |
|---|---|
| No. of Transfer Cycles | Specifies the number of levels of distribution you have in respect of transfers. You only need to increase this field if you transfer from a main warehouse to a spoke and then from that spoke to another spoke and so on. |
| Only Consider Inventory | Use this option to specify whether to include Inventory and All Planned Receipts, Inventory and Inbound Transfers or Inventory only. |
| Apply Customer Priority | Select this option to apply the priorities assigned to orders. Orders that have a higher priority will be assigned inventory first. Note: 1 is a higher priority than 2. The priority of an order details from the customer card (if specified) or the Advanced Sales Setup (if not specified on the customer). |
| Only Included Items | All items are included in ATP by default. If you select this option, then the app only includes items that are enabled for the ATP Automatic Update. |
Running this batch job too frequently could cause performance issues. Aim to run this batch job once per day. We do not recommend running this batch job more than once per hour.
Reschedule Available to Promise
Use this function to update an order's requested delivery date or reschedule the promised delivery dates when you know that the inventory availability project has changed.
This action is available on the sales order page from the Process ribbon:

On this page, you will notice three actions:
- Recalculate ATP will clear the Promised Delivery Dates and then recalculate them based on the inventory availability projection. You use this action if you know you cannot achieve the existing Promised Delivery Dates.
- Change Requested Delivery Date will update the Requested Delivery Date on the order and then recalculate the Promised Delivery Date based on the inventory availability projection. You can use this action if the customer requests a different delivery date.
- Clear ATP will clear the Promised Delivery Dates on the order.
Selecting the option Update all Lines with the maximum Promised Delivery Date will update all the lines to the highest Promised Delivery Date.
Here is an example where we use this action to change the requested delivery date after our customer requested we delay the shipment:

Logistics Status
The Logistics Status feature provides real-time visibility into the logistics progress of your sales orders. When enabled, the status is displayed directly on the Sales Order List page with visual indicators (emojis) that make it easy to identify the current state of each order at a glance.
Enabling the Feature
To enable this feature:
- Open Advanced Sales Setup
- Locate the Show Sales Order Logistics Status field in the Sales section
- Enable the field to display logistics status on the Sales Order List
Status Values
The system tracks the following logistics statuses:
| Status | Indicator | Description |
|---|---|---|
| Unreleased | ⏳ | The sales order has not been released yet |
| Not due to be shipped | 🕒 | The order is released but the shipment date is in the future |
| Pending Shipment Creation | 🔴 | The order is ready but no warehouse shipment has been created |
| Pending Picked Creation | 🔴 | A warehouse shipment exists but no pick has been created |
| Pick Created | 🟡 | Pick documents have been created but picking has not started |
| Partially Picked | 🔵 | Some items have been picked, but picking is not complete |
| Picked in Full | 🟢 | All items have been picked and are ready for shipment |
| Partially Shipped | 🚚 | Some items have been shipped, but the order is not complete |
| Shipped in Full | 🚚 | All items on the order have been shipped |
While it is possible to filter on the logistics status, it is important to note that the value shown on the list is calculated dynamically and not saved to the order for performance reasons. There is a batch job that can run through the sales orders and save this status against each order, and you should run this before trying to filter on the logistics status. It is also possible to schedule this job in the job queue to run periodically. We recommend not running it more often than every 30 minutes. The Calculate Logistics Status batch job is available on the Home ribbon of the Sales Order List.
Sales Back Order Management
Some of your customers may prescribe different rules on how you should deal with sales back orders. In Business Central, you need to handle this manually but with Advanced Sales you can configure rules that govern how sales back orders get managed. You can also use different rules for different customers.
Sales Back Order Codes
On this page, you configure the different back order rules you wish to apply.

| Field | Purpose |
|---|---|
| Code | Specifies the code that identifies the sales back order code. |
| Description | Specifies the description of the sales back order code. |
| Type | Specifies the type of the sales back order code. You can either define the rule based on a percentage or based on the quantity in the sales unit of measure. |
| Default | Specifies that this rule is the default for most scenarios. You override the default using Customer Back Order Setup or Customer Sales Preferences. |
| Tolerance | If the type is Short Delivery - %, then this represents the minimum percentage required for a line to remain as a back order. If the type is Short Delivery - Quantity, this represents the minimum quantity to consider as a back order. |
| Quantity Type | Applies to Short Delivery - Quantity and must be selected. Specifies which quantity type to use to determine if you should fulfil the back order. |
| Rounding Precision - Base | Specifies the rounding precision applied to the base quantity. |
| Adjust after each Shipment | Applies to Short Delivery - Quantity - specifies that the outstanding quantity will get rounded after each shipment based on the tolerance. If you do not specify this, the tolerance will only be applied when the outstanding order quantity drops below the tolerance. |
| Transfer Default | Specifies that this rule is the default rule used when shipping transfer orders. You can override this for locations requiring a different rule to be applied by selecting a different back order code on the location card. |
Sales Back Order Types
| Type | Description |
|---|---|
| Short Delivery % | This type looks at the outstanding quantity as a percentage of the original order. The line remains on back order if the percentage is greater than the tolerance specified. |
| Short Delivery Quantity | This type looks at the quantity shipped to determine if it is within tolerance. A common usage of this scenario is that you might ship partial quantities (e.g. 0.9 packs) and want to count this as shipping a full unit. |
| Partial Shipment - Line | Specifies that you don't want to allow a back order for a line. This means that partially shipping a specific line will take the sales order off back order. |
| Partial Shipment - Order | Specify that you don't want to allow a back order for the sales order at all. This means that the app will remove the entire order from back order as soon as you ship anything on a sales order. |
When you use sales back order codes, the orders get updated to adjust the outstanding quantities. We highly recommend you enable order archiving to keep an accurate record of the original sales orders.
Customer Back Order Setup
On this page, you can specify defaults per customer or customer group.

You only need to configure rules for customers that use a different back order rule than the default Sales Back Order Code.
Customer Back Order Setup - Per Item
When you have different back order rules for different items on a customer, you can use the Customer Sales Preferences to override the defaults for the customer. Considering the setup above and the one below, we have specified that the default sales back order code for customer 10000 is QTY-PARTUNITS, but for item 1000, it is QTY-10PERCENT.

Sales Back Orders and ATP
When you use the Available to Promise feature together with Sales Back Orders, it is important to note how the Back Order Types Partial Shipment - Line and Partial Shipment - Order impact ATP.
ATP will by default split sales lines when you have partial inventory available for a line. However for the two methods above, it will not suggest a promised date at all. You must handle this by changing the quantity yourself.
Create Corrective Credit Memo - Value Only
Creating a credit memo in Business Central is easy when you use the Copy Document, Cancel or Create Corrective Credit Memo actions. These actions copy all the lines from the original document to the credit memo. However, suppose you have sold inventory and only want to create a partial credit (e.g., price variance), or you don't want to return the stock to inventory (shipped but did not arrive). In that case, standard Business Central requires you to handle this manually. The recommended way to do this is using charge items because this correctly updates your margins, but this can be cumbersome as you also need to assign the charges.
The Create Corrective Credit Memo - Value Only feature will copy the original document to a credit memo, change the lines to Item Charge and then automatically assign the item charges. If the amount should be a partial credit (price variance), then you can update the amounts.

| Field | Purpose |
|---|---|
| Adjustment Code | Specifies the type of value-only adjustment you want to process. The code selected here determines the Item Charge for this value-only credit memo and, therefore, where Business Central will post the expense. This maps to the Sales Credit Memo Value Adjustment Setup. |
| Customer Reference | Specifies a customer's reference, such as a claim number. |
| Reason Code | Specifies a reason code for the credit memo. |
| Use Original Posting Date | Specifies that the invoice's original posting date will default. If this is not specified, then the app uses the work date. |
| Remove Zero Lines | Specifies that the app will not copy lines with a quantity of zero over to the credit note. Comment lines are still included. |
Auto-Block Customers
Some organisations enforce strict controls when their customers' accounts are not up to date and want to prevent taking orders and processing shipments for customers that have overdue balances. The Auto-Block Customers feature allows you to schedule a job that:
- Auto-Blocks customers with overdue balances (with the ability to specify a grace period).
- Removes the Auto-Block as soon as payment is received.
The feature also allows you to exclude some customers that should never get auto-blocked.
Limited Items
The Limited Items feature allows you to handle scenarios where you want to limit what items can be sold to customers. For example, you could have several distribution channels for your products and wish to adhere to these channels. You define a list of items or item categories per customer, customer price group or customer posting group, and the app then blocks any sales line for an item that the customer is not allowed to buy.
To use this feature, you must enable it on the Advanced Sales Setup. You can access it from the Limited Items Setup action on the customer list and card, or you can search using Tell Me.

Limited Item Setup
Each line in the Limited Item Setup adds one item or one item category to the list for a customer or customer group.
| Field | Purpose |
|---|---|
| Sales Type | Specifies who the list applies to - Sell-to Customer, Bill-to Customer, Customer Price Group or Customer Posting Group. |
| Sales Code | Specifies the customer, customer price group or customer posting group that the list applies to. |
| Item Type | Specifies whether the line refers to an Item or an Item Category. Use Item Category to cover a range of items with a single line. |
| Item Code | Specifies the item or the item category, depending on the Item Type. |
| Allowed Item Filter | Specifies whether the line is Inclusive or Exclusive. See Inclusive/Exclusive Lists. |
Because a list can grow long, the fields at the top of the page let you filter the lines by sales type, sales code, item type and item code. The page caption shows which customer or group you are currently looking at, which is useful when you open the page from the customer card.
Unlike Restricted Items, a limited item list is always for a specific customer, customer price group or customer posting group. There is no All Customers option, because a list that applies to everyone would be a range restriction rather than a customer-specific one.
Inclusive/Exclusive Lists
Specifying either an Inclusive or Exclusive list for a given sales type and sales code (customer or customer group) is possible. This allows you to determine whether it is easier to set up the allowed items or item categories or those that are not allowed.
- Inclusive means only items or item categories listed can be sold
- Exclusive means only items or item categories not in the list can be sold
Choose whichever option results in the shorter list. If a customer may only buy from two of your twenty item categories, set those two up as Inclusive. If a customer may buy everything except one category, set that category up as Exclusive.
Only one of the two options can apply to a customer or group at a time. When you change the Allowed Item Filter on a line and other lines for the same Sales Type and Sales Code still use the previous option, the app asks whether you want to apply the change to those lines as well.
If a list ends up containing both options for the same customer or group, the Exclusive lines take effect and the Inclusive lines are ignored. Answer Yes to the confirmation above to keep each list on a single option.
How the app decides whether an item can be sold
When you enter an item on a sales line, the app first works out which list applies to the document. It looks for lines in the following order and uses the first Sales Type that has any lines set up:
- Sell-to Customer
- Bill-to Customer
- Customer Price Group
- Customer Posting Group
The app then checks the item against that list:
- If the list uses Exclusive, the item is blocked when the item, or the item category on the item, is listed.
- If the list uses Inclusive, the item is only allowed when the item, or the item category on the item, is listed.
The item category that is checked is the Item Category Code on the item itself. Parent categories in an item category hierarchy are not considered, so set up each category that you want to cover.
Customers will only be limited to a specific list of items when you have configured the item list here. A customer with no lines set up, and who is not covered by a price group or posting group list, can buy anything.
Because the app stops at the first Sales Type that has lines, a list set up for a specific customer replaces the price group and posting group lists for that customer rather than adding to them.
When the item check runs
The check runs when you enter or change the item on a sales order or sales invoice line. Sales quotes, credit memos and return orders are not checked, so you can still quote an item and credit a sale that was made before the list changed.
If the item is not allowed, the app blocks the line and tells you which customer or group list the item failed against, so you can go to the right list to correct the setup or choose a different item.
Use Limited Items to control which items a customer may buy, and Restricted Items to control how much of an item may be sold per day. The two features work independently, so a line can be blocked by either one.
Restricted Items
Restricted items are items where you want to restrict the quantities sold to your customers. This feature is typically implemented in scenarios where you have limited availability of the items and want to ensure that all customers get a fair share of them. You can specify the maximum quantity that can be sold per day, and the app then measures every new sales order line against that limit. The functionality also allows you to implement approvals to override and handle exceptions.
To use this feature, you must enable it on the Advanced Sales Setup. You can access it from the Restricted Items Setup action on the customer list and card, or you can search using Tell Me.

Restricted Item Setup
Each line in the Restricted Item Setup defines a limit for one item, for one group of customers, and optionally for a location, salesperson and date range.
| Field | Purpose |
|---|---|
| Item No. | Specifies the item you want to restrict. Restrictions are always per item, so you need one or more lines per restricted item. |
| Sales Type | Specifies who the restriction applies to - Sell-to Customer, Bill-to Customer, Customer Price Group, Customer Posting Group or All Customers. |
| Sales Code | Specifies the customer, customer price group or customer posting group that the restriction applies to. This is not used when the Sales Type is All Customers. |
| Per Customer | Specifies that the daily limit applies to each sell-to customer individually rather than to the group as a whole. Use this on a group-level restriction (for example, a customer price group) when every customer in that group may order up to the daily limit. When this is not selected, the whole group shares one daily limit. This is not applicable when the Sales Type is Bill-to Customer. |
| Location Code | Specifies that the restriction only applies when selling from this location. Leave it blank to apply the restriction regardless of the location on the sales line. |
| Salesperson Code | Specifies that the restriction only applies to orders for this salesperson. Leave it blank to apply the restriction regardless of the salesperson on the order. |
| Starting Date | Specifies the first date that the restriction applies to. Leave it blank if the restriction has always applied. |
| Ending Date | Specifies the last date that the restriction applies to. Leave it blank if the restriction does not expire. |
| Daily Limit (Base Qty.) | Specifies the maximum quantity that may be sold per day, expressed in the item's base unit of measure. Enter zero if you do not want to allow any sales of the item. |
| Allow Sale | Specifies that the sale is still allowed when the daily limit is exceeded. Use this if you want to record a restriction without enforcing it. When this is not selected, exceeding the daily limit blocks the sales line. |
| Over-ride with Approval | Specifies that exceeding the daily limit sends the order for approval instead of blocking the sales line. See Restricted Item Status and approvals. |
The Starting Date and Ending Date on the setup line are compared to the Shipment Date on the sales line, not to the order date.
How the app chooses which setup line to apply
An item can have several setup lines that could apply to the same customer. The app looks for a match in the following order and uses the first Sales Type that returns a match:
- Sell-to Customer
- Bill-to Customer
- Customer Price Group
- Customer Posting Group
- All Customers
Within that Sales Type, the app only considers lines where the location and salesperson are either blank or match the sales line, and where the shipment date falls inside the date range. If more than one line still matches, the most specific line wins - a line with a Location Code, Salesperson Code or a later Starting Date takes precedence over one where those fields are blank or earlier.
Because the app stops at the first Sales Type that matches, a restriction set up for a specific customer replaces the group and All Customers restrictions for that item rather than adding to them. Set up the customer-specific line with the full limit you want that customer to have.
How the daily limit is measured
When you enter or change a sales order line, the app adds up the following quantities for the item and the shipment date on that line, and compares the total to the Daily Limit (Base Qty.):
- The outstanding base quantity on other sales order lines. The line you are working on is excluded from this total.
- The base quantity on posted sales shipment lines.
- The base quantity on the line you are entering.
All quantities are converted to the item's base unit of measure, so the limit is enforced consistently no matter which unit of measure is used on the order.
The totals are filtered by the same Sales Type and Sales Code as the setup line that was matched, plus the Location Code and Salesperson Code if those are specified on the setup line. If Per Customer is selected, the totals only include documents for the sell-to customer on the sales line.
The Restricted Query Order Status field on the Advanced Sales Setup determines whether all sales orders or only released sales orders count towards the outstanding quantity. Use Released Sales Orders Only if unreleased orders in your organisation are still being worked on and should not consume the daily limit.
The limit is per shipment date, not per order. Changing the shipment date on a line or on the order measures the line against the totals for the new date, which may free up or consume a different limit.
When the quantity check runs
The check applies to sales order lines of type Item. Sales quotes, sales invoices and return orders are not checked.
The app checks the restriction when you:
- Enter or change the Quantity, Location Code or Variant Code on a sales order line.
- Change the Salesperson Code or Shipment Date on the sales order. All item lines on the order are re-checked.
- Create sales orders through an automated process, such as an order import or Document Capture.
If you use Default Item Quantity in Sales & Receivables Setup, the app does not default the quantity when doing so would breach the daily limit. A notification tells you that the quantity was not defaulted, and you can then enter a quantity that fits within the limit.
What happens when the limit is exceeded
The Allow Sale and Over-ride with Approval fields on the setup line determine the outcome:
| Over-ride with Approval | Allow Sale | Outcome |
|---|---|---|
| Yes | Any | The sales line is accepted and the Restricted Item Status on the line and the order changes to Approval Required. The override then needs to be approved. |
| No | No | The sales line is blocked with an error that shows the daily limit, the quantity already shipped, the quantity still to be shipped and the quantity you entered. |
| No | Yes | The sales line is accepted even though the limit is exceeded. Use this when you want to record a limit for reference without enforcing it. |
To stop an item from being sold to a customer altogether, create a setup line with a Daily Limit (Base Qty.) of zero and leave both Allow Sale and Over-ride with Approval unselected.
Restricted Item Status and approvals
The Restricted Item Status field is available on the sales order and on the sales order lines. On the order it reflects the lines, and you can choose the value to drill down to the lines that have that status.
| Status | Meaning |
|---|---|
| Blank | The line is within the daily limit, or the item is not restricted. |
| Approval Required | The line exceeds the daily limit and the setup line allows an override with approval. The order has not been sent for approval yet. |
| Pending Approval | The order has been sent for approval and is waiting for a response. |
| Approved | The override was approved. |
If you reduce the quantity on the line so that it fits within the daily limit again, the app clears the status on the line, and on the order once no other line still requires approval.
While a line is Approval Required or Pending Approval, the Available to Promise calculation does not update the Promised Delivery Date for that line, because the quantity is not yet confirmed.
Setting up the approval workflow
Approvals use the standard Business Central approval framework, so you build the workflow on the Workflows page. The app adds four responses for the Sales Header table under the Restricted Item category, which you combine with the standard approval events and responses:
| Response | Purpose |
|---|---|
| Change the Restricted Item Status on a Sales Order to Pending Approval | Use this with the event that sends the sales order for approval. |
| Approve one or more Restricted Item sales lines on a Sales Order | Sets the status on the order and its lines to Approved. |
| Reject a Restricted Item approval on a Sales Order | Returns the status to Approval Required so that the order can be corrected and sent again. |
| Cancel a Restricted Item approval on a Sales Order | Returns the status to Approval Required. |
Approvers also need to be configured in the standard Approval User Setup.
Reviewing restrictions while you sell
The Sales Line fact box on the sales order shows a Restricted Items count for the item on the current line. Choose the value to see the restriction lines that are set up for that item, which is useful when a line is blocked or sent for approval and you need to explain why.
Turning the feature off
When you clear Use Restricted Items and Order Limits on the Advanced Sales Setup, the app resets the Restricted Item Status on all sales orders and sales lines after asking you to confirm. You cannot turn the feature off while lines are still Pending Approval - approve, reject or cancel those approvals first.
The Restricted Items feature overlaps the Limited Items feature because you can use the Restricted Items feature to prevent selling an item to a customer. As this setup is always per item, it will require a lot more setup if your intention is to provide a limited list of items to a customer. Therefore, we recommend only using the Restricted Items feature to limit the quantities sold.