2026-02-17

Major New Features

Exchange Rate Management

You can now configure custom exchange rates directly in Organisation Settings > Exchange Rates. When a configured rate exists for a currency pair, it will be used instead of the live forex rate. On individual projects, you can toggle between the configured rate and the live rate as needed.

Quote Reject Reasons Management

A new Data Management screen has been added for managing Quote Reject Reasons. You can now customise the dropdown options shown when a reviewer rejects a quote, instead of being limited to a fixed set of reasons.

Duplicate Customer Order Number Warning

A new organisation-level setting lets you enable warnings when a user enters a Customer Order Number that already exists on another order. The warning is informational — users can still proceed with the duplicate reference if needed.

Backorder Pricing

When an order line is partially allocated, and a backorder line is created, the backordered portion can now receive different pricing. This supports scenarios in which backordered items are priced differently (e.g., due to updated supplier costs or contract terms).

End User PO Number on Quote Review

When the Deliver to End User option is enabled on a project, the quote review screen now includes a field to capture the End User PO Number. Toggling the Deliver to End User option is also recorded in project history.

Quote Review Status on Workspace

The Workspace now shows a coloured indicator on the document icon reflecting the result of the most recent quote review. Clicking the document icon opens a pop-up where the Quote Review icon displays detailed results on hover.

Client Search Enhancements

Reporting Group is now displayed in client search results, making it easier to identify the correct client

Search term highlighting is applied to both Client and End User search results

The Client and End User detail tabs have been updated to display longer company names without truncation

Warehouse Module - Stock on Hand Report — Brand & Category Columns

The Stock on Hand report now includes Brand and Category columns, both in the on-screen view and the exported file.

Credit Limit Bypass for Cash Clients

Cash-only clients now automatically bypass the credit limit check action, removing unnecessary friction during order approval.

Integration Due Date Type on Client Page

When an integration (e.g., Sage X3) sets a custom Due Date Type on a client, the Edit Client page now displays it as a read-only field so users can see the configuration set externally.

Product Search Improvements

Pagination & Stock Visibility

Fixed an issue where the Product Search tab could show incorrect page counts or empty pages

Stock levels are now displayed on product cards, showing quantities per location/warehouse

New stock filters: Location dropdown (or Warehouse dropdown for Enterprise), plus an "In Stock Only" toggle

Improved filter layout for better responsiveness

Quick Product Code Entry

Pasting an exact product code into a project line and immediately tabbing away now correctly loads the product, even before search results appear. This streamlines workflows for power users working with known product codes.

Bug Fixes

  • Bundle order approval — Orders containing bundles with child lines no longer incorrectly fail approval with “Please ensure that all product lines are setup correctly”

  • Empty file upload — Uploading an empty or zero‑byte file now shows a clear error message instead of silently saving a corrupt file

  • Xero integration — Fixed customer balance sync, journal sync trigger timing, and added a new cost price updater job

  • Supplier stock levels — Null stock levels from the API now correctly display as “No Data” rather than “0 Units”

  • Sales channel dropdown in apps — Fixed an issue preventing the Sales Channel dropdown from loading in connected apps (Magento, Samsung, etc.)

  • Project details dropdown — Fixed a race condition where updating the Sales Rep on a project could fail to save

  • Selling price on order lines — Corrected issues where selling price was not set when cost price was missing, or when orders were created via API with explicit selling prices

  • Document sync — Virtual products are now correctly excluded from document sync to accounting systems (e.g., Xero)

  • Product codes on documents — Product codes now correctly display for branded products without sizes on generated documents

  • Branded line images — Images uploaded to branded project lines now display properly in previews and generated documents

  • Project line addition — Fixed an error that prevented new project lines from being added in certain cases

  • Get In Touch tracking — Creating a document for a project now correctly updates the project’s Get In Touch date

  • Get In Touch action — Now correctly updates the Last Contacted date on a project

  • Parcel definition filter — Fixed an error when filtering box dimensions in settings

  • Location duplicates — Resolved a case‑sensitivity issue that caused duplicate locations to be created

  • Enterprise SLA — Fixed an intermittent error caused by duplicate entries in the SLA dictionary

API Endpoint Changes

  • GET /api/product/list/codes — Now returns productId (Guid) alongside each product code; search results appear quicker

  • GET /api/project/{id}/saleschannelNew: Returns the sales channel name for a project

  • GET /api/stocklevel, GET /api/simplestocklevel — Now includes onOrderQty in the response

  • POST /api/stocklevel/batchNew: Batch create stock levels

  • PUT /api/stocklevel/batchNew: Batch change stock levels

  • GET /api/exchange-rateNew: List all configured exchange rates

  • GET /api/exchange-rate/{source}/{dest}New: Get a specific exchange rate

  • PUT /api/exchange-rateNew: Upsert a single exchange rate

  • PUT /api/exchange-rate/batchNew: Batch upsert exchange rates

  • DELETE /api/exchange-rateNew: Delete an exchange rate by currency pair

  • DELETE /api/exchange-rate/{id}New: Delete an exchange rate by ID

  • GET /api/pricelistsNew: List pricelists

  • POST /api/pricelistsNew: Create a pricelist

  • PUT /api/pricelists/batchNew: Batch import prices per pricelist

  • POST /api/v1/location/batchParentLocationId is now required; WarehouseId is now non‑nullable

  • POST /api/user-warehouseNew: Link/unlink users to warehouses

  • Sales Channel Import — Simplified request model (fewer required fields)

  • GET/PUT/POST /api/clientDueDateValue property added to client request/response models

  • GET /api/organisation/detail — Fixed the missing mapper issue causing the endpoint to fail

Last updated