# March 2026 Release

{% hint style="warning" %}

This is a Custom Release. Feature availability depends on configuration and rollout status. Some features listed above may not be visible in your environment if they are part of a staged or custom deployment. Please contact your support representative to confirm enablement.
{% endhint %}

### **Ship-To Email Added as CC in Ship Confirmation Emails** <a href="#ship-to-email-added-as-cc-in-ship-confirmation-emails" id="ship-to-email-added-as-cc-in-ship-confirmation-emails"></a>

**Overview:**

This enhancement introduces an email interceptor for **Ship Confirmation Emails** to ensure that the **Ship-To Email address** associated with a **Sales Order** or **Invoice** is also included in the email communication.

Previously, **Ship Confirmation Emails** were sent based on a defined priority of customer email fields. With this enhancement, the Ship-To Email is now additionally included as a **CC recipient**, ensuring better visibility of shipment updates to the intended delivery contact without impacting the [existing email priority flow](/xoroerp-1/sales/customer-section/customer-portal-invitation/in-what-sequence-are-the-customer-emails-used-to-send-the-so-related-emails.md).

***

**Feature Added:**&#x20;

An interceptor has been implemented for the **Ship Confirmation Email** action (Entity: Invoice), which automatically adds the **Ship-To Email** as a CC recipient when it is available.

* For **Sales Orders**:\
  The Ship-To Email defined on the Sales Order is included as a CC recipient.

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

* For **Direct Invoices**:\
  The Ship-To Email defined on the Invoice is included as a CC recipient.

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

***

**Key Enhancements:**

* **Additional Visibility for Shipment Communication**\
  The Ship-To Email address now receives a copy of the Ship Confirmation Email, ensuring that the recipient at the delivery location is informed about the shipment status.
* **Non-Disruptive to Existing Email Priority Flow**\
  The existing email priority logic for determining primary recipients remains unchanged. The Ship-To Email is added only as a **CC**, without affecting the primary recipient selection.
* **Automatic Email Handling via Interceptor**\
  The system automatically fetches the Ship-To Email from the Sales Order or Invoice and includes it as a CC recipient, eliminating the need for manual intervention.

***

### **Auto-Population of Lab Record Number from MO Number**

**Overview:**

Manufacturing lab records can be created either directly from the **Manufacturing Lab Record module** or through the **Manufacturing Order Centre**. Each lab record is associated with a Manufacturing Order (MO). With this enhancement, the **Lab Record Number** is now automatically populated based on the selected **MO Number**, instead of requiring manual entry.

***

**Enhancement Added:**

The system now auto-populates the **Lab Record Number** field based on the selected **MO Number**.

* On selecting or updating the MO Number, the Lab Record Number is automatically filled with the same value.
* This functionality works for lab records created:

  * Directly from the **Manufacturing Lab Record** module.

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

  * From the **Manufacturing Order Centre**, use the **Create Lab Record** option in the **Options** drop-down menu.

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

  &#x20;                                                                                                                                                                            &#x20;

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

  &#x20;                                                                                                                                                                        &#x20;

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

***

**Impact:**

* **Improved Accuracy**: Ensures consistent mapping between MO Number and Lab Record Number.
* **Reduced Manual Effort**: Eliminates the need to enter or copy values manually.
* **Error Prevention**: Minimizes the risk of incorrect or mismatched record numbers.
* **Better User Experience**: Simplifies and speeds up the creation of lab records.

***

### **Updated Margin % Calculation Logic in Item Centre**

**Overview:**

The **Item Centre** provides key pricing and cost-related metrics that help users evaluate item profitability. One such metric is **Margin %**, which reflects the relationship between an item’s selling price and its cost.

With this enhancement, the **Margin % calculation has been updated to use Average Unit Cost instead of Standard Unit Cost**, and the Margin % is now also available as a dedicated column in the Item Centre for improved visibility.

***

**Enhancement Added:**

* A new **Margin % column** has been added in the **Item Centre** for quick visibility of item profitability.

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

* The **calculation logic for Margin % has been updated** as follows:\
  **Margin % = (Standard Unit Price − Average Unit Cost) × 100 / Standard Unit Price**
* The updated Margin % is also reflected consistently in the **Item subform (Pricing section)**.

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

***

**Impact:**

* **More Accurate Profitability**: Margin % now reflects actual cost behavior using Average Unit Cost.
* **Better Visibility**: Users can directly view Margin % in the Item Centre without opening individual item records.
* **Improved Decision-Making**: Enables more informed pricing and margin analysis.
* **Consistency Across System**: Margin % calculation is standardised across the Item Centre and Item subform.

***

### **Improved Tax Return Amount Consistency and Payment Void Handling**

**Overview:**

The Tax Return Centre allows users to review filed tax returns, record payments, and manage refunds. With this enhancement, the system introduces improved handling for payment voiding, including support for cheque-based transactions.

***

**Enhancement Added:**

When voiding a payment in the **Tax Return Centre**, if the payment method is **Cheque** and a cheque number is present, the system prompts the user to enter a **Void Cheque Date**. This ensures that cheque-based transactions are properly tracked and aligned with financial and audit requirements.

***

**How It Works:**

**Step 1:** Navigate to **Accounting → Sales Tax → Tax Return Centre**.

<figure><img src="/files/6wxFvdgqAQk2nHc33iH6" alt=""><figcaption></figcaption></figure>

**Step 2:** Right-click on the relevant tax return record and select **View Payments/Refunds** from the available options.

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

**Step 3:** If the payment method is **Cheque**, then while voiding the payment/refund (by clicking the **delete/void** option), a confirmation sub-form appears displaying the **Void Cheque Date**.

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

**Step 4:** The **Void Cheque Date** is auto-populated by default; however, users can modify the date as required.

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

**Step 5:** Click **OK** to confirm the permanent deletion of the selected payment/refund.

<figure><img src="/files/47IWXTqRronrDvW7Vyjr" alt=""><figcaption></figcaption></figure>

***

**Impact:**

* **Accurate Financial Tracking**\
  Ensures cheque-based payment voids are recorded with a proper date, maintaining accurate financial records.
* **Improved Audit Compliance**\
  Capturing the Void Cheque Date provides better traceability and supports audit requirements.
* **Controlled Void Operations**\
  Adds an extra validation step for cheque payments, reducing the risk of untracked or incorrect void actions.
* **Better Transaction Transparency**\
  Users gain clear visibility into when a cheque was voided, improving overall transaction clarity.

***

### **Added Customer Group Field in Sales Order Header**

**Overview:**

The Sales Order module provides key customer-related information to help users make informed pricing and order decisions. With this enhancement, the **Customer Group** (which determines pricing levels) has been added to the **Customer Info section** of the Sales Order header.

This value is automatically fetched from the **Customer Centre**, where the Customer Group is defined for each customer.

***

**Enhancement Added:**

* Added **Customer Group** field in the **Customer Info section** of the Sales Order header.

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

* The value is auto-populated based on the **Customer Group assigned in the Customer module**.

***

**Impact:**

* **Improved Visibility:** Users can instantly identify the customer group without navigating away from the Sales Order.
* **Reduced Navigation Effort:** Eliminates the need to check the Customer Centre separately.
* **Faster Decision-Making:** Enables quicker and more informed order processing.
* **Better Pricing Awareness:** Helps users quickly understand the pricing level associated with the customer during order creation.

***

### **Added Batch Upload Reconcile Bills Module**

**Overview:**

The **Batch Upload Reconcile Bills** module allows users to reconcile multiple bills in bulk by uploading a CSV file. Instead of manually reconciling bills one by one, users can download a predefined template, populate the required bill reconciliation details, and upload the file to process multiple reconciliations at once.

This feature simplifies reconciliation workflows, reduces manual effort, and improves accuracy when handling large volumes of vendor bills.

***

**Feature Added:**

A new module, **Batch Upload Reconcile Bills,** has been introduced to enable users to upload and reconcile multiple vendor bills simultaneously using a CSV template.

The system provides a downloadable template containing the required column headers. Users can populate this template with reconciliation data and upload it into the system for processing.

**Location:** `Menu → Utilities → Data Imports → Upload Bill Reconciliation → Batch Upload Reconcile Bills`

<figure><img src="/files/051cBk2QiUJe1qDVt8eV" alt=""><figcaption></figcaption></figure>

***

**App Configuration Requirement:**

The behavior of expense bill creation during reconciliation depends on the app configuration, **Create Expense Bills in Item Reconciliation.**

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

***

**Functionality:**

1. If the app configuration **"Create Expense Bills in Item Reconciliation"** is **enabled**:
   * The system will **always create an Expense Bill**, regardless of the value provided in the upload file.
2. If the app configuration **"Create Expense Bills in Item Reconciliation"** is **disabled**:
   * The system will follow the value provided in the uploaded file.
     * If the value in the uploaded file is **TRUE**, an Expense Bill is created.
     * If the value in the uploaded file is **FALSE**, a **Liability** is created instead of an expense bill.

***

**Key Enhancements:**

* Enables **bulk reconciliation of bills through CSV upload**.
* Provides a **standardised reconciliation template** with required fields.
* Automatically validates currency and exchange rate logic during upload.
* Supports **automatic exchange rate retrieval** when not provided in the upload file.
* Reduces manual reconciliation work and improves processing efficiency.

***

**How It Works:**

**Step 1:** Navigate to the **Batch Upload Reconcile Bills** module and click **Download Template** to download the CSV template.&#x20;

The template contains predefined column headers required for the reconciliation process. Fields marked with **\*\*** are mandatory and must be populated.

**Step 2:** After entering the required data in the template, save the file in **CSV format**. Upload the updated template file by clicking on the **Browse** option and selecting the required file.

**Step 3:** The system will validate the file and process each reconciliation record accordingly.

Currency behavior depends on the relationship between Bill Currency, Reconcile Currency, and Home Currency, as explained in the cases below.

***

**Case 1: Bill Currency ≠ Reconcile Currency and Reconcile Currency = Home Currency**

* If an Exchange Rate is provided in the upload file, the system uses the entered exchange rate for reconciliation.
* If the Exchange Rate is not provided, the system automatically retrieves the exchange rate for the Bill Currency and uses it for the reconciliation process.

The system then converts the reconciliation amount to Home Currency using this exchange rate.\
\
**Case 2: Bill Currency ≠ Home Currency**

* If the Bill Currency is not the same as the Home Currency, the Reconcile Currency can only be either the Bill Currency or the Home Currency.&#x20;
  * If the Exchange Rate is entered in the upload file, the system will use the entered value during reconciliation.
  * If the Exchange Rate is not entered, the system automatically retrieves the exchange rate for the selected currency and uses it during reconciliation.

**Case 3: Bill Currency = Reconcile Currency**

* If the Exchange Rate is not entered, the system automatically assigns the value **1**.
* If a different exchange rate is entered, it may cause discrepancies because the **reconciliation details/reconciliation info** will display the entered exchange rate. However, all accounting transactions related to the bill will continue to use the original bill exchange rate.

{% hint style="warning" %}
If **Bill Currency ≠ Home Currency,** and any other currency is entered as the **Reconcile Currency**, the system throws an error stating that the Reconcile Currency must be either the **Bill Currency** or the **Home Currency**.
{% endhint %}

***

**Validation Rules:**

* **Reconcile Tax Code** will default to the **Vendor’s default tax code** if not provided. Note that taxes will apply only if the **Reconcile Item** is taxable.
* The **exchange rate** will default to the system’s exchange rate if not entered. It will be used only when the **Reconcile Currency** differs from the **Bill Currency**.
* The **Reconcile Method** will default to **Amount** if not entered. (Other available Reconcile Methods include Cost, CBM, Qty, Amount)
* The **AddToVendorBill** flag will default to **true** if no value is provided.
* **Reconcile Currency** will default to the **vendor's currency** if no value is provided.
* The **BillItemNumber** is required only if **BillItemLineId** is not provided. For bills with duplicate **Item Numbers**, the first item will be selected by default.

***

The **BillItemLineId** can be obtained by following the steps below:

**Step 1:** Navigate to the **Data Export Centre** and in the **Search By** field, select **Bill Items Detail**.&#x20;

**Step 2:** Select the required **Bill Item Line** and click **Options → Export to Local - Selected**.

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

**Step 3:** An Excel file will be downloaded containing the bill item details, where the **BillItemLineId** value can be retrieved.                                                                                                                                                                                                                                  &#x20;

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

***

### **New Field Available in Batch Update for Sales Orders and Purchase Orders**

**Overview:**

The Batch Update functionality in the Sales Order and Purchase Order modules allows users to update multiple records simultaneously, improving efficiency and reducing manual effort. With this enhancement, users can now update the **Brand** field in bulk using the Batch Update feature for both Sales Orders and Purchase Orders.

***

**Enhancement Added:**

* Added **Brand** as a selectable field in the **Batch Update** option for **SOs** and **POs**.

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

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

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

* Users can now assign or update the Brand value across multiple selected records in a single action.
* Introduced validation to restrict batch updates when selected records include **Transfer-type orders**.

***

**Impact:**

* **Improved Efficiency:** Enables bulk updating of Brand across multiple orders, reducing manual updates.
* **Better Data Consistency:** Ensures uniform Brand assignment across selected records.
* **Time-Saving:** Eliminates the need to update Brand individually for each order.
* **Controlled Updates:** Prevents unintended updates by restricting batch operations on transfer-type orders.

***

### **Added a New App Config: Allow Third Party Shipping Account by Shipping Terms**

**Overview:**

Shipping terms and third-party shipping account usage must align to avoid confusion during order processing. Previously, users could enter a **Third-Party Shipping Account #** regardless of the selected shipping term, which could lead to ambiguity (e.g., using *Prepaid* with a third-party account).

With this enhancement, a new app configuration has been introduced to control when a third-party shipping account is required based on selected **Shipping Terms**, ensuring better validation and reducing shipping errors.

***

**App Configuration Requirement:**

* **App Config Name:** Allow Third Party Shipping Account by Shipping Terms
* **Type:** Multi-select Dropdown
* **Configuration Location:** Menu → App Config → Sales → **Allow Third Party Shipping Account by Shipping Terms**
* **Available Options:**
  * Prepaid
  * Collect
  * Prepaid & Billed
  * Collect & Allowed
  * Third Party Billing

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

***

**Functionality:**

This configuration allows users to control whether a **Third-Party Shipping Account #** is required for the selected shipping terms.

* If no shipping terms are selected in the app configuration, all shipping terms can be used with or without a **"Third-Party Shipping Account"**.
* If specific shipping terms are selected in the app configuration, the system requires a **"Third-Party Shipping Account"** for those terms, and the **Sales Order (SO)** cannot be saved without it.

***

**Key Enhancements:**

* **Granular Control Over Shipping Behavior:** Enables users to precisely control which shipping terms can use third-party shipping accounts, aligning system behavior with business rules.
* **Prevents Conflicting Shipping Instructions:** Eliminates scenarios where incompatible combinations (e.g., *Prepaid* with a third-party account) are entered, reducing ambiguity for fulfillment teams.
* **Validation & Error Handling:** If a third-party shipping account number is entered with a shipping term that is not allowed by the configuration, the system displays a validation error message: “Third-party shipping account entry is not allowed for the selected shipping terms. Please select the shipping terms in the App Config 'Allow Third Party Shipping Account by Shipping Terms'.”
* **Improved Data Accuracy at Entry Level:** Ensures only valid shipping account and shipping term combinations are saved, improving overall data integrity.

***

### **Added a New App Config: Show Balance Due Amount on Sales Order**

**Overview:**&#x20;

The Sales Order module displays key financial details such as the total amount and deposits applied. However, users did not have direct visibility into the **remaining balance due** on the Sales Order.

With this enhancement, a new app configuration has been introduced to display the **Balance Due** amount on the Sales Order, providing clear visibility into the outstanding amount after deposits are applied.

***

**App Configuration Requirement:**

* **App Config Name:** Show Balance Due amount on Sales Order
* **Configuration Location:** Menu → App Config → Sales → Show Balance Due amount on Sales Order

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

***

**Functionality:**

**When App Config Is Enabled:**

* The system displays the balance due as **Total Sales Order Amount – Linked Deposit Amount.**

<figure><img src="/files/6EYYSFMOEgyzGbIevFer" alt=""><figcaption></figcaption></figure>

***

**When App Config Is Disabled:**

* When disabled, the **Balance Due** field is not displayed on the Sales Order.

***

**Impact:**

* **Improved Financial Visibility:** Users can instantly view the remaining amount on the Sales Order after applying deposits.
* **Better Payment Tracking:** Helps track how much amount is still due after deposits are applied.
* **Reduced Manual Calculation:** Eliminates the need to manually calculate remaining balances.
* **Enhanced Decision-Making:** Supports quicker financial assessment during order processing.

***

### **Introduced a New App Config: Disable Auto Populate Memo in IR/Bill**

**Overview:**

The system previously auto-populated the **Memo** field in Item Receipts (IR) and Bills during various purchase-related processes. This could lead to unintended or inconsistent memo values, especially when the Purchase Order (PO) memo was empty or when records were generated through different workflows.

With this enhancement, a new app configuration has been introduced to give users control over memo population behavior, ensuring that memo values are only carried forward when explicitly defined.

***

**App Configuration Requirement:**

* **App Config Name:** Disable Auto Populate Memo in IR/Bill
* **Configuration Location:** Menu → App Config → Purchase → Disable Auto Populate Memo in IR/Bill

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

***

**Functionality:**

This configuration controls whether the system should automatically populate the **Memo** field in Item Receipts (IR) and Bills.

**When App Config Is Enabled:**

* The system will not auto-populate any default memo in IR or Bill. If the Purchase Order memo is empty, the Memo field in IR/Bill will remain blank. If a memo exists on the PO, it will be carried forward to the related IR and Bill.

***

**When App Config Is Disabled:**

* The system continues to auto-populate the Memo field as per existing behavior.

***

**Key Enhancements:**

* **Controlled Memo Population:** Prevents automatic insertion of default memo values, ensuring only intentional data is recorded.
* **Consistent Behavior Across Workflows:** Applies uniformly across key processes such as Quick Receive, Item Receipt Merge, and Convert Liability to Bills.
* **Improved Data Accuracy:** Eliminates unintended or system-generated memo values, maintaining cleaner transaction records.
* **Reduced Manual Cleanup:**\
  Minimizes the need for users to edit or remove auto-filled memo values post-creation.

***

### **Qty On PO Draft and Qty On SO Draft Columns Added in Inventory by Item Export**

**Overview:**

The **Inventory by Item** view in the **Data Export Centre** provides key inventory metrics, including quantities related to Purchase Orders and Sales Orders. While fields such as **On PO (Draft)** and **On SO (Draft)** were visible within the UI, they were not included in the exported file, creating a gap between on-screen data and exported data.

With this enhancement, the export functionality has been updated to include these draft-related quantities, ensuring consistency between the UI and exported reports.

***

**Enhancement Added:**&#x20;

Added **Qty On PO Draft** and **Qty On SO Draft** columns to the export file of the **Inventory by Item** view.

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

***

**How It Works:**

**Step 1:** Navigate to the **Data Export Centre** and select **Search by: Inventory By Item**. Select the desired record for which you want to view inventory availability and producible stock levels.

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

**Step 2:** Click on the **Options** menu located at the top left corner of the screen and select **Export to Local – Selected**. The **Select Import/Export Utility Template** pop-up appears.

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

**Step 3:** In the **Select Import/Export Utility Template** pop-up, choose the required settings (such as file format, delimiter, etc.) and click **Download**.

<figure><img src="/files/1bGlx9HVwalIrsPbcsOQ" alt=""><figcaption></figcaption></figure>

**Step 4:** The exported file will include the newly added columns: **Qty On PO Draft** and **Qty On SO Draft**.

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

***

**Impact:**

* **Data Consistency:** Exported files now match the data displayed in the UI, eliminating discrepancies.
* **Improved Reporting Accuracy:** Users can include draft Purchase Orders and Sales Orders in inventory analysis.
* **Better Decision-Making:** Helps users plan inventory more effectively by considering both confirmed and draft quantities.

***

### **Dynamic Variant Filtering and Sales Store Mapping in B2B Presentation**

**Overview:**

The B2B Presentation module enables users to configure how products and orders behave in the customer portal. Previously, variant dropdowns displayed all possible options regardless of valid combinations, and Sales Store mapping depended on presentation settings, leading to inconsistencies in order creation.

With this enhancement, dynamic filtering of variant options has been introduced along with improved control over Sales Store assignment. Additionally, item information is now visible for products with variants, improving overall usability and accuracy.

***

**Enhancement Added:**

* Introduced **Dynamic Variant Filtering** via app configuration

For example, if the user selects Colour: Ivory, only the option sizes available for Ivory (e.g., 28, 20, 34.5) will appear in the Option Size dropdown.

Similarly, if the user selects Colour: Floral Pink, only the option sizes available for Floral Pink (e.g., 34.5) will appear in the Option Size dropdown.

So, each dropdown dynamically filters the next one to show only valid combinations.

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

* Added a **Sales Store dropdown** in the Presentation Centre. Orders now use the configured Sales Store from the Presentation. If no **Sales Store** is selected, the **Ship Store** is used as the default.

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

***

**App Configuration Requirement:**

* **App Config Name:** Dynamic Filtering of Variant Dropdowns Based on Previous Option Selectio**n**
* **Configuration Location:** Menu → App Config → B2B → Dynamic Filtering of Variant Dropdowns Based on Previous Option Selection

<figure><img src="/files/4VPXFyqfaI4ypF3wCID4" alt=""><figcaption></figcaption></figure>

* **Prerequisite:** The Product Layout must be set to **“Variant Selection”** in the **Other Attributes** tab of the Presentation settings.

***

**Functionality:**

**When App Config Is Enabled:**

* The system dynamically filters variant dropdown options based on prior selections:

  * Option 2 (Optionsize) values depend on the selected value in Option 1 (Colorr).

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

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

  * Option 3 (Style) values depend on selections in Option 1 (Colorr) and Option 2 (Optionsize).

  <figure><img src="/files/t2Qjj4u4kiZxB0OsHTFV" alt=""><figcaption></figcaption></figure>
* This dependency continues sequentially for all variant options. Only valid variant combinations are displayed, ensuring users cannot select non-existent variants.

***

**When App Config Is Disabled:**

* When disabled, all dropdowns behave independently; that is, all configured option values are displayed, regardless of available combinations.

***

**Impact:**

* **Improved Accuracy:** Prevents selection of invalid variant combinations
* **Better User Experience:** Cleaner and more relevant dropdown options in B2B
* **Consistent Order Creation:** Ensures correct Sales Store mapping for all B2B orders
* **Enhanced Product Visibility:** Item information is now available even for variant-based products
* **Reduced Errors:** Minimizes confusion for dealers and improves order reliability

***

### **Introduced a New App Config: Global Allocation Order Sorting**

**Overview:**

Global Allocation (Auto Allocation) determines how inventory received from Purchase Orders is allocated to Sales Orders. Previously, the allocation sequence was fixed and always prioritized Sales Orders based on the **Order Date**.

With this enhancement, users can now configure the sorting logic used during allocation, allowing the system to prioritize Sales Orders based on **Date To Be Shipped** instead of only Order Date. This provides greater flexibility and aligns allocation with business priorities such as delivery commitments.

***

**App Configuration Requirement:**

* **App Config Name:** Global Allocation Order Sorting
* **Configuration Location:** Menu → App Config → Purchase → Global Allocation Order Sorting
* **Type:** Multi-select Dropdown
* **Available Options:**
  * Order Date
  * Date To Be Shipped

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

* **Prerequisite:** This configuration works when auto allocation is enabled through either of the following app configs:
  * **Auto Allocate Linked Sales Orders When Stock is Received**
  * **Auto Allocation Type for Allocating Sales Orders on PO Receiving** (set to a value other than *Do Not Auto Allocate*)

***

**Functionality:**

This configuration determines how Sales Orders are prioritized during auto allocation when inventory is received (on **ASN** close):

* When **Order Date** is selected, Sales Orders are allocated based on the earliest order date (existing behavior).
* When **Date To Be Shipped** is selected, Sales Orders are allocated based on the earliest shipping date, ensuring orders with nearer delivery timelines are prioritized.

This sorting applies when multiple Sales Orders are eligible for allocation against the same received inventory.

***

**Impact:**

* **Flexible Allocation Strategy:** Users can choose between **Order Date** or **Date To Be Shipped** based on business needs.
* **Better Operational Alignment:** Aligns inventory allocation with delivery timelines instead of just order creation timing.
* **Reduced Manual Intervention:** Minimizes the need for manual reallocation by automatically prioritizing the correct Sales Orders.
* **Enhanced Control Over Allocation Logic:** Provides configurability instead of relying on a fixed, system-defined sorting method.

***

### **Auto Quote Integration for Purchase Orders via Import Utility**

**Overview:**

A new utility has been introduced in the Import/Export Utility Centre to support Auto Quote-based Purchase Order creation. This enhancement enables users to upload a structured CSV file and automatically generate Purchase Orders in the system.

The utility not only creates Purchase Orders but also ensures that missing master data (such as Items and Vendors) is handled dynamically during the import process, reducing manual setup effort and improving onboarding efficiency.

***

**Feature Added:** Introduced a new Import Utility template, **“PO AQ to Xoro,”** for Purchase Order creation.

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

***

**Key Enhancements:**

* **Automated PO Creation from CSV:** Users can upload structured files to create Purchase Orders without manual entry.
* **Auto Creation of Missing Items:** If an item does not exist in the system, it is automatically created during import.
* **Vendor Auto-Creation Support:** Vendors are created automatically during upload based on the app configuration behavior.
  * If **“Auto create vendors in API/Uploads”** is enabled, a vendor is created
  * If disabled, the system throws a validation error
* **Support for Multi-Line PO Uploads:** Multiple items can be processed in a single upload with proper mapping and pricing.
* **Seamless Data Reflection in ERP:** Uploaded data (Items, Vendors, Pricing, PO details) is accurately reflected across **Purchase Order Centre**, **Item Centre** and **Vendor Centre**.
* **Pre-Import Script Flexibility:** Allows custom parsing and transformation of CSV data before processing.

***

### **Addition of “Part of BOM (RM)” Column in Item Centre**

**Overview:**

A new column, **“Part of BOM (RM),”** has been introduced in the **Item Centre** to identify whether an item is used as a **raw material (RM)** in any Bill of Materials (BOM).

Previously, the system only indicated whether an item itself had a BOM. With this enhancement, users can now also identify items that act as **components within BOMs**, improving visibility across manufacturing and inventory workflows.

***

**Feature Added:** Added a new column **“Part of BOM (RM)”** in the Item Centre grid. The column displays whether an item is used as a **raw material in any BOM.**

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

***

**Key Enhancements:**

* **Improved BOM Visibility:** Users can instantly identify which items are being consumed as raw materials in manufacturing processes.
* **Faster Analysis & Decision-Making:** Eliminates the need to manually check BOMs to understand item dependencies.
* **Enhanced Inventory Control:** Helps in tracking critical components that directly impact production.
* **Better Filtering & Reporting:** Users can easily filter items (e.g., all RM items used in BOMs) using Advanced Search.
* **Reduced Operational Effort:** Simplifies identification of BOM-linked items during planning, procurement, and audits.

***

### **Auto Produce Manufacturing Orders Support for Wave Templates**

**Overview:**

A new app configuration has been introduced to enable **auto production of Manufacturing Orders (MO)** during wave creation when using **wave templates**.

Previously, the system restricted auto MO production when waves were created via templates, even if auto-production was enabled for insufficient inventory. With this enhancement, users can now extend auto-production behavior to wave template-based wave creation, ensuring consistent automation.

***

**App Configuration Requirement:**

**App Config Name:** Allow Auto Produce MO for Wave Template

**Configuration Location:** Menu → App Config → Manufacturing → Allow Auto Produce MO for Wave Template

<figure><img src="/files/3Z78oLdbrvEkJDHOH4yK" alt=""><figcaption></figcaption></figure>

**Prerequisite:**&#x20;

This configuration works only when the setting **"Enable auto produce when having insufficient inventory"** is enabled.

If this setting is disabled, then auto MO production will not be triggered even if the **app config**, **"Allow Auto Produce MO for Wave Template"**, is enabled.

***

**Functionality:**

When enabled, the system allows automatic creation of Manufacturing Orders during wave creation using wave templates.

***

**Key Enhancements:**

* **Extended Auto Production to Wave Templates:** Enables automatic MO creation even when waves are generated using templates.
* **Consistent Automation Behavior:** Aligns wave template flow with standard wave creation logic for auto production.
* **Reduced Manual Intervention:** Eliminates the need to manually create Manufacturing Orders when inventory is insufficient.
* **Improved Fulfillment Efficiency:** Ensures production is triggered instantly during wave creation, reducing delays.

***

### **Enhanced Line-Level Options in Transfer Purchase Order**

**Overview:**

Enhancements have been introduced in the **Transfer Purchase Order (TPO)** to improve usability and efficiency when managing line items. Users can now quickly search for items within the TPO and perform bulk updates on ship and delivery dates directly from the line-level options.

These updates reduce manual effort and streamline operations, especially when working with large orders.

***

**Feature Added:**

* **Search Box in TPO Details Section**\
  A search field has been added to allow users to quickly locate specific items within the transfer purchase order.

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

* **Batch Ship Date Option**\
  Enables users to update the **Expected Ship Date** for multiple selected line items at once.
* **Batch Delivery Date Option**\
  Enables users to update the **Delivery Date** for multiple selected line items simultaneously.

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

***

**Key Enhancements:**

* **Faster Item Navigation:** The search functionality allows users to instantly find items within large TPOs, reducing time spent scrolling.
* **Improved Operational Accuracy:** Ensures consistent ship and delivery dates across multiple items, reducing the risk of manual errors.
* **Streamlined Workflow:** Centralizes line-level actions within the Options menu, making updates quicker and more intuitive.
* **Better Handling of Large Orders:** Especially useful for high-volume TPOs where multiple items require the same scheduling updates.

***

### **Editable Unit Cost for Non-Inventory Items in Produced MOs**

**Overview:**

The **Unit Cost** field in the *Raw Materials Consumed* section of a **Produced Manufacturing Order (MO)** is now editable for specific item types.

This enhancement allows users to adjust costs for **Non-Inventory, Service, and Labor items** after production, without impacting inventory valuation or stock-related transactions.

***

**Enhancement Added:**

Users can now modify the **Unit Cost** directly within the *Raw Materials Consumed* table for:

* Non-Inventory items
* Service items
* Labor items

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

***

**Impact:**

* **Accurate Cost Adjustments Post Production**\
  Users can correct or update actual costs (e.g., labor, service charges) even after MO completion.
* **Preserved Inventory Valuation Integrity**\
  Since inventory items are excluded, stock value and inventory logs remain unaffected and reliable.
* **Improved Financial Accuracy**\
  Updated costs are reflected in accounting entries, ensuring better cost tracking and reporting.
* **Reduced Manual Workarounds**\
  Eliminates the need for external adjustments or journal corrections for non-inventory cost updates.

***

### **Automatic Delivery Date Calculation Using Vendor Lead Days**

**Overview:**

This enhancement improves the Purchase Order creation workflow by automatically calculating the **Delivery Date** at the line level using the **Vendor Lead Time** defined in the **Item–Vendor Mapping**.

When an item is added to a Purchase Order and a corresponding Item–Vendor Mapping exists, the system automatically calculates the delivery date by adding the configured **Vendor Lead Days** to the **PO Order Date**. This helps ensure more accurate delivery planning and reduces the need for manual date calculations during PO creation.

***

**New Enhancement:**

Lead Time from Item–Vendor Mapping is used to calculate the Delivery Date at the PO line level.

***

**How It Works:**

**Step 1:** Configure the **Lead Time (days)** for the item and vendor in the **Item–Vendor Mapping** module.

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

**Step 2:** Create a **Purchase Order,** selecting the required v**endor.**

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

**Step 3: A**dd item(s) to the **Purchase Order line. T**he system checks whether an **Item–Vendor Mapping** exists for the chosen **Item–Vendor in the PO**.

**Step 4:** If the mapping exists, the system calculates the **Delivery Date** using the following logic:

**Delivery Date = PO Order Date + Vendor Lead Days**

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

**Step 5:** The calculated value is automatically populated in the **Delivery Date field** at the PO line level.

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

***

**Impact:**

* **Automatic Delivery Date Calculation**\
  When an Item–Vendor Mapping exists, the system automatically adds the **Vendor Lead Days** defined in the mapping to the **PO Order Date** and sets the calculated value as the **Delivery Date** at the PO line level.
* **Improved Purchase Planning**\
  This ensures that expected delivery dates reflect the vendor’s defined lead time, improving purchase planning and reducing manual adjustments during PO creation.
* **Backward Compatibility Maintained**\
  If no **Item–Vendor Mapping** exists for the selected item and vendor, the system continues to follow the existing behavior where the **PO header Delivery Date** is populated at the PO line level.

***

### **App Configuration: Auto-Create ASN for Unreceived Quantity on Close ASN**

**Overview:**&#x20;

This enhancement introduces a new App Configuration called **“Auto-Create ASN for Unreceived Quantity on Close ASN.”**

When an ASN is **partially received** and then closed through **third-party apps**, the system can automatically generate a **new ASN** containing only the remaining (unreceived) quantities.

This ensures that pending deliveries remain traceable without requiring users to manually create another ASN for the remaining items. The system also triggers the appropriate **webhook events for the newly generated ASN**, ensuring downstream integrations remain synchronized.

***

**Configuration Details:**

**App Config Name:** Auto-Create ASN for Unreceived Quantity on Close ASN

**Configuration Location:** Menu → App Config → Warehouse → Auto-Create ASN for Unreceived Quantity on Close ASN

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

***

**Functionality:**

**When the App Config "Auto-Create ASN for Unreceived Quantity on Close ASN" Is Enabled:**

* If an ASN is partially received and the **Close ASN** is triggered through third-party apps, the existing ASN is closed, and the system automatically creates a **new ASN for the remaining (unreceived) quantities**.
* A **webhook event** is also triggered for the newly created ASN.
* This allows the remaining items to continue through the receiving process using a separate ASN.

***

**When the App Config "Auto-Create ASN for Unreceived Quantity on Close ASN" Is Disabled:**

* If an ASN is partially received and the **Close ASN** is triggered, the system exhibits default behavior. The existing ASN is closed, and the new ASN is not automatically created for the remaining (unreceived quantities).

***

**Key Enhancements:**

1. **Improved Traceability of Inbound Inventory**\
   By creating a new ASN for unreceived quantities, the system maintains clear tracking of pending deliveries and ensures that remaining items continue through the receiving workflow without disruption.
2. **Webhook Notification for New ASN**\
   When the new ASN is created automatically, a **webhook event is triggered**, ensuring external systems and integrations are notified of the new ASN record.
3. **Configurable System Behavior**\
   The functionality is controlled through an **App Configuration**, allowing organizations to enable or disable automatic ASN creation based on their operational requirements.

***

### Preventing Double Inventory Sync for Loop Returns (ASN Close)

**Overview:**

When **Loop Returns** is connected, and an **ASN (Advance Shipment Notice)** is closed from the RMA module, the system triggers an **Update Inventory webhook**.

Previously, this resulted in **duplicate inventory adjustments** due to:

* One update triggered by the **XoroERP webhook**
* Another update sent by **Loop to Shopify**

This caused **double synchronization of inventory**, leading to incorrect stock levels in Shopify.

To resolve this, we have introduced:

* A new setting: **SourceNameForThirdPartyReturns**
* A new App Config: **Include Third-Party Source in Inventory Update Webhook on Close ASN**

These enhancements ensure that inventory updates triggered by Loop returns are **identified and handled correctly**, preventing duplication.

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

***

**How to Use:**

Step 1: Configure Third-Party Source

* Set the **SourceNameForThirdPartyReturns** in the app settings
* This value will be used as the **RMA ThirdPartySource**

***

Step 2: Enable App Configuration

Enable the following App Config:

**Include Third-Party Source in Inventory Update Webhook on Close ASN**

***

Step 3: System Behavior After Enabling

When this setting is enabled:

* Closing an ASN from RMA will trigger an **Update Inventory webhook**
* The webhook payload will now include the **ThirdPartySource**
* The value passed will be the one selected in **SourceNameForThirdPartyReturns**

***

**Impact**

**What This Fixes**

* Prevents **double inventory adjustments**
* Eliminates conflicts between:
  * XoroERP webhook updates
  * Loop’s inventory sync to Shopify

***

### **Added Ability to Edit Return Code in RMA and Credit Memos**

**Overview:**

Item Return Codes are used to identify and categorise the reasons behind product returns, such as damaged items, incorrect shipments, or customer dissatisfaction. These codes help businesses track return patterns, analyse return causes, and improve operational and customer service processes.

Previously, the **Return Code (RCode)** field displayed the item return code associated with the returned item, but could not be modified during return processing.

With this enhancement, the **Return Code field is now editable** when processing returns, allowing users to update or correct the return reason directly at the transaction level.

***

**Enhancement Added:**

Users can now modify the **Return Code (RCode)** field directly within the line-level details when adding or selecting items in the following modules.

* **RMA (Return Merchandise Authorization)**

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

* **Invoice Credit Memo**

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

* **Credit Memo**

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

***

**Impact:**

* **Improved Return Tracking:** Ensures the correct return reason is recorded during return processing.
* **Better Data Accuracy:** Enhances the reliability of return analytics and reporting.
* **Operational Flexibility:** Allows users to adjust return codes without modifying the underlying item return code records.
* **Enhanced Return Analysis:** Helps businesses better understand and address the root causes of product returns.

***

### **Added Total Price Column in Create ASN and ASN Modules**

**Overview:**

The **Create ASN** module allows users to select item lines from a Purchase Order and create an Advance Shipping Notice (ASN) for receiving goods. During this process, users define the quantity of items that will be included in the shipment before the inventory is received into the warehouse.

To improve visibility into the value of items being received, a **Total Price column has been introduced** in the Create ASN and ASN modules. This enhancement enables users to quickly view the total value of the items being processed in the ASN based on the quantity being shipped or received.

***

**Enhancement Added:**&#x20;

A **Total Price** column has been added in the following modules:

1. **Create ASN Module**

   * A **Total Price** column is now available in the **Purchase Order Lines** and **ASN Lines** table.
   * The value is calculated using the formula: **Total Price = Effective Unit Price (EUP) × To ASN Quantity**
   * The total price dynamically updates when the **To ASN Qty** is modified.

   <figure><img src="/files/T5WpW7cM7oRuOuWF3UF4" alt=""><figcaption></figcaption></figure>
2. **ASN Centre**

* The **Total Price** column is also available in the **ASN Centre (Detail View)** and **ASN Subform (Line Level).**

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

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

***

**Impact:**

* **Improved Cost Visibility:** Users can immediately view the total value of items included in the ASN.
* **Dynamic Calculation:** The total price automatically updates when quantities are adjusted during ASN creation.
* **Consistency Across Modules:** The same calculated value is carried forward from the Create ASN module to the ASN Centre and ASN subform.
* **Better Receiving Oversight:** Warehouse and procurement teams can easily track the monetary value of shipments before and during the receiving process.

***

### **Enhanced Journal Entry Upload with Home Currency Adjustment Support**

**Overview:**

In multi-currency environments, journal entries may require adjustments to ensure that the home currency amounts align correctly with foreign currency values. XoroERP provides a **Home Currency Adjustment** option within the Journal Entry module to handle such scenarios.

Previously, this adjustment could only be configured manually when creating journal entries within the system. The batch upload functionality did not support this setting, meaning users could not specify Home Currency Adjustments while importing journal entries through the upload template.

With this enhancement, the **Journal Entry upload template now includes support for Home Currency Adjustment**, allowing users to define this behaviour directly during batch uploads.

***

**Enhancement Added:**&#x20;

A new column **`IsHomeCurrencyAdjustment`** has been added to the **Upload Journal Entry template**.

**Description:**

* This column corresponds to the **Home Currency Adjustment checkbox** available in the Journal Entry module.
* When uploading journal entries, the system reads this value from the upload template and applies it to the corresponding Journal Entry created in the system.&#x20;

***

**How It Works:**

**Step 1:** Navigate to the **Upload Journal Entries** module and download the CSV template by clicking on “**Download Template.**“

**Step 2:** The template now includes the new column **IsHomeCurrencyAdjustment**.&#x20;

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

**Step 3:** Populate the template with the required journal entry details. If the journal entry should be treated as a **Home Currency Adjustment**, enter **Y** in the **IsHomeCurrencyAdjustment** column. Otherwise, if no adjustment is required, leave the field blank.

**Step 4:** Upload the completed CSV file through the **Upload Journal Entry** module. If the upload is successful, journal entries are created in the system.&#x20;

**Step 5:** The **Home Currency Adjustment flag** will be applied based on the value provided in the template.

{% hint style="info" %}
A journal entry may contain multiple lines (debit and credit rows) with the same **ThirdPartyRefNo**. In such cases, the system reads the value from the first line of the journal entry. This value determines whether the **Home Currency Adjustment** flag is enabled for the entire journal entry.
{% endhint %}

***

### **Added New Fields in Item Page Default Setup**

**Overview:**

The **Item Page Default Setup** has been enhanced to include additional configurable fields that support improved manufacturing tracking, warranty management, and product reference accessibility. These fields allow administrators to define default operational attributes directly within the item configuration interface, ensuring that critical item-level information is captured consistently at the point of setup.

By incorporating these fields into the Item Default Setup, organisations can better align inventory configuration with manufacturing accounting requirements, warranty tracking needs, and product documentation workflows.

***

**Feature Added:**

The following fields are now available within the **Item Page Default Setup** configuration:

• WIP Account\
• Warranty UOM\
• Web URL

**Location:** From the **Create Item** page, click the **vertical ellipsis (⋮) icon** located at the top of the page and select **Page Defaults.**

***

**Key Enhancements:**

1. **WIP Account**\
   • Allows associating a Work-In-Progress (WIP) account with the item.\
   • Supports manufacturing environments where production costs accumulate before the item is completed.\
   • Improves financial tracking of partially completed inventory during manufacturing.
2. **Warranty UOM**\
   • Defines the unit of measure used for warranty duration.\
   • Works together with the Warranty Time field to determine the warranty period.\
   • Typical units may include days, months, or years.
3. **Web URL**\
   • Allows storing a reference link to the item’s webpage or external documentation.\
   • Can be used to link product pages, manufacturer documentation, or specification resources.\
   • Provides quick access to external product information directly from the item record.


---

# Agent Instructions: 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/whats-new/release-notes/current-release/2026/march-2026-release.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.
