> 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/sales/sales-order/creating-sales-orders.md).

# Creating Sales Orders

Creating Sales Orders in XoroERP involves entering details of items and services that your customers have requested. By doing so, you can effectively keep track of the delivered and pending items or services. It's important to note that sales orders do not impact the general ledger.

The sales order process involves various status indicators that help manage the entire lifecycle of a sales order. Each status represents a different stage in the order's progression, providing valuable insights into its current state and allowing users to take appropriate actions accordingly.

### **Creating a sales order** <a href="#sales-order-fields" id="sales-order-fields"></a>

When entering details to create a sales order, you'll begin by filling in essential header-level information, such as the store, customer details, order date, and shipping information. Once the basics are set, you can proceed to add goods and services to the order, ensuring a comprehensive and accurate record of the transaction. This streamlined approach empowers you to efficiently manage sales orders and cater to your customer's needs with ease.

{% hint style="info" %}
To create a sales order, go to **Menu > Sales > Sales Order**&#x20;
{% endhint %}

#### **Sales Order Header Fields** <a href="#sales-order-fields" id="sales-order-fields"></a>

<table data-full-width="false"><thead><tr><th width="127">Section</th><th width="199" align="center">Field</th><th width="416">Description</th></tr></thead><tbody><tr><td>Sales</td><td align="center">Sale Store*</td><td>This is the store from which the sale is being recorded to.</td></tr><tr><td>Sales</td><td align="center">Ship Store*</td><td>This is the store from which the SO is being shipped from. You can change this store if the goods are being shipped or picked up from another location.</td></tr><tr><td>Sales</td><td align="center">Project/Class</td><td>Select a project or class to associate this sales order with. You can remove or apply the project/class to all or selected items in the order by clicking on the "Gear" icon and selecting the desired option. </td></tr><tr><td>Sales</td><td align="center">Select Customer *</td><td><p>Type a name, phone number, or email here to search and select a customer for the order. A <strong>“Search”</strong> icon is available beside the <strong>“Select Customer”</strong> field. Click on this option to open the <a href="/pages/TTC5MSWQtl3cUN2hxifs"><strong>Customer Centre</strong></a>, where you can view, search, and select from the list of customers.</p><p>Once the Sales Order is saved, the selected customer cannot be changed. If the order is not yet saved, you can select a different customer, and related details such as <strong>Sales Rep</strong>, <strong>Payment Terms</strong>, and <strong>addresses</strong> will be updated accordingly.</p></td></tr><tr><td>Sales</td><td align="center">Customer Info</td><td>Once a customer is selected, hovering over the info icon beside the field displays a quick summary of key customer details such as <strong>Customer Name, Group, Current Balance, Credit Limit, Estimates, Sales Orders, and Invoices</strong>. This provides users with immediate visibility into the customer’s financial and transactional status without navigating away from the Sales Order page.</td></tr><tr><td>Sales</td><td align="center">Sales Rep*</td><td>This is the Sales Rep for this SO. Once a customer has been selected this field will automatically be filled and will require authorization to edit.</td></tr><tr><td>Sales</td><td align="center">Customer Tax Code</td><td>This is the tax code associated to the customer record. Changing this allows you to apply a different tax code to all the items in the SO. This field should already be fetched once a customer has been selected. This field can also be configured to be calculated automatically based on customer's shipping address for US and Canada customers.</td></tr><tr><td>Sales</td><td align="center">Ref No</td><td>This field in the sales order allows you to assign a unique reference number or identifier to the order for easy tracking and reference purposes.</td></tr><tr><td>Sales</td><td align="center">Customer PO</td><td>This field allows you to enter the customer's Purchase Order (PO) number, enabling easy tracking and referencing of the customer's order.</td></tr><tr><td>Sales</td><td align="center">Payment Terms</td><td>You can specify the agreed-upon terms of payment for the sales order, defining when and how the customer should make the payment.</td></tr><tr><td>Sales</td><td align="center">Order Date*</td><td>The date on which the sales order was created or initiated is captured in this field.</td></tr><tr><td>Sales </td><td align="center">Contact</td><td>This allows you to fill in the contact information(Name, Phone no., Email, or Title) of the selected custom<strong>er. There is also an option to "Add New Contact"</strong> that allows users to add new customer contacts without navigating away from their current workflow.</td></tr><tr><td>Sales</td><td align="center">To Be Shipped</td><td>This field allows you to specify the intended date for the shipment of the sales order. <br><br>You can remove or apply this date to all or selected items in the order by clicking on the "Gear" icon and selecting the desired option. <br><br>Shipping dates for individual items can be different and in that case, this date is typically the earliest shipping date. Please note that you can set the offset for "Date to be Shipped" in the "<strong>Date offsets for Sales Order, Estimate and Invoice Date</strong>" app config.</td></tr><tr><td>Sales</td><td align="center">To Be Cancelled</td><td>This field enables you to set the date until which the sales order is valid or eligible for cancellation. Please note that you can set the offset for "Date to be Cancelled" in the "<strong>Date offsets for Sales Order, Estimate and Invoice Date</strong>" app config. <br><br>Additionally, if the app config, “Restrict Wave/Pack and Ship Operation for Orders that have passed their cancellation dates” is On, the user won’t be able to wave the Order after the cancellation date has passed. If the order has already been waved before turning on this App Config, the user won’t be able to Ship the Order.</td></tr><tr><td>Shipping</td><td align="center">Ship Method</td><td>This field enables you to select the preferred method of shipment for the sales order. Select Pick Up if the customer is picking up the goods by themselves. Select Delivery (Own Truck) if your own company’s truck is being used for the delivery. And select Delivery (Third Party) if an external company is shipping the goods for you. </td></tr><tr><td>Shipping</td><td align="center">Ship Via/Carrier</td><td>Specify the carrier or shipping service responsible for delivering the order to the customer. If Delivery (Own Truck) is selected, the company’s own carrier can be selected. If however Delivery (Third Party) is selected, choose another company’s carrier for shipping (FedEx, UPS, etc.). Please note that if the ship method is Delivery, this field is mandatory.</td></tr><tr><td>Shipping</td><td align="center">Shipping Terms</td><td>These are the Shipping Terms options for the order. Available options - <strong>Prepaid</strong>, <strong>Collect</strong>, <strong>Prepaid &#x26; Billed</strong>, <strong>Collect &#x26; Allowed</strong>, <strong>Third Party Billing</strong>.</td></tr><tr><td>Shipping</td><td align="center">F.O.B</td><td>Specify the freight on board - origin or destination.</td></tr><tr><td>Shipping</td><td align="center">Total Weight</td><td>Specify the total estimated weight of the shipment for tracking and logistics purposes.</td></tr><tr><td>Shipping</td><td align="center">Third Party Account Number</td><td>This field is used to capture the customer’s account number for billing shipping charges directly to their account with the carrier or a third-party logistics provider. The behavior of this field depends on the <a href="/pages/9z6kmY8sfLBVMwVYpOu9#allow-third-party-shipping-account-by-shipping-terms"><strong>“Allow Third Party Shipping Account by Shipping Terms”</strong></a> app configuration. </td></tr><tr><td>Shipping</td><td align="center">Ship Service</td><td>This field allows you to specify the type of shipping service for the sales order, such as Standard Ground, Express Overnight, Two-Day Delivery, etc. Please note that if the ship method is Delivery, this field is mandatory.</td></tr><tr><td>Shipping</td><td align="center">Ship Package Type</td><td>This field allows you to specify the type of packaging used for the sales order shipment, such as "Box," "Envelope," or "Pallet".</td></tr><tr><td>Shipping</td><td align="center">Shipping Notes</td><td>Allows you to add any relevant notes or instructions related to the shipment.</td></tr><tr><td>Shipping</td><td align="center">Shipping Expense Account</td><td>This field designates the accounting expense account to which the shipping costs will be allocated.</td></tr><tr><td>Shipping</td><td align="center">Shipping Cost</td><td>This field allows you to enter the total cost incurred for shipping the order.</td></tr><tr><td>Shipping</td><td align="center">Tax Code</td><td>This field allows you to specify tax code applicable to the shipping charges.</td></tr><tr><td>Shipping</td><td align="center">Shipping Tax Amount</td><td>The amount of tax applied to the shipping costs is recorded here.</td></tr><tr><td>Shipping</td><td align="center">Total Amount</td><td>This field displays the overall total cost of the shipping, including shipping taxes.</td></tr><tr><td>Other</td><td align="center">Order Tags</td><td>This field allows you to tag or categorize sales orders, making it easier to sort and filter them based on specific criteria.</td></tr><tr><td>Other</td><td align="center">Risk Analysis</td><td>This field displays the potential risks associated with the sales order. This field is only supported for the orders created using an integration like Shopify, etc.</td></tr><tr><td>Other</td><td align="center">Presentation</td><td>This field displays the B2B presentation name linked to this sales order. This field is only populated if this order is created via the Xoro B2B platform</td></tr><tr><td>Other</td><td align="center">Promise Date</td><td>This field indicates the committed date of delivery or fulfillment to the customer, helping to manage customer expectations effectively. Please note that you can set the offset for "Promise Date" in the "<strong>Date offsets for Sales Order, Estimate and Invoice Date</strong>" app config.</td></tr><tr><td>Other</td><td align="center">EIN</td><td>This field allows you to enter the EIN associated with the sales order.</td></tr><tr><td>Other</td><td align="center">Priority Code</td><td>This field allows you to select the priority code for the sales order.</td></tr><tr><td>Other</td><td align="center">Order Type</td><td>If a <strong>Default Order Type</strong> is defined at the customer level, it will automatically populate here and can be modified if required. Specify the type of sales order, such as standard, rush, or backorder, to categorize and handle orders accordingly, such as ECOM or B2B, etc.</td></tr><tr><td>Other</td><td align="center">Third Party Fulfillment</td><td>This field displays the displays the reference to the third party fulfillment identifier for the orders created using an integration like Shopify, etc.</td></tr><tr><td>Other</td><td align="center">Campaign</td><td>This field displays the B2B campaign name linked to this sales order. This field is only populated if this order is created via Xoro B2B platform.</td></tr><tr><td>Other</td><td align="center">Select Buyer </td><td>Utilize this field to assign a specific buyer or representative responsible for handling the sales order.</td></tr><tr><td>Other</td><td align="center">Minimum Fill Rate %</td><td>This field allows you to enter the percentage of the ordered quantity that has to available for the order to be processed.</td></tr><tr><td>Other</td><td align="center">VAS Instruction</td><td>If a VAS item has been applied, this field field allows users to input any specific instructions or requirement for the additional services provided.</td></tr><tr><td>Other</td><td align="center">Is VAS Required?</td><td>Enable this if VAS is mandatory for the sales order.</td></tr><tr><td>Other</td><td align="center">Third Party Account</td><td>This field displays the reference to the third party account identifier for the orders created using an integration like Shopify, etc.</td></tr><tr><td>Other</td><td align="center">Third Party Ref Name</td><td>This field displays the reference to the third-party name identifier for the orders created using an integration like Shopify, etc.</td></tr><tr><td>Other</td><td align="center">CSR (Customer Service Rep)</td><td>This field specifies the customer service representative handling the order for efficient communication.</td></tr><tr><td>Other</td><td align="center">Quality</td><td>This field allows users to define the standard quality of items specified in the sales order. Click on the "Gear" icon beside this field to apply this quality to apply or remove this quality from the items in the sales order.</td></tr><tr><td>Other</td><td align="center">Third Party Notes</td><td>This field displays the third party notes for the orders created using an integration like Shopify, etc.</td></tr><tr><td>Other</td><td align="center">Auto Update Cancel Qty On SO?</td><td>This option allows the system to automatically mark orders for cancellation if insufficient inventory is available when creating a sales order. If this option is enabled, any unfulfillable item quantities will be automatically canceled upon saving the order. Please remember to enable this option before creating the order to enable auto cancellation. Please note that this field will only be if the app config "Auto-Cancel Sales Order on Inventory Shortage" is enabled. </td></tr><tr><td>Other</td><td align="center">Require Pack &#x26; Hold</td><td>This field allows users to indicate whether the sales order items should be packed and held for a specific period before shipping.</td></tr><tr><td>Other</td><td align="center">Third Party Source</td><td>This field displays the displays the reference to the third party source identifier for the orders created using an integration like Shopify, etc.</td></tr><tr><td>Other</td><td align="center">Brand</td><td> This field allows you to associate the sales order with a specific brand or product line, aiding in brand management and analysis.</td></tr><tr><td>Other</td><td align="center">Default Location</td><td>Set the default location for the order's fulfillment and shipment to streamline the order processing and shipping process. </td></tr><tr><td>Other</td><td align="center">Duty Payment Terms</td><td>This field allows users to specify the terms and conditions under which import/export duties for the sales order will be handled.</td></tr><tr><td>Other</td><td align="center">Custom Comment</td><td>This free-text field is where users can add any additional notes, comments, or instructions specific to the sales order. These comments may not fall under predefined categories but are essential for processing or fulfilling the order.</td></tr><tr><td>Linked Orders</td><td align="center">Purchase Order</td><td>This tab displays the Purchase Orders linked to the Sales Order.</td></tr><tr><td>Linked Orders</td><td align="center">Manufacturing Order</td><td>This tab displays the Manufacturing Orders linked to the Sales Order. The <strong>MO Number</strong> is displayed as a clickable link, allowing users to directly open the associated Manufacturing Order and review production details, linked orders, and manufacturing status.</td></tr><tr><td>Advance Payment</td><td align="center">Require Advance Payment</td><td>Use this field to enter an advance payment that is required from the customer to ship the order. You can select an absolute amount or percentage of the order. You can utilize this field to restrict the order from waving or shipping if the payment is not recorded in the system.</td></tr><tr><td>Custom Fields</td><td align="center">Custom Fields</td><td>This will allow you to enter data in the custom fields defined for the sales order entity. This feature provides the flexibility to capture and store additional information relevant to the sales order, tailoring the system to your unique business requirements.</td></tr><tr><td>Address Notes</td><td align="center">Address Notes</td><td>This will allow you to enter data in the address instruction fields defined for customer's ship to or bill to addresses. This feature enables you to provide specific instructions or additional information related to the delivery or billing address, ensuring accurate and efficient order processing.</td></tr><tr><td>Fee &#x26; Discount</td><td align="center">Fee &#x26; Discount</td><td>The Fee &#x26; Discount tab allows users to view or apply additional charges such as fees or discounts to the sales order. Charges can be automatically applied based on the selected payment service or added manually using the "Add Charges" option.</td></tr><tr><td>Footer</td><td align="center">Bill To Address</td><td>This field displays the billing address for the sales order. When you select a customer, this field is automatically populated with the associated billing address, which can be edited as needed.</td></tr><tr><td>Footer</td><td align="center">Ship To Address</td><td>The <strong>"Ship Address"</strong> field shows the shipping address for the sales order. When a customer is selected, this field is automatically filled with the corresponding shipping address. You can choose other addresses from the drop-down menu or edit the address by clicking on <strong>edit (pencil) icon</strong> next to the field.                                                                                         This opens the address modal, where you can update details such as name, address, phone number, and email (<strong>Ship To Address</strong> email).</td></tr><tr><td>Footer</td><td align="center">Exchange Rate</td><td>If the sales order is for a foreign customer, the "Exchange Rate" field allows you to specify the conversion rate for currency exchange.</td></tr><tr><td>Footer</td><td align="center">Customer Message</td><td>In this field, you can enter a personalized message for the customer or choose from pre-written messages to include in the sales order printout.</td></tr><tr><td>Footer</td><td align="center">Memo</td><td>The "Memo" field provides space for writing notes or any additional information related to the sales order. This allows you to add important details or instructions that need to be considered during order processing.</td></tr></tbody></table>

{% hint style="info" %}
Fields marked with an asterisk \* suffix are required fields
{% endhint %}

{% hint style="info" %}
**Please Note:** If the app configuration **“Restrict price recalculation on customer change”** is enabled, item prices on the sales order will not be recalculated automatically when the customer is changed. Existing prices will remain unchanged even if the newly selected customer has different pricing rules or discount structures. When this configuration is disabled, prices will be recalculated based on the pricing rules of the selected customer.
{% endhint %}

### **Adding Lines to a Sales Order**

After inputting the header level information in the sales order, you'll proceed to enter line-level details, which encompass the specific goods and services requested by the customer. In the line-level section, you can add individual items, and specify their quantities, unit prices, and any applicable discounts or taxes.

There are multiple ways to add an item to a sales order and are listed as follows:

* **Add Item**: This option allows you to add a single item at a time to the sales order, ideal for quickly including individual items with specific attributes or quantities. To use this option, click the "Add Item" button in the Sales order detail section.
* **Advanced Variant Finder**: With the Advanced Variant Finder, you can efficiently bulk add items using a variant grid view, perfect for managing complex product configurations or multiple variants in a single operation. To use this option, click the "Advanced Variant Finder" button in the Sales Order Detail section. Within the Product Variants Finder popup window, you can now view the inclusion of option 1, and option 2 as subtext within the product dropdown menu of the advanced variant finder.<br>

  <figure><img src="/files/lrSAjyPWIPYwUPMt6hTm" alt=""><figcaption></figcaption></figure>

  <figure><img src="/files/8VDGLJXL2Qp49mWvLiQC" alt=""><figcaption></figcaption></figure>

  \
  If a product has three options, "Option 3" dropdown option will be available in the Advance Variant Finder screen. Users can select Option 3 from the dropdown and specify the quantity independently.\
  \
  XoroERP also allows you to update the price of the item directly from the Advance Variant Finder option. This feature is based on the app config, “**Enable Price Edit in Advance Variant Finder**”. <br>

  <figure><img src="/files/yoA1Emr1KTDUC3XWk0U6" alt=""><figcaption></figcaption></figure>

  \
  If this configuration is turned ON, a new price field will be displayed in the Advance Variant Finder pop-up. By default, the price field will be automatically pre-filled with the minimum price obtained from all items with the same Option 1. For example, if the Option 1 code is "XL" and there are 5 items with "XL," the minimum price from those items will be set as the default value in the price field. <br>

  <figure><img src="/files/s2BfWfTFGabGAiUQ8HCb" alt=""><figcaption></figcaption></figure>

  Users have the liberty to modify the price in the field as needed. You can update the price according to your specific requirements. <br>

  <figure><img src="/files/24pBrwLD7mmEddvoK5WR" alt=""><figcaption></figcaption></figure>

  However, please note that, after updating the price, when you open the advance variant finder in the edit state then the price field will be disabled.<br>

  <figure><img src="/files/VlrzVNZgDv99UYz8nVmM" alt=""><figcaption></figcaption></figure>

  <figure><img src="/files/yYOLkdg6uxlDT0c11tUD" alt=""><figcaption></figcaption></figure>
* **Quick Add Items**: The Quick Add Items feature enables the bulk addition of items to the sales order using a table form with search capabilities, making it a convenient choice for quickly populating the order with multiple items. To use this option, click the "Quick Add Items" button in the Sales order detail section.
* **Last Ordered Items**: This option allows you to bulk add items or easily repeat items from the customer's last ordered items, streamlining the reordering process for frequently purchased items. To use this option, click the "Last Ordered Items" button in the Sales order detail section.
* **Kit Finder**: The Kit Finder feature simplifies adding kits to the sales order, allowing you to efficiently include pre-configured sets of items or components with a single selection. To use this option, click the "Kit Finder" button in the Sales order detail section.

{% hint style="info" %}
Use the convenient keyboard shortcut **(Alt+A)** for the "Add Item" option
{% endhint %}

#### **Sales Order Line Fields**

<table><thead><tr><th width="173">Field</th><th width="503">Description</th></tr></thead><tbody><tr><td>Alternative Item Number1</td><td>This field displays an alternative item number1 for the item, providing additional identification.</td></tr><tr><td>Alternative Item Number2</td><td>This field displays an alternative item number2 for the item, providing additional identification.</td></tr><tr><td>Alternative Item Number3</td><td>This field displays an alternative item number3 for the item, providing additional identification.</td></tr><tr><td>Amount</td><td>Displays the calculated amount, which is the result of (Unit Price * Qty - Discount).</td></tr><tr><td>Availability</td><td>Indicates whether the item is available or unavailable for sale from its Ship Store.</td></tr><tr><td><a href="/pages/t22ZFnO5TPbbZLeBRiMB">BackOrder </a>Qty</td><td>This is an editable input field that allows you to indicate the quantity that is currently back-ordered and awaiting fulfillment. The items in which this field is specified cannot be fulfilled until the back-order quantity is removed or resolved.</td></tr><tr><td>BasePart#</td><td>Displays the product base part number associated with the item.</td></tr><tr><td>Category</td><td>Displays the item category associated with the item.</td></tr><tr><td>Country Of Origin</td><td>Indicates the country of origin for the item.</td></tr><tr><td>Customer Item#</td><td>Display's the item number assigned by the customer in item customer mapping module.</td></tr><tr><td>Default Vendor</td><td>Displays the default vendor for the item.</td></tr><tr><td>Description</td><td>This is an editable input field that displays the description of the item.</td></tr><tr><td>Discount</td><td>This field allows you to apply a discount to the item.</td></tr><tr><td>Dropship PO Number</td><td>For dropship items, this field captures the purchase order number for the item.</td></tr><tr><td>Dropship Qty</td><td>Displays the quantity to be drop-shipped for the item.</td></tr><tr><td>Dropshipped Qty</td><td>Represents the quantity of items that have been drop-shipped.</td></tr><tr><td>Dynamic MO Status</td><td>Displays the dynamic manufacturing order status for the item.</td></tr><tr><td>Dynamic MO#</td><td>Displays the dynamic manufacturing order number for the item.</td></tr><tr><td>EUP</td><td>Indicates the Effective Unit Price for the item after discount.</td></tr><tr><td>HS Code</td><td>Displays the HS code for the item, which is used for customs and trade regulations.</td></tr><tr><td>Images</td><td>This field allows you to add images related to the item in the sales order</td></tr><tr><td>Is Dropship Item?</td><td>Specifies whether the item is a dropship item or not.</td></tr><tr><td>Is Manufacturable?</td><td>Indicates whether the item is manufacturable.</td></tr><tr><td>Item Image</td><td>Displays the image related to the item.</td></tr><tr><td>Item Tags</td><td>Displays tags associated with the item.</td></tr><tr><td>Item Type</td><td>Specifies the type of item, such as inventory, non-inventory, etc.</td></tr><tr><td>Item#</td><td>The unique identifier for the item.</td></tr><tr><td>Item Unit Price</td><td><p>This field displays the standard unit price of the item. This will come in handy in case of any price adjustments made on the sales order. Please note that this column will only be visible when the Multi UOM feature is turned off.</p><p>In cases where item prices are defined in multiple currencies, this column will fetch the price in the customer's currency for which the sales order is being placed. However, if item prices are not defined in multiple currencies, the registered standard unit price of the item will be fetched in this column, irrespective of the currency of the customer.</p></td></tr><tr><td>Kit Factor</td><td>Captures the kit factor for the item.</td></tr><tr><td>Kit Item Price</td><td>Displays the item price for the kit.</td></tr><tr><td>Linked PO Qty</td><td>This column displays the linked purchase order quantity on the SO detail line, enabling users to quickly assess the associated purchase order quantities for each sales order.</td></tr><tr><td>MO#</td><td>Represents the manufacturing order number associated with the item line in the sales order.</td></tr><tr><td>Notes</td><td>Provides the ability to add notes or additional information for the item line.</td></tr><tr><td>Opt 1 Name</td><td>Displays the name for Option 1 related to the item.</td></tr><tr><td>Opt1 Code</td><td>Vendor List PriceDisplays the code associated with Option 1 for the item.</td></tr><tr><td>Opt1 Value</td><td>Displays the value for Option 1 related to the item.</td></tr><tr><td>Opt2 Code</td><td>Displays the code associated with Option 2 for the item.</td></tr><tr><td>Opt2 Name</td><td>Displays the name for Option 2 related to the item.</td></tr><tr><td>Opt2 Value</td><td>Displays the value for Option 2 related to the item.</td></tr><tr><td>Project/Class</td><td>Allows you to select a project or class to associate with the item line.</td></tr><tr><td>Qty</td><td>This is an editable input field that specifies the order quantity of the item.</td></tr><tr><td>Qty Allocated</td><td>Represents the quantity of the item reserved/allocated for the customer on a pick wave.</td></tr><tr><td>Qty Remaining To Allocate</td><td>Displays the remaining quantity to allocate for the item.</td></tr><tr><td>Qty Remaining To Ship</td><td>Indicates the remaining quantity to be shipped for the item.</td></tr><tr><td>Qty Shipped</td><td>Displays the quantity of the item that has been shipped to the customer.</td></tr><tr><td>Ship Date</td><td>Allows you to edit the to be shipped date for an individual item in the order.  If the PO is linked to an SO, the ship date will be automatically updated on updating the delivery date in the corresponding Purchase Order.</td></tr><tr><td>Tax</td><td>This is an editable input field that specifies the tax code applied to the item.</td></tr><tr><td>Tax Amount</td><td>Displays the calculated tax amount for the item.</td></tr><tr><td>Title</td><td>Displays a title associated to the base product of the item.</td></tr><tr><td>Unit Price</td><td>This is an editable input field that allows you to edit the unit price for the item.</td></tr><tr><td>Uom</td><td>Specifies the unit of measure for the item (liter, unit, kilogram, etc.).</td></tr><tr><td>UPC</td><td>Displays the Universal Product Code (UPC) for the item.</td></tr><tr><td>VAS Item</td><td>This is an editable input field that indicates whether the item has a VAS (Value-Added Service) item applied to it or not.</td></tr><tr><td>VAS Item Total Cost</td><td>Displays the total cost for the Value-Added Service item.</td></tr><tr><td>VAS Item Unit Cost</td><td>Displays the unit cost for the Value-Added Service item.</td></tr><tr><td>Weight</td><td>Displays the weight of the item.</td></tr><tr><td>Weight UOM Name</td><td>Displays the name of the unit of measure for the item's weight.</td></tr><tr><td>Add Images</td><td>This field allows you to add images related to the item, enhancing visual representation.</td></tr><tr><td>Pencil Icon</td><td>This field allows you to update the item quantity (add a new item or remove any item (set the qty to 0 to remove it)). If the “Enable Price Edit in Advance Variant Finder” app config is on, there will also be an option to edit the price in the advance variant finder.</td></tr><tr><td>Active Linked Qty</td><td>This column displays the calculated active linked quantity. It's determined by the following formula: <br>Active Linked Qty = Total Linked Qty - Linked Qty Received, where "Total Linked Qty" is equivalent to the existing "Linked Qty" field.</td></tr><tr><td>Not Linked Qty</td><td>This column displays the calculated not-linked quantity. It's determined by the following formula: <br>Not Linked Qty = Remaining to Ship - Qty Allocated - Active Linked Qty</td></tr><tr><td>Linked PO</td><td>This column provides direct access to the linked Purchase Order associated with each sales order line. Users can now click on the PO number to quickly navigate to the corresponding PO record.</td></tr><tr><td>Invoice Number</td><td>This column enables users to click on the displayed invoice number to view the related invoice details instantly.</td></tr><tr><td><a href="/pages/Fieqlr9Q0kbeDg2PYtCh">Item Rebate</a>(Clickable)</td><td><p>Allows the user to select or apply the applicable rebate configuration for that SO line item.</p><p>Ensures that only rebates mapped in the module (fixed, %, or custom rules) can be applied.</p></td></tr><tr><td>Item Rebate Unit Cost(Clickable)</td><td><p>Displays the <strong>adjusted unit cost</strong> of the item <strong>after rebate application</strong>.</p><p>Clicking on it provides visibility into how the rebate was calculated (e.g., fixed, %, or custom rule).</p><p>Helps validate cost changes at a single-item level.</p></td></tr><tr><td>Item Rebate Total Cost</td><td><p>Auto-calculated field showing the <strong>total rebate-adjusted cost</strong> for the entire line item (Unit Cost × Quantity).</p><p>Non-clickable, purely informational.</p></td></tr><tr><td>Case Qty</td><td>Case quantity is calculated as <strong>Item Qty / Master Case Qty</strong>. For example, if the Master Case Qty of an item is 12 and 13 units are ordered, the Case Qty will be <strong>2</strong>; 12 units in the first case and the remaining 1 unit in the second case.</td></tr><tr><td>Master Case Qty</td><td>The quantity of items contained in a master case.</td></tr><tr><td>Custom Purchase Cost</td><td><p>This field is editable and allows users to specify a custom unit cost for an item. It is displayed in the SO line based on the behaviour of the app config <strong>"</strong><a href="/pages/9z6kmY8sfLBVMwVYpOu9#enable-gross-profit-fields-in-sales"><strong>Enable Gross Profit fields in Sales</strong></a><strong>"</strong>.</p><p></p><p>The value entered here will be used when calculating profitability in the <strong>“Show Profitability”</strong> section under the Reporting options of the Sales Order module. Additionally, when a <strong>Sales Order is copied to a Purchase Order</strong>, the corresponding Purchase Order line will use the same <strong>Custom Purchase Cost</strong> defined in the Sales Order.</p></td></tr><tr><td>Amount Remaining To Ship</td><td>Displays the calculated remaining shipment amount for the item, based on the pending quantity to be shipped. This value is calculated as:<br><strong>Qty Remaining To Ship × Effective Unit Price (EUP)</strong>.</td></tr><tr><td>Cancel Qty</td><td><p>Displays the quantity cancelled on the Sales Order line without removing the line item from the order. The cancelled quantity is excluded from future fulfillment and shipping activities while the line remains available for tracking and reporting purposes. </p><p></p><p>Cancellation processing and validations for this field follow the rules defined in the <strong>Cancel Sales Order Items API</strong>, including restrictions on over-cancellation, remaining shippable quantity validation, and handling of eligible quantities allocated to waves.</p></td></tr></tbody></table>

After completing the header fields, address management, and adding items, click on the **"Save"** button to create a sales order. The system will automatically assign a unique number to the sales order in the format of SR-S000001, where "SR" denotes the sales store code and 1 denotes a sequential series. This number will be displayed on the top left corner of the page. Once this number is generated, it becomes a permanent identifier and cannot be altered.

{% hint style="info" %}
Use the convenient keyboard shortcut **(Alt+S)** for the "Save" action and **(Alt+N)** for the "Save and New" action
{% endhint %}

The new sales order will be created in the **Open** status. For more details on the sales order statuses, read [Sales Order Statuses](#sales-order-status).

You can [print this sales order](#printing-sales-orders-via-print-service) once it is created using the **Print** button situated on the top right of the page.

{% hint style="info" %}
If duplicate items are added to the sales order, users will see an info alert to indicate that duplicate items have been added to the sales order. This alert is displayed as a div at the top of the screen and specifically identifies items that have multiple entries within the sales order.
{% endhint %}

### Sales Order Statuses <a href="#sales-order-status" id="sales-order-status"></a>

* **Open**: When a Sales Order (SO) is initially created, it is in the **"Open"** status, indicating that it is not yet finalized. Sales Orders in the Open status are considered draft orders, as modifications can still be made, and can be viewed in the **Sales Order Centre**.
* **Released**: After finalizing the SO, it can be "Released," allowing the fulfillment department to prepare it for shipment. However, the release is subject to the condition that there are no restrictions on the items (if applicable).
* **Partially Shipped**: If some items in the SO are back-ordered and yet to be shipped, the status becomes "Partially Shipped."
* **Shipped**: Once all items on the SO have been shipped and the order is fully fulfilled, it enters the "Shipped" status.
* **Closed**: The "[Closed](broken://pages/IhMSGQeR601AMUdWo2U1)" status is applied manually to sales orders where either part or the entire order is not intended to be fulfilled. Closed orders are restricted from any further actions.
* **Cancelled**: The "Cancelled" status indicates that there are no items available on the order with an order quantity greater than zero. XoroERP also allows manually applying the "Cancelled" status. Cancelled orders are restricted from any further actions.

{% hint style="info" %}
The system also provides the ability to track the allocation status of the order which indicates the progress of the order in the warehouse or fulfillment department. For example - Allocated, In Picking, Picked etc. For information on the allocation statuses, read [Sales Order Allocation Statuses](#sales-order-status).
{% endhint %}

### Create or Update Customer Address in Sales Order

**Workflow:**

**Step 1:** Enable the App Configuration **“Allow Option to Create/Update Customer Address in Sales Order, Estimate and Invoice Modules.”**

<figure><img src="/files/7AXYMSvL5EbkTBdx435C" alt=""><figcaption></figcaption></figure>

**Step 2:** Open the Sales Order, Estimate, or Invoice page and select a customer. In the Bill To or Ship To address dropdown, select **Create New Address** to add a new address.

<figure><img src="/files/566sWGy0IQ5DmymUsU4V" alt=""><figcaption></figcaption></figure>

**Step 3:** The address modal opens with existing details prefilled. Modify the details and save the address. Ensure that the postal code is valid to avoid invalid postal code alerts or errors while saving the sales order when the App Configuration **“Calculate Tax for Canada Zip Code”** is enabled.

**Step 4:** Turn ON the **Set As Default** toggle if you want the address to be used for future transactions.

<figure><img src="/files/29Pg5MAusvAOC1iuivqP" alt=""><figcaption></figcaption></figure>

**Step 5:** The newly created address address becomes immediately available in the dropdown.

<figure><img src="/files/ld24mlm6svNFiGg6LX3s" alt=""><figcaption></figcaption></figure>

**Step 6:** Users can also edit the details of an already existing address and save the changes.

<figure><img src="/files/uGYiAeWdPlmkEUFfW6I0" alt=""><figcaption></figcaption></figure>

**Step 7:** To update the existing address in the customer record, open the address modal and select **Update in Customer** option.

<figure><img src="/files/XY18tCxNnJwMWU6Iy1yu" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/KFedeJ12JdiUcwZteTHM" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**The Address Name field is editable only when creating a new address. The field remains read-only and cannot be modified when updating or editing an existing address.**
{% endhint %}

### Show Balance Due Amount on Sales Order

To provide better visibility into the outstanding amount on a Sales Order, XoroERP allows you to display the **Balance Due amount** directly within the Sales Order. The Balance Due represents the remaining amount after deducting the linked deposit amount from the total Sales Order amount.

To display this value, users need to enable the **“**[**Show Balance Due amount on Sales Order**](/xoroerp-1/configuration/application/app-config/sales.md#show-balance-due-amount-on-sales-order)**”** app configuration.

<figure><img src="/files/Ov9GJXk9wMZXHzNq3pN1" alt=""><figcaption></figcaption></figure>

When this configuration is enabled, the system calculates and displays the Balance Due as:\
**Total Sales Order Amount – Linked Deposit Amount**

<figure><img src="/files/hb4my33nl8joi9VWvPYK" alt=""><figcaption></figcaption></figure>

When this configuration is disabled, the Balance Due field will not be displayed on the Sales Order.

### Show/Hide Deposit Refunded & Remaining Amount on Sales Order

To provide greater transparency and control over financial details in sales orders, XoroERP provides you an option to show or hide the refunded deposit and remaining deposit amounts.

* **Deposit Refunded** is the amount refunded on the linked Deposit to that Sales Order.
* **Deposit Remaining** is the Deposit amount remaining after deducting the refunded amount from the Total Deposit recorded on that Sales Order.

To show these amount, users have to enable the **"Show deposit and refunded amount in Sales Order"** app config. &#x20;

<figure><img src="/files/vUkhH4KoJ1GuWBHmr7gt" alt=""><figcaption></figcaption></figure>

When this config is on, the Deposit Remaining and Deposit Refunded amounts will be visible in the SO.

<figure><img src="/files/OFEsaMruIVsEhnIAoiCw" alt=""><figcaption></figcaption></figure>

**Please Note:**

* The Deposit Remaining and the Deposit Refunded amounts will only be displayed if they are larger than zero, ensuring that you're only presented with relevant information.&#x20;
* When a sales order is split, the deposit applied is split as well.
* In cases where a deposit is split and the total amount of the new sales order generated as a result of the split is different from the linked amount, the Total Deposit Amount will be shown in brackets.<br>

  <figure><img src="/files/ZViGMz2yAV44r3Q6dUZg" alt=""><figcaption></figcaption></figure>
* The 'Deposit Refunded' and 'Deposit Remaining' amounts are reflected based on the Total Deposit amount, ensuring accuracy and consistency in your sales order management.

### Restricting a User from creating a Sales Order or performing Wave operations

There are two ways to restrict a user from creating a sales order or performing wave operations:

1. **Access Manager**

The access manager allows you to grant or restrict access to a user. To restrict a user from creating a sales order or wave, you can remove these access of the user.

**How does it work?**

* Navigate to the Access Manager module and select the user.
* In the "Set Access Levels" section, choose the "Custom Option"
* Uncheck the access for creating sales order and wave.
* After the access has been modified, click on "Grant Access".
* The user access will be modified and the user will not be able to create sales orders or perform wave operations.

2. **User Store Mapping**

If a user is not mapped to a store, all the sales order functions like creating SO or modifying an SO will not be allowed with the un-mapped store on the SO.

Only if the access is granted to the user by the user store mapping, the user shall be able to perform the SO process.&#x20;

You can remove the user-store mapping to restrict a user from creating sales orders or performing wave operations.&#x20;

**How does it work?**

* Navigate to the User Store Mapping module.
* Select the User from the dropdown menu.
* In the Store Access section, you can see all the stores for which the user has access.
* Click on the "Bin" icon next to the store to remove the store access for the user.

If the un-mapped ship store is selected for a sales order, the user will not be able to do the following:

* Create a Sales Order,
* Create Wave,&#x20;
* Pick/Pack the Wave,&#x20;
* Ship an Order,
* Void a Wave/SO Modify an existing Order&#x20;

If an attempt is made to process an order with the unmapped ship store, the user will be shown a message that the user doesn’t have access to the ship store.

### Printing Sales Orders via Print Service

Sales Orders can be printed directly from the system using the Print option. When the app configuration **“Enable Xoro Print Service”** is enabled, additional options are available in the print pop-up while printing Sales Orders.

* A **Send to Printer** toggle is displayed in the print pop-up.
* When enabled, the **Print Requester** dropdown becomes available, allowing users to select a requester.
* Once a Print Requester is selected, the print job is routed through the Print Service, and the Sales Order is added to the **Print Service Queue**.

<figure><img src="/files/pxLuE7J51cExX2VjFL1X" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/VeJ4DMiT5Il1u4b3n6PU" alt=""><figcaption></figcaption></figure>

If the app configuration **“Enable Xoro Print Service”** is disabled, the print pop-up displays only the standard options.&#x20;

* Users can select the reporting template and proceed with **Print Preview** or printing directly.&#x20;
* No additional options, such as **Send to Printer** or **Print Requester**, are available, and printing follows the default system behavior.

<figure><img src="/files/UCOrMLOC2kfd6xzypduQ" alt=""><figcaption></figcaption></figure>


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.xorosoft.com/xoroerp-1/sales/sales-order/creating-sales-orders.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
