Heads up, our devs are blazing ahead—docs are catching up, so some features might not be fully documented yet.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

September 2026

Monthly summary / tl;dr

September so far:

  • Store-specific accounting accounts — a store can now override a product's central accounting account from its own accounting tab.

  • Shelf warmer report rows can now be unfolded to show the stock breakdown by warehouse and arrival date right on the report page, not only in the Excel export.

  • Broadcasts can now be sent by email as well as text message, composed with a subject line and an HTML body edited against a live preview.

  • Customer addresses now sync to Omnium automatically as they're added, changed or removed.

  • Suppliers can now be asked to confirm quantities and delivery dates for several products in one request.

  • Inter-store trade orders sync earlier and more tightly — a sale creates the buying store's purchase order as soon as it's parked, and changes on either side now reach the other immediately.

  • Inter-store trade pricing now follows one consistent rule regardless of which side started the trade, and a line can no longer cross stores without a price on it.

  • Purchase orders now show when goods are on their way — a confirmed receivement moves the order to "in transit", with the received quantity staying at zero until they arrive.

  • Admin sign-in and sign-out are more reliable — logging out now fully clears the session, and a stuck sign-in offers a manual option instead of endless redirects.

  • Package sales are no longer double-counted — turnover, profit and the SAF-T export were too high for any period with package sales.

Working with the API? See For developers at the bottom.

2026-09-08

Added

  • Admin: broadcasts sent by email can now be composed with a subject line and an HTML body edited against a live preview.

  • Purchase orders now show as "in transit" once the supplier confirms shipment, so you can see the goods are on the way while the received quantity stays at zero until they arrive.

  • A purchase order that is closed, or that the supplier has cancelled, can no longer be added to, or reserved against.

Improved

  • Inter-store trade pricing now follows one rule no matter which side started the trade: the buying store's own price list if it stocks the product, otherwise the selling store's cost plus its markup — and a line can no longer cross to another store without a price above zero on it.

  • The inter-store stock lookup now shows the note the selling store left on its own purchase order line, so you can see what was said about the goods before reserving from them.

  • A return that must go back to the original payment method now only lists that method, instead of also showing the others as unselectable options.

  • Admin: the user menu now shows the API version in every environment, and which build is running outside production.

Fixed

  • Releasing a reserved line back to the purchase-request queue, or removing the reservation, now correctly resizes or removes the buying store's purchase order line, so it always reflects what is still needed.

  • A sales line that had already received stock from its purchase order now keeps naming that order after being released, and correctly forgets it if nothing had arrived yet.

  • Stock reserved from, or earmarked on, a purchase order no longer loses track of that order when a line is updated automatically rather than by a person.

  • A purchase order line no longer counts a released sales line as still reserved, which could stop the next customer from being served from stock that was actually free.

  • Updating a company customer synced from Omnium no longer clears data Flow doesn't manage — assortment codes, category filters, discount and price groups, per-market credit, the logo, and consent history are left untouched.

  • A campaign requiring a minimum quantity now removes its discount as soon as the quantity drops below the minimum, and reapplies it if the quantity goes back up; a per-item fixed-amount campaign now recalculates correctly when the quantity changes, and a product taken out of a campaign's selection loses the discount too.

  • A line that loses its campaign discount automatically no longer keeps naming that campaign as the reason, so receipts, the Omnium export and the EHF basis no longer show a discount reason for a discount that no longer applies.

  • A campaign limited to a customer group no longer keeps its discount if the order's customer leaves that group, or the order has no customer at all.

  • Removing a line from a purchase order already sent to the supplier no longer reverts the whole order back to a draft.

  • Package sales are no longer double-counted — turnover, profit and the SAF-T export were too high for any period with package sales.

  • Goods received on a purchase order confirmation are now placed in the warehouse chosen at receipt, instead of always the confirmation's original warehouse.

  • Shipments sent to Omnium now use the delivery method's configured mapping, instead of always reporting a generic "ship to customer" method when the delivery method had dynamic options.

  • A payment taken on a Dintero terminal is now correctly reported to Dintero as in-store, instead of being filed as an online payment.

  • Admin: Nynorsk labels that had kept Bokmål forms now read correctly, and the store setting for payments without a sales order uses the same term as the till.

  • Admin: the HTML editor for email bodies and poster templates now shows a text cursor in dark mode, with a background matching the other fields.

2026-09-07

Fixed

  • Client: the service orders search field is now focused automatically when the search opens.

  • Client: save and close in the price list dialog no longer stays disabled after changing a product's price, from-date or time — the change can always be saved.

2026-09-01

Added

  • Store-specific accounting accounts — a store can now override a product's central accounting account from its own accounting tab (Admin), for both regular and margin-scheme products.

  • Shelf warmer report rows can now be unfolded to show stock split by warehouse and the day it arrived, right on the report page — previously only available in the Excel export.

  • Broadcasts can now be sent by email as well as text message. Recipients see the store's name as sender and reply address, and delivery status is reported back per recipient.

  • Customer addresses now sync to Omnium automatically as they're added, changed or removed.

  • Suppliers can now be asked to confirm quantities and delivery dates for several products in one request.

  • Admin: the app settings that control what the till shows for a store can now be edited from the store's general tab.

Improved

  • Inter-store trade orders now sync earlier and more tightly. A sale creates the buying store's purchase order as soon as it's parked or confirmed, instead of waiting until the goods are delivered, and adding, resizing or removing a line on the sale now reaches the buying store's order immediately instead of waiting for shipment. Cancelling one side now cancels the other automatically, and closing a received purchase order no longer cancels a sale whose goods have already shipped.

  • A purchase order between stores now shows more about the trade — which warehouse holds the goods, what the selling store is waiting on to fulfil it (already in stock, on order from its own supplier with an expected date, or coming from a third store), and the coupled sales order's number, status and store instead of just an ID.

  • Sales order lines in inter-store trade show which other store is involved, including the seller's incoming shipments for that line.

  • Admin: the shelf warmers report now has organization and store pickers right at the top, and every active filter shows as a removable chip, so scoping the report no longer needs the filter dialog.

  • Admin: sign-in and sign-out are more reliable — logging out now fully clears the session (it could get stuck, making a fresh sign-in the only way out), a link opened after signing out asks you to sign in instead of silently reusing the identity provider's still-active session, and a stuck sign-in offers a manual option after a few failed attempts instead of redirecting endlessly.

  • Admin: the product search dialog now follows dark mode properly — its row highlight and dividers no longer show fixed light-mode colours.

Fixed

  • Product images are back on printed offers and order confirmations.

  • A Nets card payment the terminal completes after Flow has already marked the attempt cancelled or rejected is now recorded, instead of silently discarded — so the customer is never charged without it appearing in Flow.

  • The X/Z report now names everyone who had the till open on the report's date, instead of whoever opened it most recently, which could put the same name on a whole week of reports.

  • Broadcast recipients whose delivery report never arrives are now marked failed after 24 hours, instead of leaving the broadcast's counts permanently short.

  • A broadcast that can't be sent at all now reports as failed, instead of working through the recipient list and finishing as completed without sending anything.

  • Import status now reflects reality — a file that can't be read at all (invalid, unreadable or empty) is now marked failed instead of not started, and an import that finishes very quickly no longer gets stuck showing as still running.

  • Returns not linked to an original sale are now sent to Omnium as proper returns, instead of counting as an ordinary negative-quantity sale.

  • Product, price and supplier-product imports can now update an existing product by SKU when the row's ID doesn't match anything, instead of failing with "SKU already exists"; SKUs are also cleaned up (surrounding spaces removed, inner spaces turned into underscores) before being matched, the same as when a product is saved.

  • A contact's roles in Omnium are no longer duplicated on every sync.

  • The turnover report per seller no longer counts products excluded from statistics, matching the product and sales reports for the same period.

  • The turnover report on order-date basis now includes parked orders.

For developers

API and integration changes released in September.

Added

  • includeStockLayers on the shelf warmer search (POST .../reports/shelf-warmers) returns each warehouse's stock split by stock-in day, with its own last-sale and stock-change dates; product rows now also carry the full product group path.

  • New endpoints to list, set and remove a store-specific accounting account for a product, overriding the product's central account.

  • Broadcasts can be sent by email; delivery status is tracked and reported per recipient the same way as SMS.

  • Customer addresses are synced to Omnium on create, update and delete; an address used for both invoicing and delivery is sent as one Omnium address carrying both purposes.

  • New supply-forecast endpoint: ask a supplier to confirm quantity and delivery date for several products in one call; an unrecognised article number fails the whole call.

  • Inter-store trade: sales order lines carry the counterpart store and incoming-shipment details; purchase order lines carry reservationDetails.warehouse and the coupled sales order as an object (interStoreSalesOrder, replacing interStoreSalesOrderUid / interStoreSalesOrderItemUid).

Changed

  • Shelf warmer Excel export gains a "Store Number" column, the full product group path, and a uid/name column per group level; columns from "Store" onwards shift one right.

  • A product with a store-specific accounting account is booked to it ahead of the product's own account and the store's product group/VAT setup.

  • An inter-store purchase order is coupled to the selling store's sales order when it is sent to the supplier, not when it is created; a sale to a customer representing another store creates that store's purchase order on park/confirm instead of on delivery.

  • Editing a coupled inter-store sale now reaches the buying store's purchase order immediately for added, resized or deleted lines; blocked with 409 (naming the store and purchase order) once the purchase order is closed, cancelled, fully received, or would be reduced below what's already reserved or received for a customer.

  • Cancelling an inter-store sale cancels the buying store's purchase order too (refused with 409 if the buying store has reserved or received the goods); closing an inter-store purchase order cancels the selling store's sales order unless a receivement already exists against it.

  • An inter-store purchase order line and its coupled sales order line each now carry their own price instead of copying it from one another; a line is rejected if the price crossing to the other store is not above zero.

  • Adding a line to, or reserving against, a purchase order that is closed or cancelled by the supplier is now rejected.

  • An authentication failure now reports ErrInvalidToken on its own instead of wrapped in ErrGeneric (the code field is unchanged).

  • The last-changed user and time on a company customer synced from Omnium are now stamped by Omnium itself instead of being sent from Flow.

  • A discount removed by hand through the order-item endpoint keeps its reason code unless it is cleared in the same request.

Fixed

  • Sourcing an inter-store purchase order line reports the actual problem (no such line, naming it, or the order doesn't buy from the named store) instead of always saying the selling store's sales order was missing.

  • Deleting a purchase order, or a line on one, that a receivement points at now answers 409 with the reason instead of a generic server error.

  • The inter-store reservation lookup already excluded another store's inter-store purchase order and purchase orders that are unsent, closed, cancelled or fully received; reservation now refuses these cases too, not only the lookup.

  • A coupled inter-store sale is restored to its pre-edit state (a parked sale stays parked) after an edit on the buying store's purchase order.

  • Reducing, deleting or archiving a purchase order that sales lines have reserved against is blocked once it has been sent to the supplier; while still a draft the change goes through, and the newest reservations are reset to requesting a purchase.

  • Outgoing email now times out after a minute instead of hanging indefinitely on a stalled connection to the provider.

  • Skipped rows in a customer import are marked IGNORED, matching every other import type (previously IGNORE).

  • Stock-adjustment imports only fall back from uid to SKU when the uid cell is empty; a filled-in uid that matches nothing still fails the row, since a wrong match would overwrite the product's stock level.

  • An insert-only product import keyed on SKU now counts an already-existing product as ignored instead of failing the row.

  • warehouseUid on the receivement confirmation update request now sets the warehouse goods are registered in, instead of always using the confirmation's original warehouse.

Last updated

Was this helpful?