New on Shopfront: August 2020

Welcome to what’s new on Shopfront for August 2020! This month is full of information display adjustments as well as some major performance improvements!

Performance and Memory Improvements

Over the course of this month we’ve had a focus on performance and memory related improvements and have made some significant gains.

First we looked at how our indexing works as we know that memory takes a large hit whenever that runs and it can run quite often (any modification to a product, customer, promotion or price list runs the reindexing process for the respective change). We keep an index to make searching fast and allows us to provide a dynamic search (such as searching from the middle of multiple different words).

To improve this we took a critical look at when we need to reindex our data and came up with a strategy to perform a “rolling” update which batches changes together.

After implementing the batched rolling update we then looked at which “browsing contexts” require the index and we’ve prevented a number of pages from performing a reindex until you’re back in a page which does require the index.

Both of these changes has lead to a large improvement in both memory usage and performance, but we’re not done yet.

Prior to this month our icons were loaded using a technology called SVG, this is a very common way to load icons and is great to do a number of transformations to the icons (such as masking and recolouring), however it comes at the cost of a small amount of memory per icon, when you have a small set of icons this memory usage is negligible, however Shopfront currently features over 350 icons so that memory usage stacked up. In order to combat this, we’ve moved our icons from SVG and instead made them into a “web font” which forces the icons to load like a normal font does. As soon as this was implemented we saw a huge reduction in memory usage.

Finally we looked at Shopfront as a whole, previously when you load Shopfront you load all of Shopfront, however you might just be in the register for the day so you don’t need the order modification or settings pages to be loaded in the background. Using a technique called “lazy loading” we have started moving a number of pages to load only when the page is visited. Now this is expected to come with a performance penalty of loading the page, however due to the way Shopfront was designed to work offline we precache all of the page data on your hard drive so you never see the page loading.

After finishing these performance and memory improvements we decided to measure them against some other popular applications and have found that our memory usage is now below Gmail, Jira, Zendesk and Facebook.

Minor Features

Whilst a major focus has been on overall Shopfront performance, we’ve made quite a few other minor adjustments, here are the key changes:

  • You can now optionally specify tags to show revenue of when closing the register (customise this in the Registers & Outlets settings page),
  • We’ve replaced the select dropdown component with a brand new lightweight version,
  • The price calculation is now quicker when product quantities are greater than 100,000 by swapping to an approximate method rather than an exact price calculation,
  • The product view page now shows the product’s status next to its name if it’s not active,
  • Duplicate product dialog for express & advanced stocktakes as well as the order edit screen now shows if an included product is inactive,
  • Sales history now defaults to the current Outlet you’re in if you’re a multi-store Vendor,
  • The roles & permissions page now shows how many users belong in each role,
  • A new permission to prevent users from clearing local data from within the POS was added,
  • Reduced maximum amount of products and customers to display in the sell screen search to 300 to improve memory usage and loading time,
  • The customer view page now shows the group it belongs to,
  • Inactive products have been removed from the promotions sale key,
  • More information has been added to the login news,
  • Order reference is now an available column for advanced reports,
  • The promotion view page now shows the Outlet(s) which the promotion is applied to,
  • Advanced stocktake now allows entry of “0” as a quantity,
  • When multiple of the same products are unconsolidated on the sell screen we now distribute the prices using the family price distribution rules,
  • The sync no longer paginates the parked sales and instead returns them all at once resulting in a large performance improvement on pages after the first,
  • Customer statements can now be run if you have the See Customers permission (previously you could only run them if you had the Modify Statements permission),
  • Transferees can now store contact details and automatically email transfers,
  • Vendor connections have gained the option to specify how the connection data should be received (either as an order / invoice or a transfer),
  • Details of a invoice return are now able to be modified,
  • [MYOB] The integration has been completely rewritten in TypeScript and now features better error recovery and a new validation system,
  • [Developer] Viewing application history is now significantly faster

Bug Fixes

  • Prevented multiple sell screens from being opened after removing a previous duplicate sell screen,
  • Stocktaked products report was previously showing the current date for products that have never been stocktaked instead of “Never”,
  • Fixed promotions endlessly reindexing resulting in a memory leak,
  • Lines on orders which contain a different case quantity between the Shopfront product file and the order now correctly adjust the quantity when changing case quantity to one,
  • Opening the browser when in global mode no longer forces register selection,
  • Prevented payment of a sale while a product is being added when both hard drive and CPU are at 100%,
  • Orders & Invoices now shows correct orders when navigated to when in global mode,
  • Gift cards can now be removed after they have been added to a parked sale,
  • Sales summary in product view now correctly shows all sales when in global mode,
  • Performing a customer payment with a large number of sales no longer results in the rate limiter being hit,
  • Logout is no longer forced after two hours from last login, instead it’s now two hours from last interaction with Shopfront

New on Shopfront: July 2020

Welcome to what’s new on Shopfront for July 2020! It’s been a while since we’ve published one of these (November 2017 was the last time one was posted 😖).

This month we had a huge release with more than three months worth of development including a rewrite of our front-end system from JavaScript into TypeScript.

So without further ado, here’s what has recently been released for all customers on Shopfront.

Major Features

In-page help articles

You may have noticed this when we first appeared back in May, but it’s now been added to a large amount of screens throughout the POS – we’ve now embedded some of our support articles directly in to the page through the use of a help icon in the top right-hand corner.

Whenever you’re on a page which has a linked help article, you’ll be able to find out more information without even leaving the page. Clicking on the help article displays some relevant articles that might be of assistance to you.

We’ve also started to add more in-page help with any item that might need further explanation. We’ve started with the general settings page but we’re going to be adding them to more pages in the coming months.

Transfers and sales to other Shopfront Vendors

If you are transferring or selling stock to another store which also has Shopfront, you’re now able to connect the two Vendors together to automatically send and receive the stock without having to perform any manual entry.

To get started, both sides need to create a new “Vendor Connection”, the sender needs to provide the receiver with their displayed “Sender Code” which will be entered into the receivers “Receiving Code”. From there you can simply either sell stock to the connected customer or transfer stock from the Orders & Invoices page. Stock will be automatically matched between the two stores and the receiver will just have to verify the data is correct before accepting the order.

For more information, check out our dedicated help article or get in touch with our support team.

Redeveloped Additional Information

Our additional information has been redeveloped and redesigned with several new features being added including default values for fields and new field types (such as drop down lists) as well as a facelift.

This information can be accessed via the API, printed on tickets or displayed in several parts of Shopfront.

In the coming months we’ll also be adding several new features to the additional information such as being able to filter reports by additional fields and being able to use additional fields to search for products on the sell screen.

Media Centre Improvements

Whilst there is no visible change to the media centre, behind the scenes it has been significantly improved. Deleting and renaming both files and folders is now considerably faster as is moving between folders.

Along with the internal changes, we’ve also create a new “mini” Media Centre which is now available to use when editing anything with the WYSIWYG (what you see is what you get) text editor, such as editing the description of products.

The mini Media Centre allows you to quickly insert images into the WYSIWYG without having to worry about the image’s URL.

Shop MyLocal Integration

We’ve now released our Shop MyLocal integration as a beta version. Shop MyLocal allows IBA stores to sell popular products online with the prices coming directly from Shopfront and when a sale occurs, the sale automatically appears in Shopfront, preventing the need for data entry.

To find out more information about Shop MyLocal or to get started with it, contact your Business Development Manager.

Minor Features

Along with our major features, we also have made numerous improvements to Shopfront, we couldn’t list them all, but here are some of our favourites:

  • Promotions can now be applied to multiple customer groups,
  • New supplier option “Freight is included on supplier invoice” for use when receiving stock from a supplier that requires you to use an external freight company,
  • Promotion calculation speed has now significantly improved when cross promotion count is turned off and a large amount of products exist in an active express promotion (one real world use case saw a reduction from 5.8 seconds to 0.2 seconds),
  • Numerous information enhancements (e.g. more places now show the product’s status if it’s not active),
  • Inventory at Date reports can now be exported as a PDF and CSV file, it can be printed and it can be searched,
  • Many components on receipts can now have customisable padding,
  • Product scanning in express stocktakes is now faster,
  • You can now manually set a product to update it without using the future price time setting (go to the Utility Menu > Future Prices),
  • Subject lines can now be predefined for customer statements,
  • Orders sent via email to suppliers can now be sent as a PDF or CSV attachment (you can set this per supplier in the supplier’s edit page),
  • Selling a product within a basket now shows that it was sold from a basket in the inventory log,
  • We’ve replaced our code editor with a more lightweight version and a nicer colour scheme,
  • We’ve also reduced the size of colour selector component and given it a facelift,
  • [Developer] New Embedded API options to allow developers to plug into more of Shopfront’s user interface,
  • [Developer] Embedded applications can now send messages between their embedded pages directly through the Embedded API,
  • [Developer] All supplier details can be provided when creating a supplier instead of having to create and then edit the supplier,
  • [Developer] Some POS resources (products, payment methods) can now be locked which prevents anyone from deleting the resource except for your integration,
  • [Developer] Through the Embedded API you can now modify the current sale in process

Bugs

Our release also comes with numerous bug fixes, some of which are:

  • Express stocktakes now show the inventory log history when a user that has been deleted previously changed the inventory,
  • Customer account payments that were made in the future compared to the current statement period no longer affect the current statement period,
  • Orders that have a decimal quantity for the received and sent quantities now save correctly instead of being rounded to the nearest whole number,
  • Orders now always force the products to be put into the next sync after they’ve been sent and received,
  • Fixed floating point calculation errors during promotion calculation when individual product quantities were above 150,
  • Promotion Calculation Manager now correctly updates the current time to expire promotions without leaving the sell screen,
  • Transfer history for products now shows transfers to transferees not just transfers to other Outlets
  • Refund reason now appears when sale total is equal to zero,
  • Push notifications are now more reliable,
  • Bulk deleting several hundred promotions at once now works as expected,
  • Promotions from banner groups now retain your changes instead of reverting when the promotions are updated,
  • [MYOB Integration] Sending invoices to suppliers that have names which contain special characters now works as expected,
  • [Linkly / PC-EFTPOS Integration] Prevented pressing cancel while terminal is performing a logon

Side Note

That’s it for this month, we’ll be aiming to continue to release these “What’s new on Shopfront” articles on a month-by-month basis towards the end of each month. We’re also going to be changing the way which deployments are handled in Shopfront by introducing release channels. To start with we’ll be releasing three different versions called Canary, Beta and Release. Most customers will remain on the Release version which is roughly equivalent with how we currently release our updates, however a subset of customers who want access to features faster will be moved onto Canary or Beta.

We’re planning on releasing a Canary update every week, a Beta update every fortnight and a normal Release every four to six weeks. We’ll start our new release process at some point about half-way through August. If you’d like to be involved in the Canary or Beta channel, send an email to our support team.

Shopfront Version Two Preview

It’s nearly here! Shopfront version two will be released to the first store on the 28th of October, 2019. It’s been a long time coming, but we promise it will be well worth the wait.

We started the redesign in January 2018, a year after the first version of Shopfront was released. With it comes a huge array of new features and changes that we can’t wait to show you.

Continue reading “Shopfront Version Two Preview”

New on Shopfront: October 2017

Welcome to the October 2017 edition of New on Shopfront, this month we’ve fixed a huge amount of bugs, changed the way that sale discounts work and added a couple of nifty features along the way

Table of Contents

  • Park Sales with Payments
  • Sale Discounts Rewritten
  • New Promotion Revision History
  • Create Return from Completed Order
  • Reorder Reports Can Now Include Transfers
  • Fixes

Continue reading “New on Shopfront: October 2017”

Postmortem of “Returning to CloudPOS” EFTPOS issue of October 26

On the 26th of October 2017, we experienced a widespread bug that resulted in PC-EFTPOS integrated EFTPOS not working upon the second transaction attempted per page load.

The incident was caused due to faulty code introduced to our production server while implementing a new feature. We believe this affected approximately one-quarter of our customers.

We apologies to all of our customers that were affected and this article explains why the issue occurred and what we are doing to prevent this from happening in the future.

Continue reading “Postmortem of “Returning to CloudPOS” EFTPOS issue of October 26″

Resolved: Intermittent EFTPOS Issue: Returning to CloudPOS

UPDATE: Read our postmortem for additional information about why the problem occurred and what we did to fix it.

Some Vendor’s are experiencing an issue when processing a second EFTPOS transaction, with the screen saying “Returning to CloudPOS” and never doing anything. This issue has been fixed, however your browser may have cached the invalid code. A report on the problem and how we are going to avoid it in the future will be release in the next few days. If your browser is coming up with “Returning to CloudPOS” please follow these steps:

While in the POS, open the developer tools, by clicking on the Chrome menu, going to “More tools” and then “Developer tools” (you can also access this by pressing F12 on your keyboard).

Once the developer tools have appeared, then right click on the refresh button in the top left hand corner

Then click on “Empty Cache and Hard Reload”

Your EFTPOS should then work as expected.