Given the Christmas holiday pause, this update covers both December 2023 and January 2024 🚀
In a hurry? Read our tl;dr or summary below
In December 2023 and January 2024 we worked hard implementing and also launching our fully-featured Shopware e-commerce integration with Flow Retail POS! We also implemented full internal purchasing between stores. In addition to that, we added time slots, new product relations on product groups, freight cost on deliveries, several new APIs and reports and so much more. Scroll through the list below to get the full picture!
General info on beta availability
We release new features and improvements every week. To keep this speed, we first deploy new features to our beta environment for selected clients, and thus some features or improvements might not be instantly available to all.
New features
- Flow Retail is now fully integrated with Shopware e-commerce! Flow Retail POS is now fully integrated with the amazing e-commerce platform Shopware! (which we also deliver to Norwegian clients, just saying). All product data, including variants and properties, are automatically synchronized to Flow Retail. Same goes with inventory, both for any eventual central warehouse stock and for all the various stores defined in Flow Retail. Naturally also the stores themselves are being synced, including opening hours and location (for the «Find store» function). And, of course all orders are being sent from Shopware over to Flow Retail and the relevant store, including easy mapping of both shipping/delivery methods to Flow Retail ‘deliveries’ and payment methods to Flow Retail ‘settlement methods’. One can even define which Flow Retail ‘handling’ (work process) each order should optionally get when being sent into Flow Retail. And to wrap it all together, any fulfillment of the order in either Flow Retail (or via an ERP system which communicates with Flow Retail) will be updated back to Shopware to set the orders to ‘Complete’ and to eventually trigger the capture of the payment.
- Internal purchase orders! Quickly create internal purchase orders to easily move products between various stores and warehouses. This functionality can also be used for moving stock between a central warehouse and the various stores. We know this one has been a long-waiting feature, and we’re super-happy to share that this first version of it is already multiple times faster and more efficient than this feature in our legacy POS, ElGuide Retail.
- Nets card payment support! We now fully support payments with Nets as the PSP (Payment Service Provider). The card terminals needs to support Nets Cloud, which most of them do. The feature supports both payments (doh), refund and also cancelling an ongoing sale.
- Upload product images! The product images functionality is now complete, and you can now upload an unlimited number of product images in either JPG, WEBP or PNG (not recommended) format to each product or product variant, including defining which image should be the main/cover image.
- Customer parameters / fields to payment methods! With the new parameters for tenant payment methods, one can now add an unlimited number of custom fields (or parameters as we call them) to any of the external payment methods. This can be «Reference», «PO number» or some other required number (for example a subscription reference) that you want to be added as part of the payment. The parameters function supports various extra options, like Required/Not Required, various validations including regular expressions and much more.
- Defining related products on Product groups. One can now add related products to any Product group! This is actually a big one. Lets say you want to suggest a few very popular accessories to all mobile phones in the «Apple iPhone» product group. Simply add the accessories as related accessories to the product group, and they will be suggested for all iPhones in that product group, in addition to any eventual related accessories added directly onto any of the products. The related products on product groups feature supports all the various relations; insurance products, accessories, spare parts and service products.
- Timeslots! It is now possible to create and maintain timeslots per delivery method. So when you, say, want to add a delivery to an order with for example your own drivers as the delivery method, then you can now choose from a pre-defined list of timeslots, like «Evening 17-21». Each timeslot name is linked to weekdays (Mon-Sun). The timeslots also supports excluded days, like Christmas, New Year, etc.
- Bring your own UID to more entities. We added support for using your own UIDs on more data types, including product, product groups, categories, brand and suppliers, which means less need for mapping of data if the ERP is your master system for product data.
- New accounting configs. To better support all sorts of accounting systems, we have added various accounting config settings like accounting numbers on VAT and specific customers, all to make the accountants work easier than ever.
- More languages added. We now support Norwegian, Swedish, Danish, Finnish, English and German. Let us know if you miss a language!
- User-specific language. Users can now choose their own language from all available languages. By default new users will get the language set on the tenant they are invited to.
- TWO payments now supports refund and cancel. It is now possible to both refund a sale that is settled with TWO, and also to cancel an ongoing TWO invoice payment.
- Monthly stock report. A full report of all stock including warehouse value is now being automatically created on the first day after every month (for the past month) so that one can go back in time and see the value and more of the warehouse.
- Maintain delivery providers and methods. With the new Delivery functionality, one can now easily administer (add, edit, delete) all deliver providers and delivery methods.
- Delivery / freight product. As part of the delivery functionality, one can now also define a specific «freight product» to any delivery method, which can further be automatically added to the order when the delivery method is selected.
- Locations on all products for all warehouses. Flow Retail POS now also supports adding a location label to any product, on any warehouse. Never loose track of your products anymore (unless you didn’t place them on the location you defined).
- Locking orders when being settled. We have implemented functionality to make sure a user cannot open and start adding more products to an order which is already in the process of being settled (paid for).
- Postal code validation. We have now implemented validation of postal code formats for all European countries, plus USA.
- Get all stock records for a list of warehouses after last modified timestamp. We’ve implemented a new API, mainly to be used for integrations between Flow Retail POS and other systems.
- Better error messages. As part of the new translations for many countries, we have also added all the error messages to this system, so you will now both get a better error message (we have also internal rules that says all error messages should be informative and tell the user what to do to get past the error) in addition to having the errors presented in your chosen language.
- Parked orders and offers are now part of the reserved quantity. Yep, nothing more to say there. Just make sure parked orders are kept updated, meaning they should be deleted as soon as one is certain the customer will not come back and actually buy it.
- Opening hours on store. One can now administer opening hours per weekday (Mon-Sun) on a per-store-basis. The feature also includes an optional «note»-field, which could be a free-text info on for example opening hours during Easter. The opening hours are already being synced with Shopware, and can of course be fetched to any eCommerce platform.
- Service number on services. We have added a new number series for services, and implemented so all services are assigned a unique service number.
- New API endpoint for warehouse report. We have added a new endpoint for creating a warehouse store details report.
Improvements
- New delivery on order endpoint. On the Delivery function, it is now possible to delete it after it has been added to an order. In case a customer regrets having it delivered home, and instead wanna pick it up in the store.
- Improved SAF-T report now meets all requirements. We have optimized the SAF-T (Standard Audit File for Tax) report to include lots of more relevant information to further meet any requirements from accountants and auditors using the file in their auditing.
- Improved performance on turnover reports. If the stores have tons of sales, generating the turnover report could take several tens of seconds.
- More data on the receipts. If there’s selected a contact, we now display that name on the receipts, both on sales receipts and invoice vouchers. At the same time we did some general improvements to the receipt layout, making it look as stunning as a receipt can possibly look.
- Better stock APIs. Added various warehouse-related data to the stock API responses, like warehouse and store details, and not least max/min. The list product stock API now returns a list of all warehouses instead of an empty list for new products with no stock movements yet.
- Better variant API requests and responses. As part of making the best and most flexible integration with any e-commerce platform, like Shopware, Magento, Optimizely and Shopify, we have improved lots of things related to variant products, including property (e.g. «Color», «Size», etc.). Integrating Flow Retail with any e-commerce site should now be a walk in the park.
- Better logic on adding related products. Products already in the order will not be re-suggested when displaying accessories, insurance, spareparts or even variant products.
- Setting on terminal to always suggest delivery. When adding a product to the order, it is now possible to always pop up delivery details, depending on the new setting on each terminal.
- Various improvements to variant handling. When adding a new variant to a configurable product, we now only show the products with the relevant properties (e.g «Size») defined as property values. Also, we now allow changing variant properties on a configurable product all the way up to variant products are added (then its locked).
- Updated Flutter on all clients for improved speed. The new update on the Google Flutter framework, which we use to build all our clients, has significant performance improvements out of the box.
- Better dropdowns. All dropdowns are now better. How can that be – its just a dropdown, you say? Well, you can now search efficiently in every dropdown list, so scrolling when having many values is no more needed. Its all in the details.
- Better scrollbars. While we are at UX and the like. We now enforce displaying the scrollbar, even though devices like the ones from Apple for some weird reason has it so that it doesn’t display the scrollbar until scrolling.
- Required to set a pre-defined status on service types. In Service, it is now required to set a pre-defined status on all service types.
- Stocktaking speed improvements. Generating stocktaking jobs with lots of products is now super-fast (from just fast earlier). We also added pagination on the stocktaking products tab, which is kinda related to the speed improvements.
- Improved stock taking dialogues. We added a confirm dialog when starting a stock taking, to make sure one is absolutely ready to start the counting job. We also added more details on the confirm dialogue after having completed a stock taking.
- Stock details on product info. We now display all stock details in Backoffice on a per-product-basis so that its very quick and easy to see what is in stock across all warehouses.
- Stock report with more details. The Excel XLS stock report now also includes the total cost per product, alongside a summary on the last row. We also adjusted the names and header to the user’s chosen language.
- Go upgraded to 1.21, including all libs. This one no’one for sure cares about, but we add it nevertheless. The Go / Golang programming language which our fantastic developers build the Flow Retail core platform with, needs to always stay up to date, alongside all relevant libs, or libraries if you like.
- Better order search. Various improvements to order search, including a few more technical improvements related to the APIs.
- Possible to change number series. For the various number series it is now possible to increase the «max» number, in case the current number series should start to fill up.
- Better rounding. Various improvements to how we handle rounding, including a few cases related to cashback.
- Accounting report shows cashback. Speaking of cashback, we now accumulate cashbacks into the cash settlements.
- Giftcard capture when sale is fully settled. We now wait until we capture the gift card until the sale has been fully settled. This includes store credits, which uses the same engine as the giftcard functionality.
- Optimized layout for Accounting list («Posteringsliste»). We constantly update the reports to make them easier to read and use.
- Improved settlement handling. When cancelling a settlement with lets say card payment, we now set the state of the settlement to Terminated.
- Removing customer when contact is present. Allow to remove a customer from an order even if there is a contact present.
- Set a default tenant on user. Flow Retail is a multi-tenant platform, and a user can get access to multiple tenants. We have added a new option to choose a default tenant which the user by default will be logged into.
- Setting a minimum stock without maximum. We optimized the min/max option on warehouse products to allow for only setting minimum stock, as its not always wanted to set an upper limit.
- Default warehouse on store. It is now required to have a default warehouse defined on each store.
- Improved cash control reports page. We’ve cleaned up the layout and in general made it easier to use.
- Integration tokens not for humans. Only ‘Intergration’ «user» types will get an API access token now. No need for humans to communicate over API. That’s more of a computer to computer thing.
- Improved date picker. The UI of the date picker was a bit difficult to interpret in terms of which dates was available for selection.
Fixes
- There were some glitches in what stock data to show based upon the store permission. We now return stock info for all warehouses a store has view access to.
- All product associations are now available for a product.
- Exchange note didn’t show the correct valid days in some occasions, and so we fixed that.
- Refund with Vipps mobile payments didn’t work as expected in some scenarios, and so we fixed that as well
- Fixed a glitch related to updating max/min or location on a product.
- Sending an email invitation when being added to a new tenant didn’t work on some roles. Now it does.
- Various minor fixes and adjustments on the TWO invoice handling.
- After adding a property, like «Size», to a product, the new property wasn’t shown even though it was indeed added. At the same time we fixed some variant listing text, and also that variant data was’t removed correctly when saving the configurable product.
- Creating a new supplier failed in some scenarios. Bad bad. Not it works in assumably all possible scenarios.
- The Sales per store report didn’t show all sales. Reason: The pagination was set to 1000. So, when there were more than 1000 in the results, well, then those sales never showed up. Now its dynamically adjusted.
- The cash report in Backoffice didn’t show the correct orders in some scenarios, and so we made sure it did (show correct orders).
- Stock taking tab in Backoffice failed when more than 99 products in a stock taking. We definitely allow for counting more than 99 products at the time, and so we fixed this. As part of this, we also fixed a reload issue in Backoffice after having changed the status. And, we now keep the user on the stock taking page after having updated it, instead of sending them to the overview.
- We fixed a glitch in where one could create a receivement on a purchase order with no products on it, which doesn’t make too much of sense to be allowed to.
- If deleting a product for some reason triggered an error, then the error message simply didn’t show up! Now, how frustrating can that be! Anyway, now we display the error message gracefully.
- Removing the price list from a store didn’t work, and so we simply made it work.
- Cash control page didn’t show a warning when a (required) store wasn’t set.
- In some rare occasions, adding a product to a purchase order failed if the product had a default price set.
- In some occasions, it was not possible to change the date in the Sales report page.
- Ahem.. In one of the latest updates we introduced a bug which made it impossible to save till settings. One step forward and two backwards, you say?
In addition to that we fixed dozens of minor issues here and there.
Next up
Check out our Roadmap to see a glimpse of whats coming next!