Heads up, our devs are blazing ahead—docs are catching up, so some features might not be fully documented yet.

March 2025

Monthly summary / tl;dr

New features 🚀

  • There’s now full support for pre-payments (e.g. the user pay a limited amount in advance).

  • Also customer reservations is now possible, with smart functions to inform the customer once the reserved product has arrived, all done while taking the receivement.

  • You can now print an order as a PDF directly from an open sale.

  • Inventory transfers between warehouses is now possible, and it’s also possible to set different warehouses for individual order items within the same delivery.

  • The purchasing flow has been upgraded with support for automatic suggestions based on min/max stock levels, editable purchase orders until fully received, and a new, simplified receival dialog.

  • In the Backoffice, you’ll find new tools for managing printers, including printing test pages, among several other stings.

+ much more! Check out the full list below.

Improved 👌

  • Order handling—particularly for scenarios like Click & Collect—has been streamlined, making it easier to mark steps as completed and notify customers.

  • The delivery address dialog is more user-friendly, and the system now supports smarter warehouse logic per order item.

  • Multiple UI improvements have been made across sales and Backoffice views, including better visuals in touch sales, smarter dropdowns, and simplified navigation.

  • Monthly reports for sales and inventory have been improved, and various elements in device and printer linking have been refined for smoother setup.

  • There’s also better handling of product and campaign rules, making it easier to maintain accurate stock and pricing across stores.

  • Search functionality is more robust, including for suppliers and deliveries.

  • It’s now possible to modify warehouse selections for deliveries and remove items from deliveries even when in early stages.

+ much more! Check out the full list below.

Fixed 🤦‍♂️

A long list of bug fixes that improved reliability and user experience, like:

  • Several issues with payment dialogs, settlement views, and discount logic have been resolved.

  • Partial settlements now behave correctly.

  • Orders using reserved items now adjust stock properly.

  • Issues affecting EHF invoice exports, label printing, and product reservations have also been fixed.

+ much more! Check out the full list below.


2025-03-31

Added

  • Print order as PDF on an open sale

  • Support for inventory transfer between warehouses

Improved / changed

  • Improved order handling with the ability to more easily notify the customer and mark handling as completed (typically for Click & Collect etc.)

  • Delivery state "Not delivered" is deprecated and replaced with "New" and "Started"

  • Pre-payment info in parked/canceled order view

  • Moved DeviceLink code to the top of the device page

  • Option to set different warehouse on order items within the same delivery

  • Added help text for payment method key

  • Improved "deliver to address" dialog

Fixed

  • It's now possible to change the warehouse on a delivery or its order items

  • Fixed issue where it wasn't possible to remove items from a delivery in status New or Started, even though it should have been allowed

  • Users are now required to select a discount reason when setting a discount on an order, if at least one reason exists

  • Improved dropdown menu so text doesn't overflow

  • Pressing Enter in the search field (open sale – keyboard mode) now opens the product search dialog

  • Settled order dialog failed to open if any items had ReservationType: Purchase or RequestPurchase – this is now fixed

  • Supplier search now works in supplier dropdowns

  • Fixed store payment issuer list, which previously failed to load correctly

2025-03-28

Improved / changed

  • Dintero: removed dataTimeLayout for handleCallbackRequest, now using capture.CreatedAt instead

  • Invoice no longer has requireExclusiveUse, so it can now be combined with other payment methods

2025-03-27

Fixed

  • Stripe callback will now always capture the amount

2025-03-26

Fixed

  • PurchaseOrderUid is now included in the notification API response

  • Settlements without transactions will now be added to receipts

2025-03-25

Improved / changed

  • [Backoffice] Adjusted printer layouts

2025-03-25

Added

  • [Backoffice] Implemented support for printer search

  • New endpoint: POST /tenants/{{tenantUid}}/printers/search

  • New API endpoint: POST /tenants/{{tenantUid}}/printers/{{printerUid}}/test

  • Implemented printer testing – supports ESCPOS, ZPL, and PDF

  • Settlement search

  • New API endpoint: PUT /tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}

  • New API endpoint: GET /tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}

  • Added Finnish receipt and email templates

  • Printing of pickup labels for order items

  • Added printer information to the /device endpoint

  • New endpoint: /tenants/{tenantUid}/orders/reservations to update reservation type on order items to PURCHASEORDER or WAREHOUSE

  • New field description to the device info in payment method response

  • New batch endpoint: set stock for a list of products in a warehouse

  • [Backoffice] Implemented NiceUID generation for device and printer

  • Added HasPaymentBalanceOutstanding request field to settlement search

Improved / changed

  • [Backoffice] Improved Monthly Sales Report

  • Added EHF status check

  • [Backoffice] Improved Monthly Inventory Report

  • [CHORE] New table order_settlement_transactions to track captured and refunded transactions

  • can now be disabled 🐰

  • Device code is now checked case-insensitively when linking a device

  • Renamed table order_settlement_transactions to order_settlement_transaction_logs

  • Purchase orders are no longer automatically set to RECEIVED or CLOSED

  • Webhook ORDER_HANDLING_STATE_CHANGED now includes orderHandling

  • Inventory check on orders now includes all products for the SKU

  • Improved query performance for listing campaign products

  • Devices can now be filtered by storeUid

  • Delivery search now properly supports storeUids filtering

  • Campaign update now disallows CHEAPEST type without required criteria

  • Added validation for flowretail_cashdrawer when updating tills

  • It is now possible to download order receipt using a device without a till

  • Better error message if country code is missing on supplier

Fixed

  • Verifone: payment no longer fails when timeout is reached

  • Fixed response structure for purchase requests on order lines

  • Delivery is now properly removed when deleting an order, and deliveryUids are removed when deleting a delivery

  • Warehouse is no longer kept on order deliveries after deletion

  • Fixed 400-error when creating purchases based on min/max with no lines

  • CreateSplitOrderProductLines now correctly accounts for discounts

  • Prevented infinite loop on update/create customer when Omnium integration is active

  • Corrected EHF calculation for discounted invoice lines

  • Fixed table cell spacing in receipt CSS

  • PurchaseOrderQuantity is now prevented from being negative

Removed

  • Removed deprecated field requireExclusiveUse from device info payment method response – clients must now use the field in the requirements object

2025-03-24

Added

  • Support for package / bundle products

  • Purchase orders can now be automatically pre-populated based on min/max stock levels for a specified warehouse

  • A new simplified dialog is used for receieval of purchase orders

  • (Beta) Administration of customer reservations (order lines marked as needing purchase)

  • Filters added to the product page

  • New button in the order receipt dialog to print order as PDF

  • (Beta) Order with pre/part-payments

  • [Backoffice] FlowRetail CashDrawer service on tills

  • [Backoffice] Printers tab added on the store page for store-located printers

  • [Backoffice] Devices tab on the store page for devices located in the store

  • [Backoffice] Printer test page is now available

  • [Backoffice] Invoice outstanding Excel report

  • [Assistant] Ability to create and edit purchase orders

Improved / changed

  • [Backoffice] Till device information updated – revoke/authorize device removed

  • [Backoffice] Product group search-scope selector added to product group create/edit dialog

  • [Assistant] Ability to filter purchase orders by product

  • [Assistant] Ability to filter orders by product

  • Cost price now visible in touch mode sale when pressing the CM (Consumer Margin) button

  • Configurable products now have a "Show variants" option on the product page

  • Payment description field

  • The Purchase and Receive page now includes a filter for purchase order status

  • Filters in product search are now preserved when selecting a variant for a configurable product

  • Purchase orders can now be edited until fully received or closed

  • Confirmation dialog in keyboard mode when activating VAT-Free sale

  • GTIN added to product details dialog

  • Long-press to copy SKU on the product list page

  • Settled order dialog now shows in-stock quantity for items not delivered

  • Display messages on a terminated settlement are now shown in the payment dialog

  • Improved tabs in the product info dialog

  • [Assistant] Purchase orders can now be accessed from the product details page

  • [Assistant] Ability to zoom in on full-screen product images

  • [Assistant] Product restrictions are now visible on the product details page

  • Purchase order product search now hides products that are not allowed to be purchased

  • Archived purchase orders can now be found in the Purchase page by enabling relevant statuses in the filter

  • Mystats now displays the correct currency

  • Simultaneously update the ETA for all products in a purchase order

  • Shortcut for changing estimated delivery date in purchase orders is now "E" (previously "D") to avoid conflict with the "show details" shortcut

  • Purchase order search results now only show orders from the same organization

  • Store list response is now filtered to only include stores from the same organization

  • In touch mode, open sales of type "Offer" now show a green chip

  • Negative amounts are now displayed in red in order lists

  • Supplier toggle in product search (for adding products to purchase orders) is now enabled by default

  • [Backoffice] Till number info shown when creating or editing a till

  • [Backoffice] Pricelist management has been removed – now managed in Client

  • [Assistant] General UI improvements

  • [Assistant] Minimum supported iOS version is now 15.5

Fixed

  • Partial settlements were not shown in the payment dialog, and could not be deleted – now fixed

  • It was not possible to add variants to internal purchase orders – now works as expected

  • Adding a note to an order line in keyboard mode made the order line itself invisible – this is fixed

  • Keyboard shortcuts did not work in the payment success screen

  • If a new purchase order failed to be created, the app would be stuck until restart – now resolved

  • Discounts can now be applied with precision

  • RMA orders created from a purchase order didn’t set warehouse on items, so stock wasn't adjusted – this is now handled

  • [Backoffice] Various bugs fixed in report forms

  • [Backoffice] Product group, brand, and store lookup lists now include all items

  • [Backoffice] "New" buttons moved to the top of the page for device, printer, and till

  • [Backoffice] Added multi-store dropdown for optional organization filter

  • [Assistant] Camera scanner now only scans items visible in the viewfinder

2025-03-14

Fixed

  • Fixed error when creating a delivery with a non-physical freight item

  • Forced NON_PHYSICAL products to never create deliveries, even if set to be reserved

2025-03-11

Added

  • Implemented flowretail_cashdrawer protocol

  • New field hideNotAllowPurchase in product search to hide all products not allowed to be purchased from supplier

  • Network print support added

  • List products that are requested for purchase, ordered by name

  • Discount handling added for package products

  • New API endpoint: POST /tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/pre-payments

  • Implemented new webhook: ORDER_HANDLING_STATE_CHANGED

  • Initial component price now supported for package products

Improved / changed

  • Receipt email subject now uses tenant language

  • OrganizationFilter in search for purchase orders

  • Support for payment on invoice in Visma Business accounting report

  • Variant information is now printed on product labels

  • Order number is added to EHF file name

  • Visma Business accounting report now uses receipts instead of orders

Fixed

  • EHF XML creation bugs: Norwegian org. number and line price excluding VAT

  • PurchaseOrder: set expectedDeliveryDate to today when using AutoOrderProposal

  • Fixed package component price calculation

  • Customer contacts can now be created with a custom UID

  • Allowed actions are now properly set for package product order lines

  • reservationType was not set when creating order lines – now it is

  • Purchase: fixed wrong status after deletion and incorrect purchasedQty in product search

  • Package product itself is no longer deliverable – only its components are

  • Correct codepage is now used when printing exchange notes on ESCPOS printers

2025-03-04

Added

  • Ability to create VAT-Free sales

  • View, create, and edit printers

  • Select printer for a device

  • "Send invoices externally" tenant setting

  • Payment method parameters for invoice

  • ESCPOS: Open connected cash drawer

  • Verifone: Added context with timeout in Payment and LastTransaction

  • New API endpoint: GET /tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/items/{orderItemUid}/addons

  • New LedgerType: CUSTOMER_LEDGER

  • New webhook: ORDER_RECEIPT_SETTLED

  • It is now possible to manually send an invoice through EHF using ehf-invoice --send

Improved / changed

  • Lines now exclude VAT when order is marked as vatFree = true

  • Package data now included in product response

  • Added externalmsn param in logTransaction for extended logging

  • Verifone: Added internal status POLLING to trigger GetSettlementStatusFromExternSource on every fetch

  • Verifone: Mapped DEVICEOUT to POLLING status

  • General improvements to search

  • Verifone: Updated handling of DeviceOUT status

  • Add, update, and delete of customer contacts now requires tenant access level Backoffice/Avdelingsleder

  • Custom parameters (e.g., reference number) can now be added to the invoice payment method

  • Response from order receipt search now includes additional fields

  • All users with access to a tenant can now search in purchase orders

  • Campaign codes are now case-insensitive

Fixed

  • External customer search now works reliably across all scenarios

  • Fixed pagination in organization list

  • Fixed pagination in stocktaking product control list

  • Verifone: added unique refServiceID for getLastTransaction

  • Campaign price and name now show on product details for store – implemented in ListCategoriesForStore and GetCategoryDetailsForStore

  • Fixed pluralization error and 500 error in purchase search

  • Delivery of NON_PHYSICAL products is now correctly handled

  • Fixed EHF XML creation: Norwegian org. number and line price ex VAT

Removed

  • Verifone: removed unused async payment/refund services and handlers

Last updated

Was this helpful?