# January 2026

## 2026-01-29

### Added

* **Serial number management** — new dialog in sale for changing serial numbers, now with warehouse selection and reserve stock options. Plus, the "missing serial number" info dialog when entering payment now includes an option to change the serial number directly.
* **Purchase order filtering** — new filter on the purchase order list for confirmed purchase orders, plus reintroduced client-side sorting.
* **Print PDF** option added to the internal purchase order menu.
* **Graceful shutdown** — if the app is closed with an open order, it will now attempt to set it to parked/confirmed status automatically.

### Fixed

* App menu dialog no longer closes immediately after being opened by tap on iOS.
* Escape key now properly closes the app menu dialog.
* Complete or canceled orders can no longer accidentally be opened from the parked/confirmed dialog.
* Close till report dialog now shows the full date, not just the time.
* Additional notes on sale orders are now properly reset when opening a new order.

## 2026-01-27

### Added

* **Customer order history** is now front and center — the Customer Info dialog shows the **total order count** plus the **last 5 orders** directly in the General tab. No more digging around to see what your regulars have been buying.
* **Cash Reconciliation** gets more flexible: stores with this feature enabled can now **close tills without counting** and view a **till list with status info** for a quick overview of all registers.
* **EHF status badge** now appears when creating an invoice settlement towards a company customer — so you always know where that electronic invoice stands.
* **Change serial number** directly from the sale view with a new dialog that includes warehouse selection and stock reservation. Plus, the "missing serial number" info dialog now lets you fix the issue right there instead of backing out.
* **Settled state** indicator added to the order list and order dialog in Admin — easily spot which orders have been fully settled.
* **Change amount check** added before counting till on the store settlement page — a small safeguard to keep your cash reconciliation on track.
* New **Flowbox** option: hostname field for auto-registration to support custom hostname configurations.
* **Order import endpoint** now supports a `shipping` object in deliveries, including tracking info, delivery provider, and pickup point details.
* **Product turnover report** improvements: new "Seller" column when grouping by user code, and "External ID" column now appears between SKU and Brand for better readability.

### Improved

* **Sales receipt report** columns reorganized: column G now shows **seller code** (UserCode) instead of display name, column H shows seller display name. Column heading changed from "User" to "Seller".
* <kbd>Omnium</kbd> When Flow deletes order lines, the corresponding <kbd>Omnium</kbd> order lines are now cancelled to properly update reservations.
* **SMS sender names** now allow Nordic characters (æøåöä) — finally, "Blåbær Butikk" can text customers properly 😅
* **CashRevenueAmount** is now always returned in the cash register API response.
* Layout adjustments on the **products table** in Admin for a cleaner view.

### Fixed

* Orders are no longer set to **COMPLETE** when receipts are still **IN\_PROGRESS** — patience is a virtue, and so is accurate order status.
* **Products with negative price** allowed could not actually be set to a negative amount in some sales views. Now they can.
* **Package products** are properly excluded from accounting reports — only their component products are counted, as it should be.
* **Posting list** now uses full width as intended.
* **Expire orders automatically** feature is back in working order.
* Fixed an issue where the Admin UI would sometimes jump back to the first tab on the store page.
* Added accessToken access for `GET` till status by till UID.

### Deprecated

* Delivery-level fields `trackingNumber`, `deliveryProviderUid`, and `deliveryProviderMethodUid` are deprecated — use the new `shipping` object instead. Backward compatibility is maintained, but migration to the new structure is recommended.

## 2026-01-14

### Added

* Initial version of **role-based authorization system** — create custom roles with specific access levels tailored to your organization's needs.

* New extension: **Poster** — for very easily creating and managing in-store promotional posters. Produced in PDF-format, in the paper format of your choice, like A4.

* New **Replenishment page** in Admin for managing stock replenishment workflows. This first iteration focuses on efficient max/min stock maintenance.<br>

  <figure><img src="https://593715853-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0GCVniU8V4PZKEK4axWz%2Fuploads%2FVRks4fs8qbgfU71hNa7S%2FSCR-20260112-jvqa.png?alt=media&#x26;token=2308b488-4f5f-4fb9-8630-be2eabe1fc7a" alt=""><figcaption><p>Super-easily maintenance of both D-pack and max/min, with both previous and assumed future sales.</p></figcaption></figure>

* Scan customer membership card for quick customer registration.
  * You can now **print barcode labels for customers** directly from the customer dialog, and then stick it onto a membership card you give out to the customer.
    * New endpoint: `GET /tenants/{tenantUid}/customers/{customerUid}/print`.&#x20;
  * Super-quickly lookup customers by their **customer ID** using `CUST#<customerid>` in the search query (with exact match enabled) – practically just scan their membership card.&#x20;

* **Parent customers** can now be set on company customers — helpful for managing corporate hierarchies.

* Option to **print PDF directly from purchase order** in the Client.

* New endpoint to get **order status**: `GET /tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/status`.

* New webhooks: **order line delivery** events.

* New tenant setting: **requiredCustomerFields** — define which customer fields are mandatory during registration. You can now for example require new customers to have name and address filled in, alongside email and phone number.

* New `PASSWORD` type for extension parameters — sensitive fields like tokens, API keys, and secrets are now properly masked in the interface.

* Added [**SOA**](#user-content-fn-1)[^1] **filter** to product search for more precise filtering.

### Improved

* **Stocktaking** got smarter: products without stock records now automatically get zero-amount stock entries, and stock products can always be added to a stocktaking.
* **Invoice PDFs** now display the **currency code** alongside the total — no more guessing which currency you're going to pay in.
* Cash registers can now be set to **CLOSED\_NOT\_COUNTED** status via the SetTillStatus endpoint.

### Fixed

* **Stocktaking pagination** now works correctly in all scenarios.
* **Invoice balance calculation** fixed when credit orders are settled with cash instead of against the original invoice.
* **Gift card settlement** now displays the correct name.
* Payment method names for **Flow Gift Card** and **Store Credit** are now properly translated.
* Poster HTML sanitizer was a bit too strict — now relaxed to allow more formatting options.
* Fixed **layout shift issues** during sidebar transitions in Admin.

## 2026-01-06

### Added

* **Purchase orders** received several powerful new features:
  * **Sort order handling** – items now follow a defined sort order for better organization.
  * **Reservation allowed after date** – prevent staff from reserving products on purchase orders that are still months away.
  * **Open directly from Custom Orders overview** – jump straight to a purchase order from the Custom Orders list.
  * **Reserved quantity** now visible in the product list.
  * **Info dialogs** when adding products to purchase orders, including warnings when adding configurable products without variants.
* **Customer barcode scanning** now automatically adds the customer to the current order – just scan and go.
* **Package components** are now displayed on receipts, making it clear what's included in bundled products.
* **Order item reference** added to receipt prints for improved traceability.
* New **customer parent linking** – connect a company customer to another using `customerParentUid`. Perfect for managing subsidiaries or franchise structures.
* **Batch import of payments** – import multiple payments in one go.
* New API endpoints for **poster templates**:
  * `GET /tenants/{tenantUid}/poster-templates`
  * `POST /tenants/{tenantUid}/poster-templates`
* **SVG images** are now allowed in Poster HTML content.
* New search field `settlementExternalPaymentReference` in receipt search for easier payment reconciliation.

### Improved

* **Customer names are now trimmed** automatically when creating or updating customers – no more trailing spaces or accidental line breaks causing issues.
* **Offers can now exceed current stock levels** – the quantity is validated against actual stock only when converting the offer to an order. Great for pre-orders and reservations.
* **Pickup note layout** (ESCPOS) has been refined for better readability.
* Enriched **device data** on till responses for better hardware tracking.

### Fixed

* **Product.AllowDiscount** now imports correctly from Excel.
* **Freight product pricing** now fetches the correct store price when using external delivery APIs (Power delivery).
* **Cash register status** updates from the cash report endpoint now properly update till status as well.
* **Product property requirements** (`items->productProperties->*->required`) now correctly reflect whether a property is required by the parent product.
* **EHF CreditNote** no longer fails when contact information is missing – a placeholder is added automatically.
* **Receipt printing** now strips all illegal characters to prevent print errors. Yes, someone tried adding a cute emoji to the VAT number field. The printer was not amused. 🖨️💔
* **ExternalId on Tenant Roles** is now properly saved and updated.
* **Campaign store assignments** – fixed an issue where updating stores on a campaign could accidentally remove stores from other organizations.

[^1]: Subsidies.
