Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Welcome to the official documentation of Flow Retail Commerce, a leading POS commerce platform for professional retailers of any size.
Here you will find answers to how all the standard functions in the platform works, including recommendations on various topics along the way.
If you have any questions not answered here, simply click the 👎 emoji and write a short comment on what you miss, or it's more urgent then simply drop us an email at support@flowretail.no.
Again, thank you for choosing Flow Retail to be your commerce platform.
Learn the basics
Learn about the basics and how to get started
Adding products
Learn about product types and how to add them
Selling
Learn the features and basics of selling
We love openness, and our roadmap is open for everyone to see what we are working on literally now 🚀 and what we are planning to start on any time soon.
Regularly check the roadmap, which updates a few times per month, to stay informed about new features and major improvements.
Note that the roadmap is constantly being updated, and can change with the wind-direction 🌬️
Our Head of Product makes the final decision, but in practice, our customers indirectly determine our focus and ultimately what comes into the roadmap.
We receive numerous requests daily, making prioritization crucial to our day-to-day work, and every day we try to find a good balance between improving existing functionality and adding new features.
We even prioritize removing unused features or those of little value, to always create a cleaner, more user-friendly interface.
Critical bugs: Critical bug causing lots of troubles, its always prioritized
Mission critical features: New features or improvements that will have huge impact on the sales and efficiency
Nice to have features: New features or improvements that will make it easier and/or more fun to run the store
If you are already a customer, simply reach out to either our customer service department or anyone else, and we will be sure to add it to our IR - Incoming Request - list.
Keep in mind that we at any given time have several hundred requests in our backlog, and so your request might very well already be in sight for being implemented.
And hey, if you are not a customer yet, consider becoming one, and start submitting your feature requests the very same day!
If its a critical bug, it will be addressed immediately, and a hotfix can be released literally within minutes as long as all the validation processes that are run prior to any release are approved.
In general new improvements are implemented within days or weeks, while more extensive and new features can take several weeks and even months if they are not high priority.
Sure. We have a very open and easy-to-understand policy in terms of fast-tracking feature requests. Just note that we have the last word in terms of how the functionality shall work, and we also might need to turn down feature requests from time to time if we see they are too custom.
We can then normally start on the task within a maximum of 1-2 weeks.
We charge the full time spent.
We start within 3-4 weeks, and share the bill, kindoff, e.g. we charge 50% of the time spent.
Even though we fasttrack tasks, the full ownership and IP of the functionality is with Flow Retail.
→
We normally roll out new features and improvements on a weekly basis.
Flow Retail consists of a few different components, and where we release slightly differently depending on each component.
Note that we always release when we feel it is the right time, and so the below release plan is just a rule-of-thumb overview for how it normally goes.
Flow Retail Core The platform foundation, with all business logic, APIs, and more.
Once per week Tuesday between 0800-1000 GMT+2
Flow Retail Client The main client used by most users, being run on Windows, Mac, iPad*
1-3 times per month Tuesday / Wednesday (gradual release)
Flow Retail Assistant The handheld client used for Android devices/phones and iPhone*
1-3 times per month Tuesday / Wednesday (gradual release)
Flow Retail Backoffice The web-based administration
1-3 times per month Tuesday / Wednesday (gradual release)
We categorize everything we do in these four categories:
This is basically newly introduced features that was previously not part of the platform, and can be anything from a small thing to extensive features like a new payment solution.
This can be anything from a new field on the product to faster processing of an API request.
Features that we previously had messed up / broke, and that we have now fixed 🤞
We actually have a focus on also removing things!
These are features that are either obsolete or have been replaced with better alternatives.
Flow Retail currently offers three different clients, all optimized for specific use cases and users.
The clients can run on basically any device, from standard Windows computers, to Mac, to iPad tablets, to practically any mobile and handheld device, from specific Android-based handheld devices to the latest iPhones.
Learn more below about the various clients and which client should be used where.
All the clients utilize the Flow Retail API, which is available for anyone, and so if someone would want to develop their own specific clients, then that is simply just a matter of creating an API key in getting started.
We are working on a Self-Service client, for stores which wants to offer its customers self-service (e.g checking out themselves).
The Client
Selling, purchasing, order handling, reports, ++
Windows, Mac, iPad
Assistant
Sell, receive products, stock taking, reports, ++
Android, iPhone
Backoffice
Administration of the store, adding products, users, ++
Web browser (desktop)
Choosing the right POS hardware depends on several factors, from requirements on aesthestics (basically how nice/slim should it look) to stability (basically how much dust shall it withstand) to cost.
Learn what type of equipment is recommended, alongside our general requirements.
Flow Retail supports most major POS hardware on the market. However, due to differences in hardware models, production batches, firmware versions, and other variables, we cannot guarantee full compatibility with every specific device.
We always recommend testing hardware in your environment before full deployment.
In addition to the various POS-specific hardware, a user must operate Flow Retail using a device.
Flow Retail can run on more or less any devices, with a shortlist below:
Flow Client
Windows, Mac, iPad, Android (coming soon)
Flow Assistant
iPhone, Android
Flow Backoffice
Any web browser (desktop)
In its absolutely simples variant, you only need a device (iPad, laptop, etc) and a card terminal.
With this setup you can add products and other data, create sales, charge money paid by card or tapping, do refund, and more.
Most stores however would want some additional POS hardware, including:
To add products to a sale quickly or check prices, a barcode reader/scanner is required.
Some customers still prefer a physical receipt, so a receipt printer like a thermal printer is needed.
To handle cash in addition to card payments, a cash drawer is required.
To print price labels (those small stickers with EAN, price, SKU on it), a label printer is needed. This printer is also used for printing gift card numbers to stick onto some nice-looking gift cards.
Some stores want to print out pick lists, delivery notes, invoice papers, etc. and then a laser printer is needed, eventually an ink jet printer, however we do not recommend ink jet as they tend to dry literally dry out.
If you want to be more mobile, and check prices or inventory, register sales, delivery out products, do stock taking and more, then a mobile device like a Zebra mobile device or simply a modern smart phone is also needed.
To connect all these peripherals to Flow Retail, you will also need a Flowbox, which is a cute tiny little box that connects Flow Retail with the devices connected to it. The Flowbox is delivered by us.
Apple iPad's for each till, with external keyboard and a barcode reader. The keyboard and barcode reader are both so-called input-devices, and shall be connected directly to the iPads.
We also recommend a powerful (...) power supply, with at least 60W, to be able to give enough power to both the iPad and to the peripherals, like the barcode scanner
A typical iPad is relatively expensive, however they are extremely robust, and also has a very sensitive touch interface, which makes it very effective to use. The price ranges from NOK 8.000 and upwards for the iPad Air. In general we do recommend iPad Pro (which starts as around NOK 12.000), however iPad Air will also work flawlessly in most scenarios.
The hub costs around NOK 800.
The extra powerful power supply costs around NOK 600-800.
The stand/cradle costs around NOK 500.
The total price for the till without barcode scanner, etc. will therefore be between NOK 10.000 and NOK 15.000 depending on the specs.
As an alternative to an iPad, all of the following options are fully supported:
Windows computer, running Windows 10 / 11, or a later version, preferably with a touch monitor
Mac / Macbook, basically of any kind
Android tablet, basically of any kind
Linux computers, running a relatively modern distribution like Ubuntu
For devices in-store, in the warehouse, and on other fixed locations, we in general recommend using simply a Windows-based computer.
For stores with tills where more operations than just registering sales are needed, we also recommend using Windows computers instead of iPad's.
With our Flow Retail Assistant native app for iOS and Android, you basically have Flow Retail in your pocket. For stability and robustness, we do recommend a professional handheld device like a Zebra handheld. These cost anywhere from NOK 3000 for a relatively cheap and OK version, to NOK 10.000 to NOK 20.000 for the top models.
Based on the exact requirements, we will give more concrete recommendations.
This depends a lot on whether you would want to move the barcode reader away from the till, for example to scan large products which cannot be put on top of the till.
There are dozens of variants, and we give concrete recommendations based on each store's needs.
In general a barcode reader will cost anywhere between NOK 1500 and NOK 3000.
Needs to handle 2D barcodes
Should be USB connected (however Bluetooth connected in most scenarios works, at least until the bluetooth connection or pairing is lost)
For receipt printers, most modern variants works fine. There are "cheap" variants which costs around NOK 2000, and more expensive and solid variants like the Epson TMT series, which costs around NOK 4500.
Needs to be USB connected
Here basically all drawers will work, as there is very little logic in a cash drawer.
The price is normally around NOK 1500 for a fully functional cash drawer.
Needs to be USB connected
The cash drawer is connected to the Flowbox
The labels printers is for some reason relatively expensive, and normally clocks in at around NOK 4000-5000, however they are built to last for decades.
Needs to be USB connected
The labels printers are connected to the Flowbox
Support for TPL / ZPL (zebra printing language) - basically all such printers support this printing language
Flow Retail supports all major PSPs (Payment Service Providers), like Nets, Verifone, Adyen, Stripe and more.
The integrations are all cloud-based, meaning Flow Retail communicates with the card terminals over the internet, and the card terminals in turn are connected to the WiFi in the store (most can also be cabled over ethernet).
In most cases, one can use its existing terminals, however some older models are not cloud-ready, and needs to be replaced with a newer version.
The Flowbox is a small physical device delivered by Flow Retail.
The purpose of the box is to handle all communication between the Flow Retail platform and your peripherals, like thermal receipt printer, cash drawer, and labels printer.
If you wanna go fancy, and esthetics is extra important, and mainly sales operations are being handled in the till, go for iPad's, with the mentioned equipment.
If you have much traffic in the store, and also need to handle other operations in-store, then going all-in on Windows computers is a good choice.
A combination is also perfectly fine.
Together with our sales staff and our external partners we can help in ordering everything. Just keep in mind we are a software company, and so in general we do not offer hardware support, and so you should use a local IT company to set up the equipment and to support it as you go, or if you have a local IT department, they should also be able to assist on the POS hardware.
We will always do our best to help you getting the best possible setup!
Connecting the various hardware differs a bit. See below for how to connect.
Receipt printers
Must support ESC POS
USB via Flowbox,
or network**
Label printers
Must support ZPL
USB via Flowbox, or network**
Barcode scanners*
-
USB or bluetooth
Cash drawers
-
USB via Flowbox, or network**
*Note that the barcode reader is connected directly to the relevant device, as a bardcode reader is simply a "keyboard" with the exception that it only takes barcodes as input, and then "types" the relevant letters and numbers from the barcode into the operatingsystem.
Flow Retail supports printing directly to a network-connected printer, either over the LPD port (515) or the Jetdirect ports (9100-9102).
This option requires the Flow Retail Enterprise option, and with Flow Retail being hosted inside your own infrastructure. This option is only available for clients with a minimum of 100 stores.
We recommend using a hub like this to connect everything:
And, you need a stand/cradle for the iPad, something like this:
Contact for more details and to get started.
Product groups in Flow Retail are organized in a hierarchical structure, similar to a tree. At the top, you’ll find high-level groups, with more specific sub-groups branching out below.
Each product group or category in this hierarchy is called a node. For example, “Projectors” would be one node, which could contain further nodes for specific types or brands of projectors beneath it.
This structure helps you manage products efficiently, simplifies reporting, and makes it easier to set up targeted campaigns.
It’s important to plan your product group structure carefully from the beginning. A well-organized hierarchy will save time, improve reporting, and make it easier to work with campaigns and inventory.
We recommend using 2 to 4 levels in your product group tree, depending on the total number of products in your system. Too few levels can make it harder to organize large assortments, while too many can become unnecessarily complex. Aim for a clear and balanced structure that fits your product range.
< 100
1
100-999
2
1000-9999
3
10000-999999
4
1000000
5
Note that there is no need of having the same number of levels in each "node", e.g. if you have a level 1 node called "Services", and you only have five services, they you do not need any sub-nodes on that product group.
Understanding product types is crucial for managing your products effectively in Flow Retail. Different product types handle inventory, sales, and deliveries in specific ways.
This guide explains each product type clearly, helping you manage your products efficiently.
This is the most common product type. Stock controlled products are physical items with tracked inventory.
To sell these products, you must register stock either through Purchase Orders, ERP integrations, or XLSX spreadsheet imports.
Flow Retail tracks delivery for all stock controlled products.
Delivery can happen immediately upon sale or at a later time, such as customer pickup or home delivery.
You cannot deliver out a stock controlled product if there is no stock available.
Examples: Phones, shoes in specific sizes, screwdrivers, etc.
Not stock controlled products function similarly to stock controlled products but without inventory tracking. You can still add stock for warehouse valuation purposes, but these products do not require post-sale delivery management.
Examples: Shopping bags or small accessories kept in large quantities without detailed stock tracking.
Non-physical products are intangible items or services without physical delivery.
Examples: Software licenses, shipping fees, service charges, and other virtual or intangible products.
Configurable products organize related stock controlled products under a single "virtual" product for easier management.
Creating a configurable product:
First, create individual stock controlled products with specific properties (e.g., "Color," "Size").
Next, create a configurable product by selecting which properties will define its variants.
Important: You cannot change the properties defining variants after creating the configurable product. To adjust later, delete and recreate the product with the new properties.
Examples: Sweaters or shoes in various sizes and colors.
Bundles group multiple predefined products together, either with fixed content or customizable options.
Fixed Price Bundle: Content and pricing are locked, no customer customization.
Dynamic Price Bundle: Customers can customize bundle contents, affecting the total price.
The gift card product type is exclusively used for Flow Retail Gift Cards and requires additional configuration before use.
Flow Retail is a professional POS (Point of Sale) platform for retailers of any size, from single, standalone stores to multi-national retail chains with hundreds of stores.
Flow Retail is a super-modern POS platform, built to work seamlessly with both e-commerce and any other systems like ERP, OMS and PIM.
In short: Flow Retail is the final POS system you need to migrate to.
First and foremost, Flow Retail is much more than just a POS sales application. It’s a complete commerce platform, packed with powerful features to meet the demands of nearly any retailer—whether you’re running a cozy boutique or managing a bustling retail chain.
Even though you’re reading this documentation, our goal with Flow Retail has always been to build a platform that doesn’t require a user manual.
We strive every day to make the system so intuitive that guides like this become optional — not essential.
Still, getting the most out of the platform can take your business from good to great. That’s why we encourage you check these guides nevertheless, and/or to let our retail specialists guide you through the system to unlock its full potential.
Of course, if you’re a seasoned retailer who enjoys diving straight in—no worries! You can handle virtually everything on your own, from initial setup and product management to seamless integrations with your existing systems, payment terminals, and other POS hardware.
Retailers using Flow Retail may process thousands of sales each day, which is why ensuring fast and efficient sales handling is absolutely mission-critical. Optimizing this part of the system is something we focus on every single day.
Happy selling! 🚀
Assistant brings Flow Retail into your pocket, letting you create sales and refunds from literally anywhere. Assistant also gives quick and efficient product lookup for stock details, it handles stock taking, order handling and delivery, basic reporting and more.
The Assistant is a mobile-optimized client, running on basically any sort of mobile and handheld devices, including:
iPhone (native iOS installer in the Apple AppStore)
Android (native Android installer in the Google Play store)
Most handheld devices including the world's most popular, the Zebra TC51/52, runs entirely on Android, and so Assistant works seamlessly on all such devices.
Some of the functionality includes:
Selling
Purchase order receivement
Product lookup
Stock taking
Reports
Apple iOS 15 or later
Android 11 or later
Some handheld devices like the Zebra series runs on Android 10, which might work, but needs to be verified on a case-by-case basis.
Assistant
appGo to Google Play on your Android device, or go to Apple AppStore on your iPhone
Search for "Flow Retail Assistant" and install the app
Start the app, and choose "Flow Retail Platform". Make a note of the 6-character authentication code
Create a new terminal in Flow Retail Backoffice, by navigating to > Stores
> select the relevant store
> Tills
> Add new till
Fill in all required fields, hit Save, and go back into the defined till to add the 6-character authentication code
You will now be automatically authenticated in the app, and can proceed to log in with your given username and PIN (4-6 digits)
Most retailers who start using Flow Retail are migrating from another POS system. This is not an exception — it’s the most common way to get started, and the platform is designed with that in mind.
That said, every retailer operates a little differently. To support this, we’ve put together a FAQ covering the most common questions and scenarios — designed to help you find answers quickly, no matter how your setup looks.
This document provides an overview of key specialized terms and abbreviations frequently used in the retail industry.
These terms are essential for understanding and navigating the retail sector and not least this documentation efficiently.
Average Inventory The mean value of your stock over a period. Helps gauge how much capital sits in inventory.
Average Transaction Value (ATV) Total sales divided by number of transactions. Shows how much a customer spends on average.
Backorder An order you can’t immediately fulfill due to lack of stock; you ship it later when replenished.
Basket Size The average number of distinct items per sale. Helps measure how many product types each customer buys.
Break‑even Point The sales volume at which total revenue equals total costs—no profit, no loss.
Cash Flow The net amount of cash coming in and out of your business over a period—critical for day‑to‑day operations.
Category Management The practice of grouping products into logical categories and managing them as individual business units.
COGS (Cost of Goods Sold) Direct cost to purchase or produce the items you sold during a period.
Contribution Margin 1 (CM1) Sales minus COGS. Also called gross profit; it’s what’s available to cover overhead.
Contribution Margin 2 (CM2) CM1 minus variable store‑level expenses (e.g. credit‑card fees), showing what’s left for fixed costs.
Conversion Rate % of store visitors who make a purchase. = Transactions ÷ Visitors × 100.
Cross‑sell Offering related products at point of purchase (e.g. batteries with electronics).
End Cap A display at the end of an aisle used for high‑visibility promotions.
Foot Traffic Number of customers entering your store over a period—basis for conversion analysis.
Gross Margin % (GM %) (Sales – COGS) ÷ Sales × 100. Indicates what portion of each sales dollar you keep before other expenses.
Gross Profit Sales minus COGS. Total “money made” before subtracting operating expenses.
Gross Sales Total unadjusted sales before returns, allowances or discounts.
Inventory Turnover How often you sell and replace your stock in a period. = COGS ÷ Average Inventory.
Lead Time Days between ordering new stock and its arrival in your store.
Layaway A payment plan where customers reserve items with deposits and pay off the balance before pickup.
Loyalty Penetration % of customers or sales coming from loyalty‑programme members.
Loss Leader A product sold at a loss to attract customers into the store.
Loss Prevention Measures and processes to minimize theft, fraud and errors in a physical store.
Markup % (Selling Price – Cost) ÷ Cost × 100. How much you add to cost to set your price.
Mystery Shopping Unannounced visits by evaluators to measure sales staff performance and store standards.
Net Profit What remains after subtracting all expenses (COGS, rent, salaries, utilities, marketing…) from sales.
Net Sales Gross sales minus returns, allowances and discounts.
On‑shelf Availability (OSA) The percentage of time products are in stock and correctly displayed on shelves.
Open‑to‑Buy (OTB) Budget remaining to purchase new inventory, based on planned sales and current stock.
Operating Expenses (OPEX) Ongoing costs to run the store (rent, utilities, payroll), excluding COGS.
Planogram A diagram showing product placement on shelves to maximize sales and traffic flow.
Planogram Compliance The degree to which store displays match the approved planogram.
Point of Sale (POS) The system (hardware + software) where sales are completed and recorded.
Purchase Order (PO) Document sent to suppliers listing items, quantities and agreed prices.
Reorder Point Inventory level that triggers a new purchase order to avoid stock‑outs.
Retail Store Layout The floor‑plan design—aisle locations, fixture placement and checkout positioning—to optimize flow and sales.
Replenishment Cycle The process and frequency of restocking shelves from back‑stock or warehouse.
Safety Stock Extra items kept in reserve to protect against demand spikes or delivery delays.
Sell‑Through Rate Units sold ÷ Units received × 100 over a given period.
Shelf‑to‑Sales Ratio The value of inventory on shelves divided by average daily sales, indicating stocking efficiency.
Shrinkage Loss of inventory due to theft, damage, administrative error or supplier fraud, expressed as a percentage.
SKU (Stock Keeping Unit) Unique identifier for each product variant (size, color) used to track inventory.
Stock‑to‑Sales Ratio Inventory value ÷ Average daily sales. Shows if you’re over‑ or under‑stocked.
Store Traffic Flow Analysis Study of customer movement patterns in‑store (often via heat maps) to optimize layout.
Units Per Transaction (UPT) Total units sold ÷ Number of transactions. Measures how many items customers buy per visit.
Up‑Selling Encouraging customers to purchase a higher‑priced item or add‑on.
Visual Merchandising The art of presenting products on‑shelf with attractive displays, lighting and signage to drive sales.
Brands represent the manufacturer or label associated with each product.
Adding a brand to your products serves two main purposes:
Reporting – Easily track performance by brand. For example: “How many products from this brand were sold in the last 7 days?”
Campaigns – Target specific brands in promotions. For instance: “Apply a 20% discount to all products from this brand, except those in product group CYXYZ.”
Assigning brands consistently improves both insight and flexibility across the system.
Properties are pre-defined values which can be assigned to any of the standard product types.
The properties are also used when dealing with Configurable / variant products.
These are pre-defined values, and where one specific value needs to be selected on the product that gets these types of properties assigned.
The best example is a property Size, with pre-defined values like S, M, XL, etc.
Another example of using this property type is Color.
When creating Configurable / variant products, one can ONLY use the Dropdown / single select property type on the properties used to define the configurable product.
These are identical to Single-select, except that one can add multiple property values from a specific property to products that has this property assigned.
Examples of this can be a propery called "Certifications", which has a list of pre-defined certification property values, and where products can have multiple certifications assigned to it.
This property type adds a text field as the property value, and which must be manually added on a per-product basis.
Examples of this can be a propery called "Weight", where one adds the weight in kilos or kilograms, per product. Other examples can be URL to the webpage for the product, or any other very unique value for the product.
One of the most central things when migrating to Flow Retail is to get all relevant product data into the platform.
To get started with selling, you need to get all required data into the system.
In most scenarios there are three (3) alternatives to get started:
I have an ERP or OMS system: If you already have an ERP system or PIM system with much of the data
I have an old POS system: If you do not have an ERP system, but you have an existing POS system you are replacing with Flow Retail
I have nothing: You basically have nothing, and need to get started from scratch
If your organization has an ERP or OMS system today and which you will continue to use, you will most likely want for that to be integrated directly with Flow Retail.
We have several ERP and OMS integrations and partners supplying such integrations, and very concrete recommendations on integrating these system with Flow Retail, and so if that hasn't been settled yet then simply contact us to get that ball rolling.
With an ERP or OMS integration, the workload required in Flow Retail is very limited, as most of the product maintenance and post-order management is being handled through the ERP system.
If you’re replacing an existing POS system with Flow Retail, you’ll likely want to migrate as much of your current data as possible. Flow Retail supports structured data import to ensure a smooth and efficient transition.
In most cases, you would want to migrate the following data as a minimum:
Products
Prices
Stock
Suppliers
Brands
Customers
We do not recommend migrating previous sales, both to get a 'clean cut' and also as order data are often very unstructured and difficult and complex to migrate in a good way.
We support importing all these data from XLSX spreadsheets, and will assist in getting the data migrated as best as possible.
This client is a 100% web-based client that runs completely in your browser, and covers all general maintenance like creating or importing products, maintaining the stores, the terminals, users and much more.
The client does NOT support mobile use, so you need to run it in a browser on a desktop computer.
Some of the functionality includes:
Product administration
Store administration
User administration
Configuration
Payment setup
Windows version 10, 11 or later
MacOS version 11 or later
Chrome (version 90 or later)
Firefox (version 88 or later)
Microsoft Edge (version 90 or later)
Safari (version 14 or later)
Backoffice
To be able to access Backoffice, you need "Backoffice Access" on your user. Contact your supervisor or Flow Retail Helpdesk if you need any assistance.
This is basically our main client, covering most features in the platform, from purchasing products and receivement, to doing the actual sales. The client also has various reports, product maintenance, and larger features like the Service system is being run through this client.
Windows (native Windows installer)
Mac (native Mac OS installer)
iPad (native iOS installer in the Apple AppStore)
Android tablets (native Android installer in the Google Play store)*
* will be offered upon multiple requests.
Some of the functionality includes:
Selling
Purchase ordering
Purchase order receivement
Stock management
Analytics
Order handling
Delivery handling
Customer orders
The Windows version requires Windows 10, 11 or later
The Mac version requires MacOS 11 or later
The tablet version for iPad requires iOS 15 or later
The tablet version for Android requires Android 11 or later
The Android version is currently delivered on a case-by-case basis depending on client requirements. Additional costs related to this might occur.
Note that all clients, especially the tablet version of the client, requires a minimum of 11" screen. This means smaller tablets like iPad Mini is not supported.
Client
on WindowsFollow steps 3-6 from above
Client
on MacMove the application file to the Applications folder on your Mac
Hold in the control button while starting the Flow Retail application, and allow/grant the permission coming up. You might need to do this twice
Follow steps 3-6 from above
If you are using Mac OSX Sequoia, you need to manually approve Flow Retail in the Security Settings on your Mac due to increased security in the latest version.
Go to System Settings > Security, and click "Open Anyway"
Client
on iPad tabletsGo to Apple AppStore marketplace
Search for "Flow Retail Client"
Install the app
Follow steps 3-6 from above
Removing textfield bumping
If you get an annoying "bump" of the content on the screen while navigating to a textfield, try removing Keyboard Shortcuts by going to Settings
> General
> Keyboard
, and then Disable Shortcuts
Add product images to any of your products with ease.
Adding product images to your products is great for several reasons:
Very easy for sales staff to be sure to select the correct product.
Being able to show images of a specific product to the customer in front of them.
Automatically syncing the product images to for example your webshop, so that the images can be maintained from one place (Flow Retail).
Display the product images on offers sent to the customers, or simply on the A4 PDF receipts.
Flow Retail fully supports an unlimited number of product images per product, including defining one featured/cover image.
Note that we strongly recommend using JPG/JPEG format. We do support more modern formats like WEBP, however for the best compatibility and very good compression, JPG/JPEG is still the recommended solution.
Other formats (not recommended):
GIF = Maximum 256 colors, making it totally unusable
PNG = Poor compression, and not worth it, even though it has transparency support
SVG = Vector, and basically useless for photos
HEIF/HEIC = Great compression, but only suitable in the Apple ecosystem
Go to Backoffice
> Products
, select a product, and choose the Media
tab:
Either choose "Upload Image" (NO: "Last opp bilde") or "Add from URL" (NO: "Legg til bilde fra URL")
Upload Image. Choose an image from your local computer. Remember to use JPEG-format!
Add from URL. If you have the images on a publicly availably URL, you can simply paste in the full URL, and Flow Retail will preserve the URL and display it in all clients. Note that this option will NOT download and insert the actual "physical" image into Flow Retail, and if you delete it from the source origin, or the filename or path changes, it wont display in Flow Retail.
Choose whether you want to use the image as the main/cover/featured image or just as a regular image alongside the others.
The images will be displayed in most places where products are listed.
You can also browse through the images if there are multiple. Simply select the product and choose "Media" in the left menu. You can use left/right-arrows to scroll through the images.
Product images will also be displayed in offers:
Backoffice is available directly in the web browser, and so to access it you simply need to navigate to
Download and install the latest version on
Download the latest version on
Flow Retail includes an easy-to-use yet comprehensive price and campaign system designed to handle a wide range of scenarios.
The price you sell the product for to any customer.
Includes VAT.
The price you pay to your supplier when buying the product.
Excludes VAT.
This is the price you actively manage.
The average value of a product based on purchase history and stock adjustments.
Automatically calculated, but you can manually set the cost price for specific quantities.
May vary per warehouse.
Excludes VAT.
When adding a customer to an order, all prices on the order will be re-calculated. This is to make sure any customer-specific prices (from a price list or a customer-specific campaign) is taken into consideration, both in the case of adding the customer and not least eventually removing the customer from the order.
Flow Retail uses average cost pricing (also known as weighted average) to calculate the cost price.
This gives a more balanced view over time, especially when purchase prices vary, and differs from FIFO (First In, First Out) pricing, which is used in some other systems and can lead to fluctuating margins depending on purchase order timing.
With this model, you get reliable insights into product profitability — without the volatility of FIFO-based cost tracking.
Products are a core element of Flow Retail. Ensuring high-quality product data from the start is essential, as it will save considerable time and resources in the long run. We recommend carefully reviewing the product-related documentation to minimize the need for corrections or adjustments later on.
Before adding products to the system, it’s important to understand the related data elements that need to be set up first. This initial preparation will streamline your workflow and improve the accuracy of your product management.
Each product must be associated with exactly one brand. Therefore, you need to add all relevant brands to the system before you begin adding individual products.
If a product does not have a specific brand, we recommend creating a general brand using your company’s name (e.g., “Your Company Name”) to keep your data clear and consistent.
Every product must belong to exactly one product group. Product groups are primarily used for reporting purposes but also support various other features within the system. For example, campaigns and promotional activities are typically managed by selecting entire product groups, allowing for efficient planning and execution.
There are many ways to add stock to a product.
Creating a Purchase order, and doing a Receivement of the products when they arrive
Importing from spreadsheets
Doing a Stocktaking / inventory count
Setting a stock directly onto a product
Move products (stock) from another store/warehouse
Receiving stock via an API integration, typically from an ERP system
This is the most common way to register stock.
Simply follow the guides under the Purchasing section.
As soon as you make a receivement of the relevant quantities on the purchase order, the stock is being updated.
This is the easiest and best way to update the stock on a larger amount of products.
SKU / itemcode
Quantity
Average cost price
The stock must be imported to a specific warehouse (in Flow Retail, one physical store can have many warehouses, e.g. "Store warehouse", "B-Items", "Return Goods", etc.
Learn more about this under the Importing data section.
Stocktaking is an easy way to set a new stock for a large set of products.
A stocktaking will update the stock as soon as it has been confirmed.
Learn more about this under the Stocktaking section.
If you quickly need to set the stock for one specific product, using the Inventory management.
In the client, simply go to Products, search up the product, and choose Inventory Management, and choose one of the four available functions:
This reduces the stock with the quantity registered. Lets say you have 47 in stock, and want to reduce with 1, to a total of 46, because you want to use one product as for example a give-away, or it has been stolen and wont be able to be returned.
This sets the total stock of the product to the quantity registered. Lets say you had 2 in stock, and you found you had a total of 5 of the given product. Then simply register 5, to have the stock be increased from 2 to 5.
This sets a new average cost price. Use with caution, as the cost price for a any givene product is used across the system for earning reports and more.
This lets you move a specific quantity from one warehouse to another.
This should normally only be used for stock transfers within one physical store. It is recommended to use the Internal Ordering functionality for moving stock between physical stores.
Either use the Inventory transfer as mentioned above (when moving stock across warehouses within a store), or use the Internal ordering functionality (when moving stock across physical stores).
There are multiple APIs to update the stock in Flow Retail: One-product-at-a-time, bulk/batch updates, by sending in goods receipts, and more.
If you have an ERP system, it is normal to let the ERP system be the master of the inventory, and have it be integrated with the relevant APIs.
For more details on the API integration and recommendations, please contact one of our integration specialists.
Flow Retail gives you full control over inventory and cost of goods across your entire company, and is designed to seamlessly manage both physical stores and e-commerce, providing real-time insight into stock levels, purchasing, and product value.
This documentation provides an overview of how to efficiently use Flow Retail’s features to ensure accurate inventory management and financial control.
Products are at the core of Flow Retail. While some retailers manage a few hundred products, others work with tens of thousands.
To get the most out of the platform, it’s essential to invest time in adding accurate and detailed product information. This not only improves daily operations, but also enhances reporting, inventory control, and customer experience — all alongside the most important task: selling.
To sell products using Flow Retail, you must first add them to the system.
Here, we discuss different methods to accomplish this:
Manually in Flow Backoffice:
Ensure your user has Backoffice access with at least Department Manager permissions.
Navigate to Products > Products > New Product.
Fill in all the required fields and click Save or Save and Create New.
This document focuses on this manual method of product addition.
Integrating an External System:
Integration with an ERP or PIM system that contains the necessary product data.
Importing from a Spreadsheet:
Use an XLSX file to import product data directly into the system.
Cloning Existing Products:
Utilize the Clone Product function to create similar product entries quickly.
Choose the method that best suits your needs to efficiently manage and sell products through Flow Retail.
Under 100
Manual or Cloning
100 - 10.000
Spreadsheet import
More than 10.000
API integration
You can use the Clone function to clone most details from an existing product.
Product Type
Select 'Stock' for items to track inventory. Choose 'No Stock' for services, fees, or subscriptions. Use 'Configurable' for parent products with variants.
Yes
SKU
Use a unique SKU or product code.
Consider using a random 6-7 digit SKU if not using the supplier's SKU.
Different suppliers might use similar SKU formats, so verify for uniqueness.
Generate a new SKU if one is not already available.
Yes
Name
Short name / title of the product
Yes
Product Group
Select one relevant product group. The product group is used for reporting and more
Yes
Brand
Select one brand. The brand is used for reporting and more
Yes
Serial number controlled
Choose whether the product shall be controlled by unique serial numbers, either both during Receivement and Sale (validation), or just via Sale (no validation)
Yes
Recommended retail price
The default price you are selling the product for. If you have price lists or campaigns, they will be prioritized over the RRP
Yes
Agreed purchase price
The default purchase price, if no specific purchase price has been set on the supplier for this specific product
No
Calculation factor
Used for various things, like setting the cost price if no purchase price has been set. Use 1.25 if the VAT is 25% and you have a zero-margin on a product
Yes
Flow Retail supports an unlimited number of EAN/GTIN/barcodes to a product.
Simply add the EAN/GTIN(s) you want to be able to be scanned in any product lookup field in the clients.
EAN stands for European Article Number, and is a 13 digit unique number assigned to most products sold in Europe. EAN is over the time being replaced with GTIN, which stands for Global Trade Identification Number.
GTIN-13 is basically EAN-13, with GTIN-12 (UPC) being used for most US products.
There are four available description fields on a product.
In Flow Retail, the distinction between Short Description and Description fields facilitates integration with external systems, like e-commerce platforms.
These systems typically support both short and long/full descriptions, enabling seamless interaction, particularly between a PIM system and an e-commerce platform.
Both fields are visible to users, although typically, only one field is utilized in practice.
When adding a product to a sale, users will receive a notification if there are specific details in the internal info description field.
This feature is useful for reminding users to inform customers about important precautions or to remember internal sales information related to the product.
Same as internal info, expect that the information in this field will be displayed to the customer, on the receipt or offer.
The Advanced section consists of very specific features that can be added to any product.
Option to disable the possibility of selling a product, either indefinitely or from a set date.
Option to set a date from when the product was expired. This option wont limit either selling or purchasing the product, so it is just an information to the user.
Option to disable the product from being allowed to be refunded. A typical use case is for expired products that are sold at high discount, and where the customer has been informed that they cannot return it. Or for custom made products, which normally are not obligated to be returned.
Option to block the user from being able to adjust the price during a sale.
Option to block from purchasing the product.
Option to disable the product from being delivered out, either indefinitely or from a set date. A typical use case would be a new product that is not allowed by the manufacturer to be delivered to the customer before a certain date, due to a launch campaign.
Option to set a commission in percentage. Used in for example the Arts functionality in Flow Retail, for payouts to a supplier based upon the number of sales.
Option to hide visibility, e.g. when searching for products, a product with visibility Not visible will not be shown.
When entering the exact SKU, products with Not visible set will still be opened.
By default, all products are visible to all stores.
By adding one or more specific stores to the "Limit to stores"-list, only those stores will see the product.
This feature is mainly used for retail chains, where certain stores are purchasing and selling products very specific to them.
Option to, via Flow Retail, exclude certain products from being syncronized with the e-commerce store.
Option to disable sales statistics for certain products, like gift card, etc.
Option to select a pre-defined warranty condition text (maintained under Products > Warranty conditions).
Used to inform the customer about specific warranty details, or any other additional details, that are common across multiple products.
The conditions text is being printed on the receipt to the customer.
Option to set a custom number of pieces a specific product consists of.
Lets say you sell a sofa which is one SKU with one inventory, however it consists of two physical packages/boxes.
When receiving the product, and printing out labels, Flow Retail will print X number of labels for the product, each presented with "1/3", "2/3", "3/3", etc.
In this section you can add requirements related to the customer, before the product can be sold.
You can require a basic customer record (name), and email, mobile and/or a delivery address.
You can also set an age limit (e.g "18"). This will simply inform the user to do an age verification on the customer. Flow Retail itself wont do any age verification.
Option to set a specific accounting number for this product, in terms of accounting/finance.
Flow Retail supports adding product images to a product, either from an external fixed URL (e.g from a PIM or DAM or e-commerce system) or by uploading the actual images to the system.
Flow Retail supports linking various types of products to a specific product.
Linked insurance products will appear once a product is being added to an order.
One can only select one insurance product to the order.
If the relevant product is being removed from the order, the insurance product is also automatically removed.
Linked accessories appears once a product is being added to an order.
One can any number of accessories to an order.
Accessories will be kept on the order even though the original product is being removed.
Linked service products can be anything from assembling to delivery.
Linked spare parts are mainly used in the Service system to display relevant spare parts to a specific product.
Allows for adding any pre-defined properties to the product.
This section allows for adding warehouse-specific details to a product.
Set a pre-defined max/min value per warehouse.
This is mainly used for more efficient and even automatic purchase ordering.
The Min[imum] is set to 10. The Max[imum] is set to 50.
The product has 20 in stock.
When generating a purchase order based upon Max/Min values, it finds 20 in stock, which is above the Min[imum] threshold of 10. Nothing is then added to the purchase order suggestion.
If the stock would be below 10, lets say 5, then the system would automatically suggest 45, so it reaches the Max[imum] of 50.
Allows for setting a location value of the product, per warehouse.
The location system can be anything, though a basic yet solid system is using XX-YY-ZZ, where XX is the first row in the warehouse, YY is the first section in that row, and ZZ is the floor in that row.
Allows for adding the purchase price per supplier (normally just one), alongside an optional supplier SKU.
These values are used when creating purchase orders.
Automatic price suggestion based on gross margin.
In Flow Retail, you can define a calculation factor to help automatically suggest a sales price based on the product’s cost price and desired gross margin.
The calculation factor is based on gross margin multiplier, not markup percentage.
A calculation factor of 2.5 means you want a gross margin of 60% (because 100 / 2.5 = 40; cost is 40% of the sales price)
Cost price = 100
Calculation factor = 2.5
Suggested sales price = 100 × 2.5 = 250
This means that for every unit sold at 250, the cost is 100 and your gross profit is 150 — giving you a gross margin of 60%.
Cost price × Calculation factor = Suggested sales price
Helps you price consistently based on your margin goals
Particularly useful when importing or adjusting large product catalogs
To set a calculation factor for a product, create a product with the following settings:
Type: Not stock controller
Markup Factor: The factor you want to apply, for example 1.25 to set the profit margin to 0, if there is a 25% VAT on the product.
VAT must be included in the calculation. For example, if the item has 25% VAT and the factor is set to 1.25, the profit margin will be 0.
Flow Retail includes an easy-to-use yet comprehensive price and campaign system designed to handle a wide range of scenarios.
The price you sell the product for to any customer.
Includes VAT.
The price you pay to your supplier when buying the product.
Excludes VAT.
This is the price you actively manage.
The average value of a product based on purchase history and stock adjustments.
Automatically calculated, but you can manually set the cost price for specific quantities.
May vary per warehouse.
Excludes VAT.
When adding a customer to an order, all prices on the order will be re-calculated. This is to make sure any customer-specific prices (from a price list or a customer-specific campaign) is taken into consideration, both in the case of adding the customer and not least eventually removing the customer from the order.
The recommended retail price is basically the price used when selling the product.
The price is set directly on the product, and will be used if no other price regime is active for that specific product.
The price shall be including any VAT.
Set the price in either Backoffice on a specific product in General tab, or use a spreadsheet to import many prices in one go.
This is the price you pay for the product to whomever you purchase it from.
The price is used when you add the product to a purchase order, so that you do not need to add it manually each time.
The price shall be excluding any VAT.
Log in to .
To learn how to add media / images to a product, check the article.
Read the section to learn more about properties.
A price list is a collection of selected products where there is a set price, and optionally a start time.
Price lists are also commonly used when using the Flow Retail Campaign extension.
The purpose of a price list is to be able to set custom prices on various levels, either for a time-limited period (typically when working with campaigns) or to let for example a specific customer have its own prices on a set of pre-defined products.
A price list can be added to both the chain itself, each individual store, and to each individual customer. It can also be added to a campaign if you use the Flow Retail Campaign extension.
If there are price lists active, on for example both the store and on the selected customer, then it is always the price on the "nearest" price list to the customer that will be used. So, in this case the price on the price list attached to the customer is the one being used, even if the price on the store might be lower.
If you use the Campaign extension, you can quickly create campaigns by adding a bulk of products all having custom discounted sales prices to a price list.
The price list campaign type can then be set to be active from/to a defined time period, down to the minute.
If you use Reprice as your campaign solution, it will also use the price list + campaign functionality in Flow Retail.
Price lists are created in the client.
Navigate to Products > Price lists
Create new Price list
Add products to the price list by searching on the SKU or name. Optionally set a start time
Save the Price list
Once the Price list has been created, it can be attached to either a store and/or a customer from Backoffice.
This documentation is currently only available in Norwegian. If you need an english version, please contact us or use a translation service.
Dette dokumentet beskriver varetelling i Flow Retail. Merk at varetelling medfører oppdateringer av lageret og det er derfor viktig at det gjøres så nøye som mulig.
Lagerbeholdningen i en butikk er alltid i bevegelse, med produkter inn (innkjøp) og ut (salg) hver eneste dag, og der det kan oppstå avvik dersom man ikke gjør det skikkelig hver eneste gang. I tillegg kan det forekomme svinn i form av produkter som går i stykker eller blir stjålet.
For å kunne operere mest mulig effektivt i det daglige er det viktig at lagerbeholdningen systemet sier det skal være, stemmer.
I tillegg er det et regnskapsmessig krav at lagerverdien registreres som en del av balansen i årsavslutningen. Kostprisen (varekostnaden) på alle produktene summeres opp og gir en lagerverdi. Varetellingen vil gi ut rapport på hva lagerverdien var før tellingen, og hva den er etter tellingen når beholdningen er oppdatert til det reelle antallet. I Norge føres varelageret (eiendel) på debet konto 1460 mens beholdningsendringen (differansen, i praksis tapet) føres på kredit konto 4090 (beholdningsendring). Debet 7800 brukes til å føre på beholdningsavvik/svinn, mens debet 7805 brukes til nedskrivning av varelager.
1) Opprettelse av tellingen (Flow Backoffice), 2) Selve tellingen (Flow Asisstant), og 3) Verifisering og oppdatering av telleresultatet (Flow Backoffice).
Nedenfor er beskrevet de forskjellige stegene i detalj.
Gå til Backoffice
Opprett ny varetelling
Gå til Produkter > Varetelling, og velg butikk og lager du ønsker å telle på
Velg Ny varetelling
Skriv en informativ beskrivelse, f.eks. “Telling TV Samsung w52 2025
Velg type
Alle produkter = Velg denne når du skal telle HELE butikken. Såfremt man ikke skal ha en komplett varetelling av hele butikken mens den er stengt, frarådes å velge denne. Du kan eventuelt velge å kun ta med varer som har beholdning i systemet fra før, men da vil du potensielt ikke få talt de produktene som i praksis finnes i butikken men som står til 0 i beholdning.
Utvalgte = Velg utvalgte produkter, fra enkeltprodukter, til spesifikk(e) merke(r), til spesifikk(e) produktgruppe(r)
Når alle produktene du ønsker å telle er lagt til, velger du “Start” øverst. Når du har bekreftet at du ønsker å gå i gang med tellingen vil videre arbeid skje i Flow Assistant appen på en håndterminal eller mobil (Android / iPhone).
Den praktiske fysiske varetellingen utføres med Flow Assistant på håndterminaler eller mobiltelefoner med appen installert.
Anbefaling: Bruk en håndterminal med integrert strekkodeleser. Selv om Flow Assistant fungerer på mobil og kan skanne produkter ved hjelp av kameraet, er dette betydelig mindre effektivt enn å bruke en dedikert håndterminal
Start Flow Assistant appen på en håndterminal eller mobiltelefon der den er installert.
Appen finnes på Google Play og Apple AppStore. Søk på “Flow Assistant”. For å onboarde klienten på din butikk må du få hjelp av en bruker med tilgang til Backoffice og som kan opprette nye terminaler/devicer.
Velg Mer > Varetelling
Velg aktuelt lager, og velg deretter den tellingen du ønsker å jobbe med
Tell varene ved å scanne dem eller skrive varekoden. Registrer det aktuelle antallet enten ved å skrive tallet eller bruke +/- til å justere.
Merk at du kan velger filter-ikonet ved søke-feltet, og for eksempel skjule alle produktene som er registrert på din telle-enhet.
Du kan også registrere en avviksmelding mens du teller, for eksempel dersom du har talt 20 stk men ser at den ene er ødelagt.
Legg da inn 20 og skriv melding at den ene er ødelagt.
Den som ser over og kontrollerer tellingen i Flow Backoffice etterpå vil da kunne se denne meldingen, og ta en vurdering på om den skal tas med eller droppes.
Når du er ferdig med å telle, velg “Registrer”.
Dette vil sende det talte resultatet inn til tellelisten i Flow Retail.
Merk at beholdningen IKKE blir oppdatert på butikken selv om du registrerer telleresultatet fra håndterminalen. Registreringen sender bare inn den talte beholdningen inn til varetellingen i Backoffice, der den blir kontrollert og til slutt brukt til å oppdatere lagerbeholdningen i butikken.
Inne på lagertellingen i Backoffice kan man se hva som er talt, diff og liknende. Merk at Assistant-klientene må trykke "Registrer" for at man skal se den talte beholdningen i Backoffice.
Når man mener man har talt alt må tellingen settes i kontroll ved å velge “Sett i kontroll”. Ingen kan da gjøre videre telling på den aktuelle tellingen. Du kan når som helst gjenoppta en telling som er satt i kontroll ved å velge "Gjenoppta".
Filtrer ut de som har diff, eller last ned PDF/Excel (“Last ned som fil” oppe til høyre) for å se gjennom om tellingen ser grei ut.
Når man har registrert aktuell beholdning på alle produktene innenfor en varetelling må man oppdatere lagerbeholdningen i systemet.
Velg "Fullfør" for å gjøre dette.
Merk at denne operasjonen vil oppdatere beholdningen på samtlige produkter på tellingen. De produktene på tellingen det ikke er registrert noe beholdning på vil få satt 0 som lagerbeholdning.
Man kan eventuelt velge å fjerne utvalgte produkter fra en telling dersom man ikke ønsker at beholdningen skal bli satt til 0.
Før du velger "Fullfør" i forrige steg kan du velge å flytte de produktene som virker ut til å potensielt være enten talt feil eller som av andre årsaker må sjekkes over på en ny telling, en såkalt omtelling.
Dette er i praksis en ny telling, men da med et mindre antall produkter.
Merk at vi generelt anbefaler å ikke kjøre omtelling, men heller prøve å få talt alt på den opprinnelige tellingen. Man får ved å ha alt på èn telling ut èn totalrapport for alt innenfor det man skal telle, istedenfor flere forskjellige rapporter (som er tilfelle ved omtelling).
Marker de aktuelle produktene, og velg “Opprett en omtelling med x vare(r)”.
Omtellingen bør ha langt færre produkter.
Tell deretter produktene i omtellingen på vanlig måte, ved å sette tellingen til “Start”, og hente den opp i Flow Assistant.
Fordel tydelig hvem som teller hvilke hyller og/eller produktgrupper
Samme produkt kan i mange tilfeller ligge på forskjellige steder (ikke nok plass i hyllene eller kunder "flytter" produktene rundt i butikken ved at de angrer og bare legger produktet ifra seg en tilfeldig plass). Systemet håndterer dette fint, dvs at forskjellige personer kan telle samme produkt, og så summeres det opp når de er registrert inn, men det kan være at man ønsker å rydde og flytte varene når man først teller, og at en annen person da teller dette ekstra
Merk produktene eller hyllene når de er ferdig talt, for eksempel ved å feste en Post-it-lapp på de hyllene eller kassene som er talt
Unngå å utføre varetelling mens butikken er åpen. Det blir raskt uoversiktlig når kunder samtidig henter produkter fra hyllene
Varetelling er noe mange bare gjør èn gang i året (ved årsavslutning), og således glemmer man litt hvordan det gjøres. Les dokumentasjonen èn gang til, og dersom du fortsatt behøver hjelp er det bare å kontakte kundeservice. De som har utvidet serviceavtale kan også ringe vår vakttelefon som er betjent på helligdager.
Velg aktuell(e) produkt(er) du vil telle:
When selling products, it is very important to understand contribution margins (🇳🇴 dekningsbidrag), and the mechanisms around it, both to understand which sales price should be set on each product, and also to help understanding how much discounts you can offer on a specific product.
In this example we follow a product all the way from being purchased to being sold, and where we will also look at how much discount you potentially can offer.
You purchase the product ZEISSVICTORY
for NOK 1.000 ex. VAT from your supplier Zeiss Watches. Your total expense is then NOK 1.000, and everything on top of that is your profit.
You decide to sell the product for NOK 10.000 incl VAT to your customers.
The product has a VAT of 25%.
To find the contribution margin we first need to remove the VAT: Net Sales Price = (Sales Price (incl. VAT) / 1 + VAT rate) = NOK 10.000 / 1,25 = NOK 8.000
Next we need to get the contribution margin, which is basically your profit: Contribution Margin = Net Sales Price - Cost Price = NOK 8.000 - NOK 1.000 = NOK 7.000 This means that for each product sold, NOK 7.000 is available to both cover fixed costs and generate profit.
Flow Retail will show the contribution margin both in amount and also in percentage.
This of course heavily depends on various factors, like how efficiently the business is being run, etc., but lets try with a relatively general example:
Since the product costs NOK 1.000 ex. VAT, you will need to add the VAT to the price, as you have to pay the VAT. The break-even price is therefore NOK 1.000 + 25% = NOK 1.250.
This means you can sell the product for NOK 1.250 and basically earn nothing. Which is normally pointless, and so you would want to add a minimum contribution margin on top of this, for lets say NOK 2.000 (to cover fixed costs, etc.). This means the lowest price you can sell for is NOK 1.000 + NOK 2.000 = NOK 3.000, and with the added VAT on top of that you get NOK 3.000 + 1,25 (25%) = NOK 3.750.
So, to ensure a certain contribution margin, you should at maximum discount the product down from NOK 10.000 to NOK 3.750, which will cover internal costs (house rental, salary, Flow Retail license, etc.) for a total amount of NOK 2.000.
Add one or more products to an order (to become a sale)
Press cmd+b / ctrl+b in Keyboard-mode, or tap and hold DG in Touch-mode
You can now see the contribution margin per product, both as an amount and also as a percentage
A contribution margin of 40% means that practically 40% of the revenue will go into covering the fixed costs like house rental, salary, etc., and the remaining 60% will be for variable costs, which includes purchasing the product, shipping from your supplier, and so on - and also hopefully to generate some profit on top.
The higher the contribution margin percentage, the more is left for profit.
We offer a wide variety of payment methods, covering practically every retailer's needs.
Full list of all standard payment methods available in Flow Retail.
Most payment methods are included, however some require a one-time cost to set it up and a monthly fee, either per terminal/device or per store.
Cash
Cash
Included
Included
Adyen
Card
NOK 1500/store
Included
Nets
Card
NOK 1500/store
Included
Verifone
Card
NOK 1500/store
Included
Swedbank Pay
Card
NOK 1500/store
Included
Stripe
Card
NOK 1500/store
Included
Invoice
Bank
Included
Included
Invoice EHF
Bank
NOK 1500/store + NOK 5/invoice
NOK 400/store
Dintero
Mobile payment
NOK 1500/store
NOK 150/device
Softpay
Mobile payment
NOK 1500/store
NOK 250/device
Vipps
Mobile payment
NOK 1000/store
Included
Vipps MobilePay
Mobile payment
NOK 1000/store
NOK 250/device
Flow Gift Card
Gift Card
Included + NOK 5/card
Included
Britannia Gift Card
Gift Card
Custom
Custom
Credit Voucher
Included
Included
Foreign Currency
Cash
NOK 2500/store
Included
Pre/part-payment
Part-payment
NOK 7500/store
Included
Custom payment
Any
Included
Included
Receiving payment in Flow Retail is both very easy to do, and flexible.
You can use an unlimited number of payment methods on one settlement/order
E.g. on an order with a total amount of 1000, you can give your customer the option to pay 100 in cash, 500 one one card, 200 on another card, and the remaining 200 by gift card, to put it to the extreme
Note that combining multiple payment methods makes it more complex to do a refund, as especially card refunds must be refunded towards the exact same card
We recommend to have at least two modern paymet methods (cash is not defined as modern) active, like card payment and one of the available mobile payment methods, like Dintero or Softpay, in case of technical issues
Adding and editing customers is super-easy and quick to do, and we work hard on making it a seamless experience both for the person in the store and towards the customer.
Navigate to Add Customer
Start typing the phone number or name
If the customer already exists, it will immediately appear, and can be selected and added to the sale
If no customer is found, you will be prompted to create a new customer, and where the already entered phone number and/or mail is automatically filled in
You only need to fill in the name, however we strongly adding as much relevant information as possible, especially the customer's phone number
Press arrow-up
Start typing the phone number or name
If the customer already exists, it will immediately appear, and can be selected and added to the sale
If no customer is found, you will be prompted to create a new customer, and where the already entered phone number and/or mail is automatically filled in
You only need to fill in the name, however we strongly adding as much relevant information as possible, especially the customer's phone number
A supplier is important for all products, as its used on purchase orders and blbla.
To sum it all up, the selling functionality in Flow Retail is so easy to use that you should not be needing to read this guide.
Flow Retail has two 'modes' for selling: Touch mode and Keyboard mode.
Although you typically decide on either of them, you can quickly switch between the two modes, even on an active order!
This is the most used mode, and is optimized for touch devices such as iPad and similar.
Many stores also use the Touch mode on non-touch-based devices, such as regular Windows or Mac computers, as it is so easy to use.
This mode is built for speed, and is for the most used by stores with a continuous queue of customers coming to pay.
Keyboard mode lets you use all sales features with just the keyboard.
In an optimized flow with just one product, it can take as low as 2-3 seconds to fulfill a sale.
The interface in Touch mode is super-intuitive, and most people would be able to start selling with this mode enabled in just a few minutes of training.
Flow Retail supports sending SMS messages to any recipients, both to registered customers and to mobile numbers not registered to a customer.
SMS is also used for various notifications to customers.
To start using SMS messages, you need to have the SMS extension enabled.
There is no monthly cost to the SMS extension, however there is a price per SMS being sent, as described on the bottom of this guide.
The messages can be sent from numerous places, from the customer details page to the customer overview, to various specific functions where notifying the customer by SMS is relevant, like when informing the customer that a product they have requested has arrived and is ready to be picked up.
The SMS service also sends pickup notifications on Click & Collect orders, if the Order Handling extension is being used.
The standard price per SMS message as of January 1st 2025 is NOK 0,69 (€ 0.069).
Note that all prices are excluding any VAT.
SMS usage is billed monthly in arrears.
The world wide SMS protocol used to send SMS messages have a limit of 160 characters, however it is not a problem to send longer messages than 160 characters, and such messages are simply split up in several SMS messages according to the table at the bottom of this page.
Flow Retail automatically handles splitting a longer message into multiple SMS-messages, so that the customer only receives one message.
In general we do recommend to try keeping the messages below the 160 characters "soft-limit", however it is more important that the customer receives an informative message of lets say 210 characters than trying to limit it to it becomes diffuse and unclear.
Flow Retail offers a complete customer management solution designed to fit both B2C and B2B needs.
You can create and manage individual customer profiles with separate addresses, segment private and business customers, consents, and even handle B2B clients with custom agreements.
Whether you’re running a physical store, an online shop, or both, our flexible system gives you full control over your customer data and relationships — all in one place.
It’s important to note that Flow Retail uses a single, centralized customer database across all stores and organizational units within the same tenant. This means that personal customer information — such as email addresses and phone numbers — may be accessible across different legal entities (e.g., subsidiaries or franchise stores).
To ensure transparency, we recommend clearly stating this in your privacy policy with wording such as:
“By becoming a customer, you consent to the sharing of your customer data across all our stores, including any franchise or partner locations operating under the same brand.”
A customer in Flow Retail is one of two types:
Private person / consumer
Company / business
General company with no special agreements
B2B Agreement customer with special agreements
The B2B Agreement customer variant requires the B2B extension.
The majority of customers fall into this category, and it is set as the default when adding a new customer.
For this type of customer, the only required information is their first and last name. However, it is highly recommended to also include their phone number.
The standard company customer type is more or less identical as the Private customer type, with a few exceptions:
This customer category targets companies you sell to and have special agreements with.
Functionality for B2B:
Set payment terms, like due date for invoices (e.g., "30 days").
Setting and managing a credit limit for purchasing and payment by invoice, and which is deducted as you sell.
Connect each sale to a contact person for enhanced transparency.
However, while you now are here, lets go trough it all
1 - 160 characters
1 SMS message
161 - 306 characters
2 SMS messages
307 - 459 characters
3 SMS messages
460 - 612 characters
4 SMS messages
613 - 765 characters
5 SMS message
766 - 918 characters
6 SMS message (max)
First name
Yes
-
Last name
Yes
-
Street
No
-
Postal Code
No
Valid format per country
Postal Place
No
-
Country
Yes
Dropdown list
Mobile
No
Digits and + sign
No
Valid email address
Display Name
No
-
Internal Notes
No
-
Accounting Number
No
-
Company name
Yes
-
VAT number
Yes
-
Payment Terms
No
Digits
Credit Limit
No
Amount
The accounting reports are mainly for accounting and other financial-related tasks.
How to create new users, and details on the various roles.
Make sure to choose the correct account type
and access level
for each user, as you will be charged depending on the account type, and as users with more access than strictly needed is normally not a good idea.
user
?A user is a person, and a person is one specific and totally unique human on earth.
Every user needs a user account, and each user account is set up with different permissions depending on the needs for each particular user (person).
types
An account type is one of these: Regular employee, Employee with Backoffice access or Integration.
Regular employee
Regular employees needing basic sales functionality, order handling, etc.
Create and manage any type of sales
Till settlements (e.g opening/closing a till)
Basic reports
Flow Retail Client for Windows/Mac/iPad Flow Retail Assistant for handheld/mobile
Employee with Backoffice access
Employees needing everything like a regular employee, and in addition needs access to Flow Retail Backoffice
Same as regular employee, plus Backoffice (web) for adding/editing products and all other data, like creating new stores, etc.
Flow Retail Client for Windows/Mac/iPad Flow Retail Assistant for handheld/mobile Flow Retail Backoffice for web
Integration
Full technical access to the installation, including access to add/edit/delete all data
External system (e.g an ERP system, a PCM system, etc.)
Account type
One of the above
Yes
App username
Username used when logging into all clients (except Backoffice).
Lowercase
No spaces
Yes
App PIN
PIN used alongside the username to log in (except Backoffice)
4-6 digits
Yes
Firstname
Self-explanatory
None
Recommended
Lastname
Self-explanatory
None
Recommended
Display name
Abbreviation of name, or a first name
None
Strongly recommended
For users which needs access to Backoffice
Valid email address
No
Phone
Nice to have for contacting employees
Numbers
No
Access level
Which access level the user should have
One of the options
Yes
External ID
ID from an external system, like an IDM (Identify Management) system
None
No
Language
The preferred language for the user
One of the options
Yes
Access level
For each user, a general access level has to be defined.
Seller
Handle any type of sales, opening/closing tills, basic reports.
Department manager
Everything from Seller, plus for example handling purchase orders.
Store manager
Everything from Seller, plus for example creating new users.
Blocked
A user that has been blocked for various reasons.
Store-specific access
If a user should only have access to one of a few selected stores, then one can define which stores and which access level they should have in each store, respectively.
Flow Retail is licensed on a per-user basis.
Gives you a quick view of sales in a sertain period.
Flow Retail provides powerful and flexible tools for importing data, making it easy to set up and manage your system via spreadsheets.
You can import everything from products — including variants such as sizes, colors, and other attributes — to prices, purchase costs, and inventory levels.
In addition, customer data, product groups, brands, and suppliers can all be imported.
All import files must in the XLSX file format, the modern Excel file standard.
XLSX is widely used, highly flexible, and supported by virtually all spreadsheet tools — including Microsoft Excel, Google Sheets, LibreOffice, and OpenOffice.
When importing data, you first need to create a template where you define/"map" the columns from the spreadsheet to the corresponding fields in Flow Retail.
The available fields are different depending on the type of template you are defining. So, for the product template there are basically 50+ fields to choose from, while on the stock template there are just a handful.
Simply navigate to using your favorite browser, then go to Users
> New User
, and fill in the required fields.
External systems integrating with Flow Retail. Although this is also a user and user type, this is actually not a real person (unless the integration in the other end is an )
The licensing differs between the various Account types. Check our website on for more details on pricing.
Products
All + Properties
Brands
Name
Product Groups
Name + hierarchy structure
Inventory
Quantity + cost price
Price lists
Prices
Suppliers
Name
Supplier prices
Prices
Customers
Name, type of customer
The Accounting report is the most used report for accountants that are not using an accounting system integration.
This report provides an overview of accounting entries for a specific period, typically used for bookkeeping and reconciliation purposes. It includes:
Assets section: Lists relevant asset accounts and their debits and credits during the selected period, such as cash or payment service providers.
Sales and operating income section: Breaks down revenue accounts, including VAT (Value Added Tax) details like applied rates, VAT amounts, and income excluding and including VAT.
Totals: Summarizes the total debits and credits to ensure the ledger is balanced.
Accounts receivable section: Displays any customer receivables recorded during the period (if applicable).
This type of report is commonly used to verify that all postings are correctly recorded and balanced in the general ledger.
You can choose any from and to date on this report.
Visma.net (ZIP)
Visma Business (ZIP)
This guide walks you through the setup of Flow Gift Card in the Flow Retail POS platform.
Please ensure you have all the necessary details, which you can obtain from customer service.
Flow Gift Card Merchant Token
Example: F3dMeyJhbGIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtaWQjfh333pYXQiOjE3MTAzMzU23zZ9.1wNyBgC23ffyaqCFFbxk2AWu2Rbeeffdf22OvHjxmlE
Flow Gift Card Merchant ID
Example: 531
Flow Gift Card Brand ID
Example: 837
To begin selling and accepting gift card payments, follow these initial setup steps.
Go to Backoffice > Products > Products
Add a product with product type GIFTCARD
Simply call it "Gift Card", and add proper details in the required fields
We recommend adding such products to a specific "Services" Product Group
Set 0 (zero) in the price field
Make sure its 0% VAT (you will get an error if you try to set VAT on GIFTCARD products, as the system won't allow for that)
Go to Backoffice > Stores > [your store] > Services > Flow Gift Card
Make sure the configuration is set up, and that the extension is enabled.
If you are using Flow Gift Card on multiple stores, you must use different merchants for each store. Contact customer service for adding more mercants to the issuer account.
Congratulations! You are now ready to both sell and accept gift cards in your store(s)!
In Flow Retail, a subsidy is a financial support provided by a supplier or partner that reduces the cost price of a product for a limited period of time, without changing the selling price.
This makes it possible for the retailer and seller to gain improved margins on selected products during the subsidy period.
Unlike traditional discounts, subsidies in Flow are not visible to the customer and are purely a back-office mechanism.
The selling price remains unchanged, but the internal cost basis is temporarily improved.
Improved gross profit on subsidized products
Better collaboration with suppliers
Tracking and reporting for subsidized periods
Transparent display of subsidy on a product for sellers in POS
Can be configured per product, per store, with a date range
A supplier agrees to subsidize a specific product with a fixed amount (e.g., NOK 100 per unit) for a given time period.
The retailer sets up the subsidy, linking the subsidy to one or more products.
Selling the subsidized product during the subsidy period:
Selling a subsidized product with immediate delivery
The seller adds the subsidized product to the order
The subsidized amount is copied onto the order line
The customer pays for the order, and the seller delivers it out immediately from Flow
Flow sets the final cost price on that order line to the Average Cost minus the subsidized cost
Selling a subsidized product with later delivery
The seller adds the subsidized product to the order
The subsidized amount is copied onto the order line
The customer pays for the order, and the seller does NOT deliver out the product from Flow
When the order line is later delivered out, Flow finds the current Average Cost, and substracts the subsidized cost, and adds that total onto the order line as the final cost
Flow sets the cost price on that order line to the Average Cost minus the subsidized cos
The selling price remains unchanged.
Each subsidy record includes:
Label: A short description shown to sellers in POS (e.g., “Supplier campaign - extra margin”)
Amount: Fixed value (e.g. reduced cost) in local currency (e.g., NOK 100) that is subsidized
From date / To date: Time period when the subsidy is active
Store(s): One or more store locations where the subsidy applies
Product(s): Selected by SKU or through filtering (e.g., brand, category, tags)
The subsidy is applied directly to the cost price on the relevant product on an order.
This cost override is only active during the selected time range.
The subsidized cost price is used in all margin calculations, seller views, and profitability reports.
The original cost price is still stored for auditing and reference.
In Flow Backoffice:
Navigate to Products > Subsidies.
Click Create new subsidy.
Fill in:
Label
: Short name shown in POS (e.g., “Vendor Support April”)
Amount
: Fixed subsidy per unit (e.g., 100)
From
/ To
: Dates for when the subsidy is active
Stores
: One or more stores where it applies
Products
: Add manually by SKU or use filters
Save and activate the subsidy.
The cost price returns to its original value.
Reports will reflect:
Total number of subsidized items sold
Total subsidy used
Gross margin improvement
Data can be exported for supplier reimbursement if needed.
Flow Gift Card is seamlessly integrated into the Flow Retail POS platform, allowing retailers to easily sell and manage digital gift cards directly from the POS system.
Flow Gift Card can also easily be integrated with basically any e-commerce system.
The service is structured around three main components: Issuer, Brand, and Merchant.
Issuer: The entity responsible for generating, validating, and managing gift cards at a system-wide level. This can be seen as the ultimate owner of the gift card.
Brand: Represents the brand or type of gift cards. Each brand can have its own set of configuration. Typically a store has two brands (type of cards) in use; Gift Cards and Credit Voucher (Norwegian: "Tilgodelapp").
Merchant: Individual store or location using Flow Retail POS together with the Flow Gift Card service. Merchants sell and redeem gift cards under specific brands configured for their store.
100% integrated in Flow Retail
100% integrated in Shopware e-commerce
Learn how to integrate it with any other e-commerce platform
Supports both digital and physical cards
Either print or pre-print card number (and optionally CVC) onto the cards, or issue the cards digitally by mail (typical with e-commerce)
Flow Retail POS also supports printing the card number and its bar code on a label printer, to be sticked onto any type of gift card paper handed out to the customer
Generate an unlimited number of cards in advance
Use the card unlimited times to pay with (as long as there are funds available)
Unlimited deposits (adding funds) to any card
16 digit card number
Optionally enable CVC (Card Verification Code) for additional security
Sell in any store - use in any store
Easily use one type / brand of gift card across an unlimited number of stores (e.g. a retail chain)
Below is the basic flow for when using a gift card using the Flow Gift Card service.
The Foreign Cash extension lets you allow for customers to pay in foreign cash, like Euro or US dollar.
Simply define a currency exchange rate between what is your base currency (e.g. "NOK" for Norwegian Kroner) and the relevant currencies you want to allow for paying in.
All sales are fulfilled in the base currency, and so any rounding is done directly on the sale.
Agio and other such things are not taken into consideration, and needs to be handled from within the accounting system.
Add the various currencies wanted, alongside the relevant exchange rate.
Enable the Foreign Cash payment method in the store(s) where you want to allow for this.
Selling gift cards is super-easy.
Simply follow the below steps.
You can sell as many gift cards, each with different amounts, on one single order.
Add the gift card to the order, preferably by the PLU shortcuts, or by searching for the SKU, typically "GC" or some other short code to easily find it.
If you want to sell an already created gift card (e.g. from a bulk create done in advance), select "Enter card number" to scan/register the existing card.
After selling gift card, it is important to get the gift card itself delivered to the customer.
There are basically three ways of doing this:
Send the gift card by email to the customer
Print out the gift card on a label printer (requires a compatible label printer)
If you selected an existing card when adding the gift card to the order, there is normally no need for neither sending nor printing the card again.
Done!
Steps to Process a Payment Using the Flow Gift Card.
Follow these steps to ensure a smooth transaction using a Flow gift card.
Note that it is fully possible to pay with multiple Flow gift cards on the same order.
If the available amount remaining on the gift card is below the total order amount, you will need to add other payment methods for the remaining amount. Note that you can use multiple gift cards on the same order.
No problem. Simply enter the amount you want to deduct from the card, and only that amount will be withdrawn.
In Flow Retail, pre-payment allows customers to pay a portion of the total amount upfront and the remainder when they receive their product(s).
Pre-payments typically do not appear as revenue on the day they are sold.
Instead, the pre-payment amount is reserved and applied toward the total once the order is fulfilled (e.g., when the full amount is paid).
Allow customers to pay a portion of the total amount upfront
Easily collect the remaining balance upon delivery
Ensures correct financial and accounting handling
Simple and intuitive to use
Configure and enable the Pre-Payment payment method, both on the tenant and on the relevant store(s)
When selling, choose the Pre-Payment function
Select the preferred payment method
Enter the amount to be pre-paid
Done! The order will now have a pre-payment on it, and is set in PARKED mode
The receipt contains information on whether the order has a remaining pre-payment on it
When the customer comes to pay the remaining amount, simply open the parked order and choose to pay the remaining amount as wanted by the customer. The previously paid pre-payment will be automatically deducted from the total amount.
The Service extension is a fully featured service and after-sales system, making it super-easy to register, follow-up and fulfill any type of services or after-sales handlings.
By creating various service types (e.g "Computer service", "Replace battery", or "Calibrate before use"), each with its own set of statuses (e.g "New", "In Progress", "Waiting external supplier", etc.), you can quickly register a new service with the customer in front of you.
The Service system supports adding lots of optional, relevant data, like:
A full description about what needs to be done, or what is the fault of the product
Guarantee information
Which order and product it is related to
Initial estimate
Maximum estimate
Assignee
In the Service system, you can add both internal and external notes to a service case. External notes can be sent to the customer via SMS, email, or both.
The customer will receive the message along with a link to a mobile-optimized web page where they can view all relevant details about their service case.
Register both time spent and time the customer shall be charged for.
Add any product(s) to the service, like spare parts used to complete the service.
Flow Retail Service fully supports letting the customer pay for the service (time and eventual spare parts).
Keep full track of all services for a specific customer.
Dintero is a PSP (Payment Service Provider), which delivers a very easy-to-use and flexible payment solution that lets any merchant/store receive payments from its customers from many of the popular payment methods, including:
Vipps (Norway)
Vipps MobilePay (Denmark)
Visa (both EU consumer cards and non-EU consumer cards)
Mastercard (both EU consumer cards and non-EU consumer cards)
Klarna
Swish (Sweden)
Apple Pay
Google Pay
Walley
Billie
Dintero is great as a payment service to offer payment solutions like Vipps and Klarna in your store, and also as a backup-solution should your regular physical card terminals stop working.
When a customer comes to the store, or calls in by phone or chat, you can create a standard sale in Flow Retail, and choose Dintero as the payment method.
You will then need to enter at least either the mobile number and/or email address to the customer.
The customer then receives an SMS and/or email with a link to a Dintero payment page where they complete the payment. In the Dintero payment page, the customer choose which payment method they want to use from a list of the payment methods you as a merchant/store has decided to have enabled (this is set up in the Dintero Backoffice by yourself).
When the customer has confirmed the payment, the order is completed.
It is per 17.12.2024 not possible to create a Dintero payment, and leave the sale in Flow Retail. This means you will need to wait for the customer to complete the payment before you can do anything else in the system.
In a later update we will add support for letting you create a payment link, and then leave the order (e.g park it in locked mode, with a status "Awaiting payment", whereas it is automatically completed once the payment is done).
Sign up with Dintero on their website. Remember to choose Flow Retail as your partner, so that we automatically get access to do the configuration.
Contact our support, and inform us which store(s) you want Dintero enabled on. This is normally done within 1-2 days. For this we will need access to your account.
We will create the necessary API key and add to the Dintero extension
We will configure the API keys on the relevant store(s)
We will do one test sale to confirm everything is working, whereas you need to do at least another actual sale to cross-check and confirm everything works as expected
The Dintero extension in Flow Retail is free of charge.
From Dintero there will be both a monthly fee and ongoing costs, depending on transaction volumes and more. Contact Dintero for more details.
All payments going through Dintero is 100% handled by Dintero, so you will only receive one payout from Dintero, even though some of your customers choose to pay by Vipps, some by Klarna, and maybe some by the built-in card payment solution.
In Flow Retail there is a dedicated payment method for Dintero, and which can be assigned an accounting number, so that it is very easy to "balance out" the payments vs payouts. If you have any questions related to this, please contact either Dintero (for payouts or reports details), or us (for accounting number setup).
The Campaign extension allows you to create virtually any type of price campaign in your store — from targeted discounts on individual products to broader campaigns covering entire product groups or brands.
It’s a flexible and powerful tool designed to support both simple promotions and complex pricing strategies.
The B2B extension is perfect for any store which has "agreement customers", like for example a company with an agreed due date on invoices, one or multiple contact persons, a limit in terms of spending, following up on invoice payments, and more.
A new customer type: B2B (Norwegian: "Avtalekunde"), which comes as an addition to the default customer types "Private" and "Company"
Create an unlimited number of contact persons to a B2B customer, with the following fields:
First name
Last name
Phone
Set a pre-defined due date on invoice payments
Example: "45 [days]"
Set a pre-defined Credit Limit
Example: "20000 [NOK]"
List all sales/invoices for a B2B customer
Add a manual payment to an invoice, including adding an optional reference
Example: The customer pays an invoice through your accounting system solution, and you want to manually register that specific payment on the actual sale in Flow Retail
Make a payment of an invoice with any of the other existing payment methods
Example: The B2B customer comes into the store, and want to pay an invoice by credit card
Enabling and setting up the B2B extension is normally done within 1-2 days, however there might be details related to the accounting system that needs to be addressed.
Contact sales to get more details on pricing.
The B2B extension works seamlessly together with the KID and the EHF extensions, for stores that issues out many invoices, and dont use an accounting system integration.
The Arts extension helps you sell arts and other commission-based products, with reports for handling art fees, commission payouts and much more.
Kort oppsummert lar Arts extensionen deg selge kunst-produkter med de krav myndighetene stiller i forhold til kunstavgift og annen rapportering. I tillegg er det funksjonalitet for å kunne regne ut provisjon (commission) for kunst-salg, og herunder også generere utbetalingsbilag til kunstnere ved salg av kunst, samt relevante rapporter for å danne grunnlag for registrering inn til relevante myndigheter.
Integrasjon mot systemer fra myndigheter og andre som måtte kreve innsikt i kunstsalg. Dette må man selv besørge registrert inn i relevante systemer, gjerne med grunnlag basert på det Arts extension gir
Automatikk i utbetaling til kunstnere. Arts extension gir ut data man kan bruke som grunnlag for utbetalinger, men selve utbetalingene må man selv besørge
Selve Arts extension må aktiveres av Flow personell. Videre oppsett av Arts extension er relativt enkel, men det er viktig at det gjøres korrekt, og vi anbefaler derfor at vi bistår i dette.
Kunst-produkter er i praksis som alle andre lagerstyrte produkter man selger, men det er spesielle behandlingsregler på kunst-produkter så det kreves at de ligger i en spesiell produktgruppe.
Opprett derfor en produktgruppe "Kunst" eller "Formidlingssalg" der alle kunst-produkter vil bli lagt inn
Legg inn "Uid" til denne produktgruppen i oppsettet til Arts extension
Når man selger kunst legges automatisk på kunstavgift på ordren. Denne avgiften er et eget produkt. Dersom man fjerner kunst-produktet fra ordren vil avgift-"produktet" også automatisk fjernes.
Opprett et nytt produkt med produkttype "Ikke fysisk". Kall produktet "Kunstavgift 5%". Legg det i en annen produktgruppe enn kunst-produktene, for eksempel en produktgruppe kalt "Avgift og gebyrer"
Gå til oppsettet av Arts extension, og skriv inn "Uid" for kunstavgift-produktet, hvilken moms-prosent det skal ha (default = 5%, som ikke bør endres til noe annet uten at det er sjekket nøye) samt legg inn minstebeløp på produkt for at kunstavgift skal legges til (default = NOK 2000, som ikke bør endres til noe annet uten at det sjekkes nøye). Produkter som koster under kr 2000 vil ikke få kunst-avgift lagt til seg, og dette er per 2025 gjeldende for salg av kunst i Norge
Når man selger kunst skal man normalt motta en provisjon på salget. Når Arts extension er aktiv, og man oppretter eller lagrer et produkt i "Kunst-produkter"-produktgruppen, vil produktet automatisk få satt den aktuelle inntektsandelen i prosent som er satt i oppsettet, såfremt man ikke velger å skrive en egen for det aktuelle produktet.
Gå til oppsettet av Arts extension og sett en standard inntektsandel til kunstner i prosent (default = 60)
Overstyr denne til det du ønsker på de aktuelle produktene
Husk å avtale med den enkelte kunstneren hva som er inntektsfordeling og provisjon. Denne er normalt 60/40, dvs at kunstneren får 60% av den avtalte prisen, og butikken/galleriet får 40% av salgsprisen. Dette kan tilpasses ned på produktnivå.
Et kunstverk koster 10.000 (pris bestemt av kunstneren).
Det er avtalt 40% provisjon til butikken/galleriet som selger kunstverket.
Det er 5% pålagt kunst-avgift.
Kunden betaler 10.000 + 5% (500) = 10.500.
Galleriet får 4.000 (40% av 10.000) i provisjon.
Kunstneren mottar 6.000, som i praksis blir butikken/galleriets innkjøpspris for produktet.
Håndtering av rabatt på kunstverket Dersom butikken/galleriet velger å gi en rabatt på produktet (eksempelvis reduserer prisen til 8.000) så vil kunstavgiften på 5% automatisk justeres til å være basert på 8000, altså totalt 400, mens beløpet kunstneren mottar fortsatt skal være 10.000, altså basert på opprinnelig avtalt pris.
Før du oppretter kunst-produktene må du opprette en leverandør per kunstner, da kunstnerne er definert som leverandører. Det er krav om merke på alle produkter, og hver kunstner må derfor også opprettes som et eget merke.
Kunst-produkter er som tidligere beskrevet i utgangspunktet helt vanlige lagerstyrte produkter, og der det viktigste man må tenke på er å opprettet produktene i "Kunst-produkter"-produktgruppen
Skriv navn og annen nødvendig inforamasjon på kunst-produktet, samt veiledende salgspris
Du er nå klar til å selge kunst!
MERK: Etter ønske fra kunder som bruker løsningen er alt rundt rapporter gjort om. Dokumentasjon på dette vil bli oppdatert til å gjenspeile disse endringene i løpet av Q1 2025.
Alle kunstnere kan til enhver tid få tilsendt en oversiktlig rapport basert på en gitt periode over hva som er på lager i butikken/galleriet, både hvilke produkter (kunstverk) og hva lagerbeholdningen er, samt hva som eventuelt er solgt i den aktuelle perioden. Denne rapporten kan enten lastes ned eller sendes direkte på mail til kunstneren (dersom de har en gyldig epost-adresse registrert på seg som leverandør).
I tillegg produseres en Formidlingssalg-rapport, som er ment til internt bruk samt rapportering til relevante myndigheter. Denne rapporten inneholder alle salgsbilagene, med dato, hvilke varer det gjelder, fullpris, salgspris, kostpris samt bruttomargin i prosent og kroner.
Gå til Backoffice > Kunst > Kunstprovisjon
Velg butikk (galleri)
Velg kunster (leverandør). Her kan det legges til flere
Velg produktgruppe for hvor kunst-produktene er
Velg fra-til dato
"Vis kunstnere med salg" eller "Last ned rapporter"
Dette vil generere èn ZIP-fil per kunstner (leverandør), med rapporten til kunstneren samt en egen intern rapport "Formidlingssalg".
In short, when using the Flow Gift Card service, you are totally free in terms of how you want for the gift 'card' to be.
It can be sent digital, or handed out as something physical.
Digital gift cards are convenient as they can be emailed directly to the customer without any physical handling. However, many stores prefer to provide a tangible 'card' to customers.
You have complete flexibility to decide how it shall be delivered after the order has been created.
There is no magnetic strip or NFC chip in use for Flow Gift cards. The only thing on the card that is being used is the 16 digit gift card number displayed on the card (as a barcode for easy registration, alongside the card number, which is the representation of the barcode).
In addition to the card number, a 3-digit Card Verification Code (CVC) can be used to verify ownership. This security feature is optional and can be enabled as a setting on the card brand.
When enabled, customers must provide the CVC together with the card number for each transaction.
The CVC is not visible on the actual card. It is typically sent to customers via SMS immediately after purchase. For physical gift cards distributed in bulk, you may consider pre-printing the CVC directly on the card, concealed beneath a scratch-off layer that customers must remove to view the code.
A physical gift 'card' can have any form you prefer: It might be a high-quality plastic credit card, or it can be a custom-designed, professionally-produced paper card, in any layout/format you prefer, from standard card format to squared format.
We offer delivery of batches of up to a few hundred plastic cards with custom designs in a credit-card format. Contact our customer service for details on delivery and pricing.
Our recommendation though is to either simply use your local marketing agency or print agency to design and produce 'cards' in whichever format you want.
In both scenarios the gift card number and barcode is produced as printed labels in your store for each time a customer buy a gift card, and which you simply stick onto the 'card'.
This feature is only available for stores in Norway and Finland.
KID, a Norwegian abbreviation for "Kunde-ID", is a banking/payment feature that Norwegian banks use to identify invoice payments.
By enabling KID, invoice payments will be assigned a unique "KID number" on the invoice, which in turn a specific customer enters when they pay the invoice in their bank.
Setting up KID might be a bit complicated, and often also involves the accounting system, including EHF setup, and so we recommend that we assist in setting up KID.
Enable the KID extension
Contact us to have it enabled. Note that most extensions has an added monthly cost.
Configure the KID mask
The KID mask can consist of n, c, or fixed numbers. It can have a minimum of 1 character and a maximum of 24 characters (KID can be a maximum of 25 characters in total).
Key Elements:
n: Represents the voucher number, invoice number, or document number
c: Represents the customer number or account number.
Combination: The KID can be a combination of n, c, and fixed numbers.
Examples:
Example 1: You want the KID to be nine characters long and consist only of the invoice number.
Use the mask: nnnnnnnn
.
If the invoice number is shorter than eight characters, leading zeros will be added to make it eight digits. A control digit will then be appended at the end.
Example 2: You want the KID to consist of four characters from the customer number and four characters from the invoice number.
Use the mask: ccccnnnn
.
Example 3: You want the KID to start with the number 5, followed by six digits from the invoice number.
Use the mask: 5nnnnnn
.
This flexible masking system ensures that the KID is generated consistently and meets your specific requirements.
Choose the Modulus Type
In most cases this should be MOD10
, so unless you have very specific needs, simply type MOD10
in this field, and you should be good to go.
Alternative modulus type is "MOD10_FIN
" for Finland specifically.
Thats it! When creating new sales with the payment method Invoice, every invoice should now get its unique KID assigned to it (and displayed in the invoice PDF)
If you are using an accounting system integration, it is very important that the KID mask is aligned with whatever your acocunting system use.
This feature only adds the KID to the invoices. You need to make sure to check for payments in the bank, and register the payments manually.
Flow Retail fully supports creating all common types of sales campaigns for the stores, and any campaign can be assigned to any specific or all stores.
The campaign is always either of the following types: CAMPAIGN
or PRICELIST
.
PRICELIST: This type is simply a list of products with specific discount prices. No rules are applied.
CAMPAIGN: This type has a set of rules that must be applied before the campaign is valid. You can specify which product(s) the rule applies to and which product will receive the discount.
The PRICELIST campaign type is the simplest form of campaign. It consists of a price list with a specific set of products at specified prices. You can set a time range for when the pricelist should be active using the validFrom
and validTo
fields.
name
: The internal name of the campaign.
displayName
: The name of the campaign displayed to the customer (e.g., on receipts).
validFrom
/ validTo
: The time period during which the campaign should be valid.
type
: The campaign type.
discountType
: Specifies how the discount should be applied (for PRICELIST campaigns, the only valid type is QUALIFIED_PRODUCT
).
storeUids
: A list of stores where the campaign should be active.
pricelistUid
: The pricelist that should be used for this campaign.
The optional fields applicable for PRICELIST campaigns are:
priority
: The priority of the campaign if more than one campaign applies. A lower number indicates higher priority.
campaignUid
: An identifier for the current campaign.
campaignCode
: A campaign code to manually activate the campaign. Leave it empty to automatically activate the campaign.
preventCombinations
: A flag to indicate if the campaign can be combined with other campaigns.
Example request
The response will be something like this:
You will then need to activate the campaign by updating its status.
Once a campaign is active, you cannot change its details, but you can add or remove products from the pricelist.
The CAMPAIGN campaign type is rule-based. In this campaign, you can specify brands, categories, product groups, or specific products that should be applicable. The campaign types include:
QUALIFIED_PRODUCT: The discount applies to all products that qualify for the campaign.
CHEAPEST_PRODUCT: The discount is applied only to the cheapest product.
ORDER_DISCOUNT: The discount is applied to the entire order.
The discount can be either a specific amount or a percentage, specified by the fields discountAmount
and discountPercent
. Only one of these can be specified.
amountThreshold
and quantityThreshold
can be used to set thresholds for when the campaign should be active. quantityThreshold
limits it by the number of products in the order, while amountThreshold
limits it based on the order's total sum.
The maxUsage
field limits the number of times a rule can be applied to an order, which is mostly used in "X for Y" type campaigns.
The selection of products is vital for the CAMPAIGN type. To specify which products are included or excluded from the campaign, you need to set up a selection.
When including or excluding products, you can use four types of identifiers: product group
, category
, brand
, or product uid
.
The selection of included products happens when you activate the campaign. If you create a campaign for a specific product group, activate the campaign, and then add new products to that group, the new products will not be included in the campaign until you deactivate and reactivate the campaign.
Example Scenarios
Example 1: Set up a campaign for all products of the brand "Samsung". Create a new selection that includes the brand "Samsung".
Example 2: Create a general campaign for all products in your store except for those in the "SERVICES" product group. Create a new selection that excludes the "SERVICES" product group.
Example 3: Set up a campaign for all products in the "PHONES" product group, but exclude the brand "Apple". Create a new selection that includes the "PHONES" product group but excludes the "Apple" brand.
name
: The internal name of the campaign.
displayName
: The name of the campaign displayed to the customer (e.g., on receipts).
validFrom
/ validTo
: The time period during which the campaign should be valid.
type
: The campaign type.
discountType
: Specifies how the discount should be applied.
storeUids
: A list of stores where the campaign should be active.
discountAmount
or discountPercent
: The discount as a percentage or a specific amount.
Optional fields applicable for CAMPAIGN types include:
quantityThreshold
: The quantity required for the campaign to be active.
amountThreshold
: The order amount required for the campaign to be active.
maxUsage
: The maximum number of times the campaign can be applied to an order.
priority
: The priority of the campaign if more than one campaign applies. A lower number indicates higher priority.
campaignUid
: An identifier for the current campaign.
campaignCode
: A campaign code to manually activate the campaign. Leave it empty to automatically activate the campaign.
preventCombinations
: A flag to indicate if the campaign can be combined with other campaigns.
Example - a X for Y campaign can be created like this:
When the campaign is created, you need to add the selection for the products to be included in the campaign:
Flow Retail and Omnium together delivers an integration between the Flow Retail POS platform and the Omnium OMS platform.
Integrating a POS and OMS is not a straight-forward process, and so the integration is both advanced and flexible to fit the specific needs of most retailers, and customizations will be required in all setups.
This is a 2-way integration, where some data are initiated and sent from and by Omnium, while other data are initiated and sent from Flow Retail, both depending on what makes most sense.
Omnium sends product data (incl prices and optionally inventory) to Flow Retail
Flow Retail sends customer data to Omnium
Flow Retail sends order data to Omnium, including checking for changes on orders in Omnium
The integration between Flow Retail and Omnium supports what we call "pass-through" or "proxy". This means that if some of the data or functions required by the POS is not available in Omnium, then Omnium can "proxy" those specific requests "through" Omnium and further on to other backend systems like ERP systems or a WMS/delivery availability system.
Both systems can be the master for basically all the available data types, however below is a normal setup. As one can see, campaign prices and stock/inventory needs to be decided in all projects.
Note that in practice, the ERP is the master above all, and that the OMS is placed in the middle, between the ERP and the POS.
2-way integration
Create new customer
Update existing customer
Create new customer
Update existing customer
One-way
The Product Group in Flow Retail is a hierarchy. All products must be in one specific product group, and then always "last" in the hierarchy, e.g "Brown Goods > TV > Flat Screen (the product must then be in the "Flat Screen" group (and will automatically be part of the other product groups).
To be discussed.
To be discussed.
2-way
The sales order flow between Omnium and Flow Retail POS is relatively complex, and configured and optimized on a case-by-case basis.
In short, all new orders made in Flow Retail are immediately sent to Omnium. This is for both Parked orders and for fulfilled (e.g settled) orders.
The order flow is handled as part of the various states of the orders, and in Omnium the workflow functionality is used to further process the orders depending on the various states.
Settlement (from Flow to Omnium)
Not Started > Failed
In Progress > Failed
Complete > Processed
Order (from Flow to Omnium)
Parked > Order status in Omnium = Parked
Canceled > Order status in Omnium = Order canceled
Complete
Delivery state = Not Started
Order status in Omnium = Delivery not started
Delivery State = In Progress
Order status in Omnium = Picking
Delivery State = Complete
Order status in Omnium = Picked up
To be discussed.
Other data between the systems can also be part of the integration depending on the requirements.
Integrating Omnium with Flow Retail involves several steps — from initial configuration to defining key processes and routines. Successful implementation requires collaboration between experts from Omnium, Flow Retail, and the client.
The integration involves setup in both systems. In general, Omnium is responsible for all configuration on their platform, while Flow Retail handles configuration on our side.
Create an 'Integration'-user with Administrator priviligies, and send the generated API token to Omnium.
Once the Omnium integration add-on is installed and enabled, the first step is to configure it within Flow Retail, by filling out the below configuration settings in Flow Backoffice:
Before creating a new PRICELIST campaign, you must first create a new pricelist or locate an existing pricelist to use. You can create a new pricelist via the endpoint.
To create the new campaign, use the endpoint. The required fields are:
POST
PUT
To create a new campaign, use the endpoint. The required fields are:
PUT
If you already have or consider Omnium and/or Flow Retail, please contact us at to discuss further.
Basic product data
Master
Prices
Master
Campaign prices
Master / Optional
Master / Optional
Stock / Inventory
Master / Optional
Master / Optional
Customer
Master
Open orders
Master
Completed orders
Master
First name
✅
❌
Last name
✅
❌
Company name
❌
✅
Full name ("Display name")
✅
❌
Phone
✅
✅
Customer ID
✅
✅
✅
✅
City
✅
✅
Postal code
✅
✅
Postal place
✅
✅
Country
✅
✅
Multiple addresses
❌
✅
Contacts
❌
✅
VAT number
❌
Not implemented yet
SKU
Omnium
Omnium
[Product] Type
Omnium
Omnium
Name
Omnium
Omnium
Brand
Omnium
Omnium
Product Group
Omnium
Omnium
VAT
Omnium
Omnium
Sales Price
To be discussed
To be discussed
EAN
Omnium
Omnium
Image(s)
Omnium
Omnium
Brand name
Omnium
Omnium
Name
Omnium
Omnium
Omnium Client ID
flowretail-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Omnium Client Secret
a1c3d5f7890b4e3c9f21765a8e3d2b1a-bb88cc77eedd4212a9f01a22b334c556
Omnium Token
LWE1MmYtMGJiNj...
Omnium Pickup In Store shipping method
PickUpInStore
Flow Retail handling Uid for Click & Collect orders
8f12a3bc-7c9e-4d12-91ab-3f6c72a8e123
Market Group Uid to create new customers on in Omnium
This is information is only available in Norwegian, as Tripletex is only available to Norwegian companies.
Tripletex er et veldig populært økonomisystem for norske selskaper i de fleste størrelser. Selskaper med mange hundre millioner i omsetning har normalt et ERP-system, og håndterer da økonomisystem-funksjonene enten i ERP-systemet (eksempelvis SAP eller Microsoft Dynamics Business Central) eller via et økonomisystem som er støttet av ERP-systemet.
Integrasjonen mellom Flow Retail og Tripletex settes opp på èn av to forskjellige måter, og man må velge den som passer best for sitt bruk.
Integrasjonen settes opp og konfigureres per butikk, dvs at man på en tenant med flere butikker, ha Tripletex integrasjonen aktivt på den eller de butikkene man ønsker, mens andre butikker enten kjører uten regnskapsintegrasjon, eller har andre integrasjoner.
Dette er det mest vanlige, og følgende er støttet:
Overføring av totalomsetningen for hver dag inn til Tripletex som ett bilag.
Omsetning med flere momsklasser håndteres fint, og konteres til forskjellige kontoer basert på hva som er konfigurert på den aktuelle butikken.
Mapping av hver enkelt betalingsmetode til den respektive inntektskontoen (hovedbok) i Tripletex, for enkel avstemming.
Fakturasalg i Flow Retail overføres som faktura i Tripletex
Dersom EHF er aktivert i Tripletex, og det er organisasjonsnummer på firmakunden i Flow Retail, vil integrasjonen automatisk opprette fakturaen som EHF, og eventuelt sende den direkte til kunden dersom automatisk sending av faktura er aktivert i Tripletex
Omsetningen føres på reskontro, dvs at man i Tripletex kan se hva som er utestående på en kunde.
I motsetning til type 1 overføres her hvert eneste salg, også kontantsalg, som enkeltbilag inn til Tripletex.
Ettersom Tripletex har antall bilag som en faktor i sin prising så vil dette være relativt kostbart dersom man har mange salg gjennom en dag, og denne typen brukes i praksis kun i butikker der det er få bilag samt at man ønsker full kontroll på alle bilagene for hvert salg også i økonomisystemet.
Man må først etablere et kundeforhold med Tripletex. Dette gjøres på Tripletex sine nettsider.
Når man har fått på plass Tripletex må vi sette opp og konfigurere integrasjonen. Ta da kontakt med vår support så bistår vi med dette, og følger opp at integrasjonen fungerer som den skal. Dette tar normalt 1-2 uker.
We started publishing official release details in March 2025, but 2024 consisted of literally hundreds of new features of any size, from Order handling to our own Gift card platform.
Calibrating printers, and especially thermal label printers, is something that needs to be done every now and then in order to get the paper alignment correct and more.
Turn on the printer.
Press and hold the Feed button for approx. 3-5 seconds, until the indicator LED flashes green once.
Release the Feed button.
The printer will feed out a few labels and complete the calibration automatically.
To ensure calibration was successful, print a configuration label:
Press and hold the Feed button until the LED indicator flashes green twice, then release.
A configuration label with printer settings will print out.
Labels feeding at incorrect lengths.
Blank labels printed or labels feeding incorrectly.
Labels stopping mid-label or between labels.
Calibration usually resolves these common label-feeding issues effectively.
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.
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.
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.
Print order as PDF on an open sale
Support for inventory transfer between warehouses
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
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
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
Stripe callback will now always capture the amount
PurchaseOrderUid
is now included in the notification API response
Settlements without transactions will now be added to receipts
[Backoffice] Adjusted printer layouts
[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
[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
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 deprecated field requireExclusiveUse
from device info payment method response – clients must now use the field in the requirements
object
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
[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
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
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
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
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
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
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
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
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
Verifone: removed unused async payment/refund services and handlers
Some features are rolled out gradually, and can take a couple of days before they show up for everyone. Also, some of the shiny new stuff might live inside an add-on — make sure it’s enabled before you go looking for the magic! ✨
Settlement parameters are now shown in the settled order view.
You can now view the full delivery address if an order item is on a delivery when opening the order details dialog.
Product stock for all warehouses is now shown in product search results. The default warehouse and central warehouse (if enabled) will appear first in the list.
It's now possible to send SMS messages directly from the order details dialog.
In touch mode, pressing any key (except TAB, ENTER, or arrows) in the login view activates the manual login form, with the pressed key pre-filled in the user code field.
Customer note is now shown in the open order view + you can now add customer notes to all customer types – private, company and B2B.
The Counting Help dialog now displays the expected amount.
Added support for gift cards requiring CVC to be used in payments.
A date picker is now available for selecting delivery dates in the create delivery dialog.
Holding CMD+D (or CTRL+D on Windows) while focused on a product in search results will now show its gross profit and margin.
Added support for using legacy gift cards in sales.
You can now check the balance of legacy gift cards.
PIN code check is now required for each sale when using keyboard mode.
Bulk import of customers, because one-by-one is just too slow when dealing with millions of records.
New endpoint POST /tenants/{tenantUid}/customers/batch
Payment barcode added to Finnish invoices – makes paying easier.
Invoice footer text for stores – now you can finally say something nice (or scary) at the bottom of invoices.
Backoffice Full receipts report for stores – perfect for those who enjoy digging into paper trails.
New payment method parameter key "CVC" for Flow gift card settlements.
Lookup for Flow gift card using legacy card number – your old cards still matter!
Masked gift card number is now shown on the gift card order line on the receipt.
Option to enable Duplicate check for phone number and VAT number when creating or updating customers – one customer, one number.
Rounding in Finland is now set to 5 cents as the lowest denomination for cash payments.
Gift card lookup by legacy card number.
Adyen card payment: added support for “no reference” refunds, allowing refunds to any card without needing a link to a previous sale.
You can tap a delivery directly from an order item to view and edit the delivery itself.
Products are now added to the bottom of the list in the correct (non-reversed) order in both keyboard and touch mode. The list scrolls automatically if the last item is barely visible.
Enabled printing for all printers defined for the device.
Now you need to have 'Administrator' role to be able to delete customers.
Scanning an EAN-8 or EAN-13 barcode into the quantity or serial number field in a sale now opens a dialog offering to search for the product instead.
Improved load time when opening the order details dialog.
Helper text has been added to payment amount fields to explain how to use percentage calculation shortcuts.
The customer details dialog now shows the customer's external ID.
The button for taking pre-payments in keyboard mode has been moved further down in the sale menu.
The customer order view is now in a separate tab in the customer dialog.
Customer type can now be changed using a dropdown. The edit button now only edits the current customer type.
When closing a till, it is now required to use the Counting Help dialog.
Pressing ESCAPE in the main menu will now navigate backward in the menu and eventually return to the sale view.
Pressing TAB while selecting customer type in address or customer create/edit form will now move focus to the name field.
When marking an order item to be purchased later, the system will now ask if you also want to mark all other items as such.
If an existing item is marked as purchased later, and you add a new product, you will be asked if the new product should be marked the same way.
The till status dialog will now always show the "open till" button when using a non-integrated cash drawer.
The PIN field is now only cleared on failed login attempts – the username stays.
The order handling list now automatically updates when an item is marked as complete.
Only admins are now allowed to delete customers.
Manually open cash drawer from client via ESC/POS if enabled and a receipt printer exists.
Returning Flow gift cards now clears the card, instead of capturing to zero.
Flow gift card response now includes cvcRequired
, issuerName
, and legacyCardNumber
.
Product lines with zero price are no longer overridden when a customer is added or removed from an order – if it’s free, it’s free.
Payments on invoices are now posted as credit on the posting list.
When returning order items, the system now checks if the original item has actually been delivered before returning it to stock – no more phantom returns.
Updated EHF schemeId in Finland from 0037 to 0216 – keeping up with the standards.
Product search now filters qtyOrdered by current store only – no more cross-store confusion.
Terminal receipt layout and logic improvements.
Creating multiple new deliveries on an open order caused issues with previous deliveries – now resolved.
An issue with email addresses stopping from creating new customers is fixed.
Reserving an order item already assigned to a delivery caused it to be removed – now fixed.
Fixed issue where you had to enter the payment amount twice when using an external payment method without parameters.
Payments could freeze while settling – added more robust error handling and ability to force-cancel.
Fixed issue where an order item could not be deleted if it was on a delivery.
Language change in the main menu now works properly after switching language from settings.
When not signed in, the interface language now uses the tenant’s default, instead of the previously signed-in user's language.
Terminal receipt formatting and content improved.
Product search now only includes purchase orders for the current store when calculating qtyOrdered.
Central Warehouse Extension: Now you can designate a "Central Warehouse" that appears in all product searches—displaying the stock from any warehouse defined as "Central Warehouse".
Lots of new stock details on product searches: Detailed stock information per warehouse now included—view stock levels, reserved quantities, cost prices, and gross profits.
Flow Gift cards just got saver and better, with and legacy card number support:
Introduced new gift card brand parameter "CVC"
, which can optionally be enabled, to require entering a 3-digit CVC-code alongside the gift card number. Flow gift cards just got safer!
Now you can import and use your old / existing (legacy) gift cards from your previous gift card solution. Ability to lookup Flow gift cards by legacy card number.
Flow gift cards now come with new statuses: CLEARED
, ACTIVE
, and INACTIVE
- for more accurate handling of gift cards that are "used up".
Flow Giftcard Responses: Enhanced with new fields—cvcRequired
, issuerName
, and legacyCardNumber
.
Campaign Engine: Items with manually overridden prices by sellers are now gracefully excluded from campaign calculations.
Webhooks: Now returning orderHandlingUid
instead of the old-school handlingUid
in order handling updates. New ID, same great webhook flavor.
Settlement Parameters: Added name
field in the settlement parameter responses—small addition, big clarity.
Receipts: Custom payment parameters now displayed clearly on receipt PDFs, and on display when looking at an order.
Warehouse Reports: EAN/GTIN now displayed in a new column on the XLSX report. Barcode fans, rejoice!
Invoices: Customer's VAT number now displayed on invoice PDFs.
Tenant Response Extension: Added UID
for clearer tenant identification. No more guessing games.
Extensions Access: Extensions GET endpoints are now accessible via Access Tokens. Security, meet simplicity.
Flow Giftcard: Deprecated boolean active
status. It served well but is now happily retired, and replaced by the new statuses ACTIVE
, INACTIVE
and CLEARED
.
As part of introducing support for adding assets like images to a service order (e.g. photos of the broken handle on the fridge), service-orders now properly load on all get/list
asset queries.
Made sure credit and debit amounts behave as they should in the Accounting report – no more disappearing numbers or creative math.
You can now set a price on an order item using input like *1.25
, which sets the price to cost price multiplied by your input. Perfect for those moments when you need to sell a product at cost price plus VAT – like when giving employees a good deal or handling internal sales.
Enabled linking of RMA order items to service orders - this is part of the master plan for adding functionality for warranty claims from a customer service.
Customer reservation is now also out of beta and always visible. This feature is actually big!
Implemented new API for handling refunding pre-payment payments:
POST /tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/pre-payments/refund
Pre-payment is out of beta and now visible if any pre-payment methods are active in the store.
Supplier filter added to the product filter dialog on both the Product List and Sale pages.
External ID is now shown in the product info dialog.
Manufacturer SKU is now shown in the product info dialog.
Order numbers are now visible in the Purchase Request list.
Customer names are now displayed in the Purchase Request list.
Seller names are shown in the settled order view (press and hold the face icon to see them).
Delivery info and serial number details are now displayed on order lines when viewing order details.
The order detail view now opens the same dialog regardless of order state (OPEN, PARKED, COMPLETE, CANCELED).
Available actions still depend on settlement status.
Images now also display for settled orders.
New field: ManufacturerSku
in the XLSX product import.
Backoffice Support for searching printers and devices to streamline setup.
Backoffice Mapping of payment methods and delivery providers to external systems is now supported.
More efficient sort order for orders in the order handling dialog.
Customer display name to the purchase order request list responses.
When adding a product that is either out of stock in the default warehouse or not eligible for delivery, a warehouse selection list now appears during order item creation.
EHF invoicing is now allowed for B2B customers.
Order/invoice numbers are now shown in both subject and body of receipt emails.
Order lines will now remain reserved until delivered, and prices are recalculated if the customer on the order is changed.
Date format is now shown as dd.mm.yyyy
across list views. Sorry but not sorry USA (which uses mm.dd.yyyy
).
It's now possible to print invoices for EHF-enabled business customers.
General UI improvements throughout the client.
In the 'Create New Customer' dialog, last name now auto-fills more accurately when only one name is entered.
A negative total in the sale view now screams red – both the button and amount – so you really can’t miss it.
In sale keyboard mode, the customer section now shows the order’s address info rather than contact details.
Images in the order preview dialog are now clickable for full-size view.
The receivement view now only shows data for the store the device is onboarded to by default. Use filters to view other stores.
SMS button is now disabled if the extension is not enabled.
Backoffice Account users can now edit tenant users when there's only one tenant.
Backoffice Product groups now correctly inherit parent scope settings; products receive appropriate sale/standard scope.
Backoffice Edit Device view now refreshes properly with a new link code.
Fixed focus issues in the order receipt copy dialog.
Monthly Sales Report now filters by settle state COMPLETE
.
Accounting posting list now correctly summarizes credit/debit for customer receivables and includes minor template tweaks.
Return notes are now included in order receipt responses.
Purchase Order PDFs now display the correct CreatedDate
.
Fixed a nil dereference when working with assets (in plain English: we stopped the system from tripping over invisible things. Assets now show up before we try to high-five them).
Stock adjustments now allow quantity changes for products that require a serial number only upon sale.
Fixed a case where an order item could appear as not fully delivered if a credit/return was made.
The product stock adjustment field now accepts more than three digits.
Support for sending SMS messages to customers directly from the Customer list page
List view of all sent messages accessible via "Reports"
Display stock information for package products in product search
The available quantity is determined by the component with the lowest stock level, as all components are required to fulfill the package, e.g. for a package with components A, B, and C with stock levels of 10, 5, and 2, the package will show 2 as available quantity
Its now possible to print, download, or send order receipt after completing a pre-payment
"Reserve from purchase order" column added in keyboard mode sale
Support for Reitan Britannia gift card
New action in order handling list to preview an order
Users can now add or remove an order handling on an open order
EHF-invoice checkbox added to customer create/edit dialog
Improved warehouse selection in the order delivery dialog during sale
Week number now shown in the time section on the app bar
Print button added in the order preview dialog
Tapping the time section in the app bar now opens an on-screen calendar
External ID from a purchase order is now displayed in both the list and open dialog - that is, if the purchase order has one (normally it has if the purchase orders are automatically created from another system like an ERP or OMS system)
Customer info dialog now allows viewing, adding, and deleting customer groups
Menu layout updated in touch mode for reserving items from a purchase order or selecting a warehouse for delivery/reservation
The current RMA reason is now pre-filled when changing the reason on an RMA order
Removed the (non-functional) delete button for order items in deliveries under Order Handling
The purchase order dialog now closes automatically when marked as "Sent to supplier"
Orders are now automatically parked after completing a pre-payment
When reserving an order item from a purchase order and no customer is added, the user is now prompted to add a customer
Display quantity in stock for each item based on the selected warehouse when delivering out an order item
Could not select a supplier when creating a purchase order from customer reservations if products had no assigned supplier – now all suppliers are selectable in such cases
Manual sending of invoices was always disabled when the tenant had the EHF extension, even if the store didn’t – this is now correctly handled
Opening the settled order dialog failed for orders from other stores if the user lacked access – now fixed
When adding a product to a purchase order, the purchase price input sometimes defaulted to zero despite a valid agreed purchase price being set – this is now resolved
Setting stock level of a product to zero (0) was not allowed – it now works as expected
Added a warehouse filter to the stock list for stores, making it easier to view stock per location
The Omnium extension now supports a “Customer Marked Groups” parameter, allowing automatic assignment of customers to specific groups during creation
Added a manufacturerSku
field to products to store manufacturer-specific product identifiers
It’s now possible to add images to service orders – helpful for knowing what is the issue
All createApi
methods in internal/services have been renamed to NewApiV2
The API PUT /tenants/{tenantUid}/stores/{storeUid}/purchase-orders/{purchaseOrderUid}
now supports items with received quantities
Omnium integration now sets the shipment on all order items
Deleting a delivery will also remove any connected freight line from the order
Omnium integration: added mapping for handling Click & Collect orders
Stock changes are now synced to Omnium when setting or moving stock via API
ExternalId
is now included when searching for purchase orders using the query field
The AdjustStock interface now sends stock updates to Omnium, if the Omnium extension is active
Added support for handling special statuses for Omnium Click & Collect orders
The response from GET /tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/items/{orderItemUid}/addons
now includes new fields
Order search no longer includes cancelled (CANCELED) orders by default – less clutter, more clarity
Fixed product group accounting to correctly handle parent-child relationships and apply the right VAT codes
Corrected list stock with locations which had some faulty warehouse objects inside the response
Removed V1 APIs
Direct SKU lookup in product search is working again – welcome back, old friend
Logo on ESCPOS printing is back
Verifone integration now supports additional display messages
Store details are now included in Dintero Session requests
Nets callback has improved Sentry logging with more detailed insights
New endpoint: POST /tenants/{{tenantUid}}/devices/search
for device search
Implemented device search functionality for easily finding devices and printers in stores with hundres or even thousands of devices
New API endpoints for handling receipts:
POST /tenants/{tenantUid}/stores/{storeUid}/receipts
DELETE /tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}
POST /tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/settlements
GET /tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/settlements
DELETE /tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/settlements/{settlementUid}
GET /tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/settlements/{settlementUid}
Freight is now shown on Purchase PDFs
Purchase UID is included when sending notifications to recipients
PURCHASE
is now listed under allowedActions
on the order line
Implemented omnium_delivery_service.ProcessGoodsReception
for updating Omnium deliveries after goods are received
Campaign name now appears on receipt item lines
UpdateCreateProduct
now supports TextProperties
, OptionProperties
, and media
externalId
is now included in direct SKU lookup for product search
Notification search endpoint has a new query field, allowing searches in both messages and recipients
Dintero Session now sets the configuration channel to in_store
The Get order by ordernumber endpoint has been updated to use OrderUid
instead
Stores can now support multiple gift card brands
Sales order items with ReservationType: REQUESTPURCHASEORDER
are no longer allowed if the product is blocked for purchase
warehouseUid is now removed when reservation type is PURCHASEORDER
or REQUESTPURCHASEORDER
Verifone: corrected context used by CreateOrderSettlementTransactionLog
during startVerifoneProcessing
Receipt generation (print, email, PDF) no longer requires a connected till
Prepayment lines are now correctly included on receipts
Order PDF now shows both prepayment and due amounts
Product search with stock info now displays available quantity for package products
Cover image is now shown for delivery order items
Settlements no longer fail if the warehouse is nil
Deprecated V1 APIs have been removed, and dependencies are being phased out for: Brand, Category, Country, Customer, Device, Extensions, Flowbox, Flowcore, Handling, Http_transport_config, Imports_convert, Import_file, Import_layout, Import_template, Number_serie, Orders, and Payment_method
Zebra DS2278 Bluetooth Barcode Scanner iPadOS Setup
Step 1: Enable iOS Enhanced Features
Step 2: Go to settings --> Bluetooth on the iPad
Step 3: Enable Bluetooth for iOS
Step 4: Pair scanner to iPad
Step 5: (optional) Ad enter key after scan
Integrasjonen mellom Flow Retail og PowerOffice er en regnskapsintegrasjon.
Integrasjonen sørger for å sende alle regnskapsrelaterte data fra Flow Retail POS til PowerOffice, inklusive fakturaer, med det formål at jobben for regnskapsfører skal være så enkel som mulig, og i praksis kun bestå i å verifisere at dataene er korrekte (controller-oppgave) samt alt som har med bokføring i regnskapssystemet å gjøre.
Videre oppfølging av fakturasalg mtp. purring, inkassovarsel, osv., samt registrering av innbetalinger, er ikke del av integrasjonen, og gjøres manuelt av regnskapsfører dersom dette er behov for.
All omsetning fra butikken blir sendt til PowerOffice, inklusive moms-spesifikasjoner. I tillegg blir fakturasalg sendt inn, sammen med kunden (opprettes dersom ikke finnes), og der beløpet legges på reskontro for kunden som utestående.
Nedenfor kan du se noen av innstillingene som er tilgjengelig:
Integrasjonen sender inn data til PowerOffice en gang i timen, hele døgnet.
Kontakt Flow Retail for å få aktivert og satt opp integrasjonen. Du eller din regnskapsfører legger inn relevante regnskapskontonumre på den aktuelle butikken i Flow Retail.
Flow Retail doesn't serve as an accounting system. Retailers using Flow Retail will typically require an additional accounting system or an ERP system with accounting features.
Be sure to involve your accountant and to get their input on this.
In practice you can use whichever accounting system you'd like.
The reason for this is that Flow Retail offers a wide range of reports required to manually handle the accounting.
With that said, most retailers would want a more seamless integration between the POS and the accounting, and so we also offer a set of integrations, as you can find in a list below.
Which option should you choose? Below is a short explanation of the two options; Manual and Integrated.
Manual
No additional licensing costs
Includes all the essential reports (PDF/XLS) needed for manual accounting
Start using Flow Retail right away — no waiting time for planning or setting up an integration
Low cost doesn't always mean better value — manually managing accounting can quickly become expensive, especially as the complexity of the store increases in terms of payment processing and transaction volume
Manual work typically carries a higher risk of errors
Integrated
Saves time by automating daily reports and journal entries
Reduces manual errors and improves data accuracy
Makes sure all data are up-to-date on a daily basis
Involves additional license costs
Setup usually takes more time due to planning and coordination
If you have a limited budget, and a fairly easy setup with only one store, then simply using the available accounting-related reports in Flow Retail would be good enough.
You should also go with the manual variant if you need to get started immediately, as setting up an integrated solution typically involves a few weeks of setup and testing together with the accountant.
If you either already use one of the supported accounting systems for integration, then we'd strongly using that, even though it involves up to a few weeks until it is up running.
Note that all accounting systems are different, and so the set of features included in the integrations can differ heavily between each system. We do not guarantee support for handling all functionality across the systems, although we strive to do our best to support as many of the relevant functions as possible.
Tripletex
Daily or Monthly sales, with mapped accounting numbers, etc.
Invoices from Flow Retail to Tripletex
No automatic payment update back from Tripletex
Flow Retail
PowerOffice
Daily or Monthly sales, with mapped accounting numbers, etc.
Invoices from Flow Retail to PowerOffice
No automatic payment update back from PowerOffice
Flow Retail
Visma.net
File export, which can be manually imported into Visma.net
Flow Retail
Visma Business
File export, which can be manually imported into Visma.net
Flow Retail
Together with the integration specialists at Sharespine we might offer support for additional integrations towards other accounting systems.
We do not provide direct integration with ERP systems, mainly due to the varied configurations each client may have.
Customizing our solution for every unique ERP setup would consume significant resources, detracting from our core focus: developing and delivering the premier POS platform, alongside the best possible APIs for anyone to integrate towards.
We provide comprehensive technical support for anyone wanting to integrate any system with Flow Retail.
Additionally, we offer clear guidelines and recommendations for connecting Flow Retail with any ERP system.
Contact our retail specialists for more details.
Flow Retail runs 100% online, in the cloud, always available wherever you have internet access, and in most scenarios you will not need to configure anything special to get access.
Some networks has outbound restrictions, and in this article you will find details on what needs to be opened outbound to be able to use Flow Retail.
To be able to use the Flow Retail your network needs to be set up to access certain domains and IP addresses. If your firewall is blocking outgoing traffic you need to open for these IP addresses and domains.
This is a list of all IP addresses where webhook notifications may come from:
To use Nets Connect@Cloud, the firewall needs to allow traffic to these IP addresses:
Didn't find your accounting system in the list? Check out our official to see if you find it there.
We have clients using a wide variety of ERP systems with accounting capabilities, like and (BC).
Follow the
api.flowretail.com
185.49.4.60
443
https
mq.flowretail.com
185.49.5.210
5671
amqps
backoffice.flowretail.com
185.49.4.65
443
https
-
185.49.4.78
8140
https/puppet
3.33.230.243
6001 and 443
15.197.206.182
6001 and 443
We started publishing official release details in March 2025, but 2024 consisted of literally hundreds of new features of any size, from Service system to RMA handling to a fully-featured Campaign system.
We started publishing official release details in March 2025, but 2021 (second half of the year) consisted mainly of planning and preparations to make Flow Retail later become a world-class POS platform for any retailer.
We started publishing official release details in March 2025, but 2024 consisted of mainly core components to the platform, like Products, Sales, payment solutions, etc.
AccountingConfigs
Asset
Caching
Campaign
Config
AccountingReports
Flow Retail provides the capability to register webhooks that trigger on specific events.
Webhooks are dispatched instantly and retried up to 10 times upon failure.
If the server receiving the webhook fails to respond within 10 seconds, a timeout occurs, and the job is retried.
If the server responds with an HTTP status code below 300, the job is marked as OK and removed from the queue. For status codes from 400 to 499, the job is marked as an error but still removed from the queue and not retried.
All other status codes prompt the webhook to retry the job up to 10 times.
This is triggered when an order is fully paid.
Payload:
This is triggered when an order is fully delivered. This means that all the orderlines on the order is delivered.
Payload:
This is triggered when an order handling state is changed
Payload:
This will be triggered when a new customer is created.
Payload:
This will be triggered when a customer is updated.
Payload:
This is triggered when a new product is created
Payload:
This is triggered when the basic data on a product is changed or updated. It will not be triggered if a stock or a price in a pricelist is changed for a product.
Payload:
This is triggered when a media for a product is added, updated or deleted.
Payload:
This is triggered after a till has been opened.
Payload:
This is triggered after a till is closed.
Payload:
This is triggered after a new price is added to a pricelist.
Payload:
This is triggered when a price is updated on a pricelist
Payload:
This is triggered when the stock changes for a product.
Payload:
This is triggered when a pruchase order is fully received
Payload:
This is triggered when a product media is changed
Payload:
This is triggered when a order receipt is settled
Payload:
Categories
Compensation
Lists all accounting configs entries belonging to the supplied store
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a Store.
^[A-Za-z0-9-_]+
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
Response containing a list of accounting configs entries
Get accounting configs entry for the supplied accountingConfigsUid
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a Store.
^[A-Za-z0-9-_]+
Reference to a Accounting Configs entry.
^[A-Za-z0-9-_]+
Response body containing a accounting config entry
Deletes the accounting configs entry belonging the supplied accountingConfigsUid
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a Store.
^[A-Za-z0-9-_]+
Reference to a Accounting Configs entry.
^[A-Za-z0-9-_]+
No content
List assets.
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
Example response
Get asset details. The asset itself must be loaded from the host.
Private assets are signed URLs with expiry time. They are not included in the regular
asset response but you can get them from the endpoint Get asset private URL
.
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to an asset
Example response
Private asset URLs have signature and expiry parameters so they cannot be accessed randomly.
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to an asset
See Other
No content
Retrieve timestamps for entities to be used in caching. The entities refer to database tables, and the timestamp for each entity is updated whenever a record within the table is created, updated, or deleted.
Reference to a tenant.
^[A-Za-z0-9-_]+
Example response
Get list of campaigns
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
Reference to a name
Reference to a display name
Reference to a campaign code
Reference to a valid from
Reference to a valid to
ENUM | Description |
---|---|
CAMPAIGN | Normal campaign with rules set |
PRICELIST | A campaign that includes a pricelist. No rules applies |
ENUM | Description |
---|---|
CHEAPEST_PRODUCT | Cheapest product will be discounted |
QUALIFIED_PRODUCT | All qualified products will be discounted |
ORDER_DISCOUNT | An order discount will be added to the order |
Example response
List products for a campaign
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a campaign.
^[A-Za-z0-9-_]+
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
ENUM | Description |
---|---|
INCLUDE | Query for included products in campaign |
EXCLUDE | Query for excluded products in campaign |
Example response
List all countries.
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
Example response
Get a list of current VAT codes.
Filter by country
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
Example response
Get a list of current VAT codes for a specific country code.
countryCode
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
Example response
List all root categories
Required permission: TENANT.ACCESS
Reference to a tenant.
^[A-Za-z0-9-_]+
Include Product list
Filter on category parent uid
^[A-Za-z0-9-_]+
External reference to a category.
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
Example response
Get category details
If storeUid is supplied prices and stock from the store will be returned, if no storeUid is supplied the quantityStock will always be 0 and the price will be the reccommended retail price
Required permission: TENANT.ACCESS
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a Category.
^[A-Za-z0-9-_]+
Reference to a store uid
^[A-Za-z0-9-_]+
Example response
This will delete a category and all its sub-categories.
Required permission: TENANT.BACKOFFICE
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a Category.
^[A-Za-z0-9-_]+
No Content
No content
List compensations
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
Example response
List Compensation reasons
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a compensation.
^[A-Za-z0-9-_]+
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
Example response
Get Compensation reason details
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a compensation.
^[A-Za-z0-9-_]+
Reference to a compensation reason.
^[A-Za-z0-9-_]+
Example response
Delete a Compensation reason
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a compensation.
^[A-Za-z0-9-_]+
Reference to a compensation reason.
^[A-Za-z0-9-_]+
No Content
No content
Creates a new accounting config entry for the supplied store
For configType ACCOUNTNUMBER
is the following keys valid:
CUSTOMER
Account for customer
CUSTOMERDUMMY
Dummy customer account
ERROR
Error account, if no valid account is found
PARTYLYPAIDINVOICE
Account for partyly paid invoices
VATCODE
Account for a specific tax type
For configType TREATCODE
is the following keys valid:
CREDITLEDGER
GENERALLEDGER
LEDGE
For configType VAT_TYPE_ID
is the following keys valid:
BALANCE
VATCODE
Should have a vatCodeUid filled together with the TypeID for the specific VAT code
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a Store.
^[A-Za-z0-9-_]+
Accounting configs model
vatCodeUid should always be filled when key
is of type VATCODE
^[A-Za-z0-9-_]+
^[A-Za-z0-9-_]+
Updates the accounting configs entry belonging to the supplied accountingConfigsUid
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a Store.
^[A-Za-z0-9-_]+
Reference to a Accounting Configs entry.
^[A-Za-z0-9-_]+
Response body containing a accounting config entry
Add a account number to a specific product group. This account number will be used for all products with the specified vatcode in the specific product group and all children
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a Store.
^[A-Za-z0-9-_]+
Create a new account mapping to a product group
^[A-Za-z0-9-_]+
accountNumber
^[A-Za-z0-9-_]+
^[A-Za-z0-9-_]+
Response body containing a accounting config entry
This endpoint lets you create the asset record.
To upload a file, use the Upload asset file
endpoint
where the assetUid
you get here is part of the path.
If you want to point to an asset that you already host, just add the correct URL of the asset and you are good to go.
Reference to a tenant.
^[A-Za-z0-9-_]+
false
for self-hosted asset
^[A-Za-z0-9-_]*
Example response
Upload file for the asset which "container" record was created on the Add asset
endpoint.
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to an asset
Example response
Update asset details.
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to an asset
for self-hosted asset
Example response
Search for campaigns
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
ENUM | Description |
---|---|
ASC | Sort in ascending order |
DESC | Sort in descending order |
ENUM | Description |
---|---|
CHEAPEST_PRODUCT | Cheapest product will be discounted |
QUALIFIED_PRODUCT | All qualified products will be discounted |
ORDER_DISCOUNT | An order discount will be added to the order |
ENUM | Description |
---|---|
CAMPAIGN | Normal campaign with rules set |
PRICELIST | A campaign that includes a pricelist. No rules applies |
Example response
Create new campaign
Reference to a tenant.
^[A-Za-z0-9-_]+
ENUM | Description |
---|---|
CAMPAIGN | Normal campaign with rules set |
PRICELIST | A campaign that includes a pricelist. No rules applies |
ENUM | Description |
---|---|
CHEAPEST_PRODUCT | Cheapest product will be discounted |
QUALIFIED_PRODUCT | All qualified products will be discounted |
ORDER_DISCOUNT | An order discount will be added to the order |
A quantity that qualifies for the campaign to apply.
If both quantity and amount are set, both criteria must be met.
An amount that qualifies for the campaign to apply.
If both quantity and amount are set, both criteria must be met.
Discount amount given when the criteria are met.
Discount percent given when the criteria are met.
The max number of times the campaign can be applied to the order
^[A-Za-z0-9-_]+
Priority for the campaign if more than one campaign applies. Lower number = higher priority.
^[A-Za-z0-9-_]+
If campaignCode is set, it means that this campaign has to be manually actived on an order via PUT on the order
Flag to indicate that this campaign should not be combined with other campaigns. If any orderlines matches this campaign and priority is set to 1, no other campaigns will be considered.
Example response
Update an existing campaign
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a campaign.
^[A-Za-z0-9-_]+
This request updates an existing campaign.
IMPORTANT! The request must include all storeUids the campaign is valid for.
ENUM | Description |
---|---|
NEW | Campaign is in a modeling state. Can be modified |
ACTIVE | Campaign is active, and is considered when making sales operations. Campaign can not be modified |
CLOSED | Campaign is closed. |
^[A-Za-z0-9-_]*
ENUM | Description |
---|---|
CHEAPEST_PRODUCT | Cheapest product will be discounted |
QUALIFIED_PRODUCT | All qualified products will be discounted |
ORDER_DISCOUNT | An order discount will be added to the order |
Example response
Set selections on a campaign
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a campaign.
^[A-Za-z0-9-_]+
This request has 3 sections:
create: A selection to create in the campaign delete: A selection to delete from campaign.
Example response
Get a X/Z report for a specific date for the selected till. Returns a ZReport json object
Reference to a Store.
^[A-Za-z0-9-_]+
Reference to a till.
^[A-Za-z0-9-_]+
Reference to a tenant.
^[A-Za-z0-9-_]+
Get a X/Z report for a specific date for the selected till.
Reference to a Store.
^[A-Za-z0-9-_]+
Reference to a till.
^[A-Za-z0-9-_]+
Reference to a tenant.
^[A-Za-z0-9-_]+
Cash control per till and paymentmethod
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a Store.
^[A-Za-z0-9-_]+
Create a new category.
Required permission: TENANT.BACKOFFICE
Reference to a tenant.
^[A-Za-z0-9-_]+
^[A-Za-z0-9-_]*
^[A-Za-z0-9-_]+
Example response
Update a category
Required permission: TENANT.BACKOFFICE
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a Category.
^[A-Za-z0-9-_]+
^[A-Za-z0-9-_]*
Example response
Add new Compensation
Reference to a tenant.
^[A-Za-z0-9-_]+
^[A-Za-z0-9-_]+
Example response
Update compensation details
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a compensation.
^[A-Za-z0-9-_]+
When an order is marked with a compensation with this field set to true, the order must have order lines referring to a settled sale
Example response
Add a compensation reason
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a compensation.
^[A-Za-z0-9-_]+
productUid refers to the product that is added to an order when this compensation reason is added to the order. limit is the amount of total compensations on an order. Returns a warning if limit is exceeded.
^[A-Za-z0-9-_]*
Example response
Update compensation reason details
Reference to a tenant.
^[A-Za-z0-9-_]+
Reference to a compensation.
^[A-Za-z0-9-_]+
Reference to a compensation reason.
^[A-Za-z0-9-_]+
productUid refers to the product that is added to an order when this compensation reason is added to the order. limit is the amount of total compensations on an order. Returns a warning if limit is exceeded.
^[A-Za-z0-9-_]*
Example response
This is an advanced feature in Flow Retail, intended primarily for experienced retailers or for use after a thorough walkthrough with one of our specialists. Incorrect use may lead to serious issues, which is why proper understanding and setup is strongly recommended.
This is an advanced feature in Flow Retail, intended primarily for experienced retailers or for use after a thorough walkthrough with one of our specialists. Incorrect use may lead to serious issues, which is why proper understanding and setup is strongly recommended.