How to Improve the Performance of Shopfront
If you're finding Shopfront is running a bit slow or just want to make Shopfront a bit snappier, there are a number of settings available within Shopfront which can improve the speed (at the sacrifice of some features) and we've listed a few suggestions to reduce Shopfront's footprint.
Settings
Note: Before you start changing the settings in Shopfront, ensure your device meets our minimum specifications and check out our troubleshooting guide which may solve the issue.
All settings can be found in the General section of Shopfront's Setup menu.
Use Quantity Rate
Type: Company
Section: General
Calculating prices as quantity rate instead of high-mix price provides a minor performance improvement.
However, this completely changes the way your prices are calculated so make sure you understand the difference between the options by pressing the question mark icon next to the label.
Cross Promotion Count
Type: Company
Section: General
Enabling products that are on promotion to count towards other promotions simplifies the calculation method and can make promotions significantly quicker (especially when running a large amount of promotion comparisons).
It does change the way your prices are calculated so make sure you understand the difference between the options by pressing the question mark icon next to the toggle.
Customer / Product Search Level
Type: Company
Section: Search
Both the customer and product search level can be customised to provide a different level of memory usage and functionality balance. Changing this setting has a larger effect if you have more customers or products.
Mode | Description |
Full (Default) | Searches from anywhere within the string in any order. Works with any language. Has the highest memory usage |
English Tokenized | Similar to Full except it only works with English, any non-English characters are not searched for. Has a moderate amount of memory usage |
Strict | Can only search from the beginning of words. Works with any language. Has the lowest memory usage of any in-memory search option |
Offload to Database | Offloads the search to the local database instead of searching within memory. This reduces search performance (as it requires a lookup to the database) however uses next to no memory. Can only search from the beginning of words. Works with any language |
Search Cache Save Location
Type: Company
Section: Search
This determines where we should save the cache for each device so it doesn't need to be recalculated. If Shopfront starts slowly, this should be set to Local Database, however if Shopfront is slow after a synchronisation or you need extra hard drive space you can set this to Don't Cache which will cause it to recalculate on each page start, but won't have the overhead of loading and updating the cache.
Debug Logging Level
Type: Company
Section: Search
You can reduce the amount of logging that Shopfront performs which will slightly improve performance and reduce the hard drive space Shopfront uses. If you have an issue that can't be easily recreated, Shopfront uses logging to assist with determining the root cause, reducing the amount of logging can result in issues taking a longer time to resolve.
Login After Sale
Type: Registers
Section: Sell Screen
If you're finding that logging in after a sale is taking a long time, you may wish to disable the requirement to login after each sale is completed, this will keep the previous user logged in and ready to perform the next sale. You can also use the Auto Logout Time setting to log a user out if they are idle on Shopfront for a certain amount of time.
Run Promotion Calculation in a Dedicated Thread
Type: Registers
Section: Sell Screen
Enabling this setting improves the performance of the user interface as the promotion calculation will not block the UI from updating, however it also increases memory usage. Disabling this setting will reduce the memory usage of Shopfront (especially when you have a large number of products) but may cause slight delays in updating the user interface.
Content
Shopfront can load a number of different types of content which may lead to sluggish performance in Shopfront.
Sale Keys
Each folder of sale keys is a 10x10 grid allowing for up to 100 keys and can support an unlimited amount of folders to overlay on top. If you're experiencing sluggish performance in the sell screen and have a large amount of images on sale keys you may need to either reduce the number of images or improve your computer's processor.
Having a large number of nested folders can also reduce the performance of Shopfront, especially if each level of nesting contains a large number of images, try to keep the sale key folders as flat as possible.
You can improve the efficiency of each image by ensuring it's the correct size before using it in a sale key and compressing it before it is uploaded (using something like tinypng.com for example).
Customer Displays
Like the sale keys, the customer display is a 10x10 grid allowing for up to 100 components, if you have a large number of images or videos to display (either at the same time in different components or all within the same slideshow component) then Shopfront can become sluggish, especially when playing videos with older processors.
To improve the performance, we would first suggest closing the customer display to determine if it is the issue. If so, we would then recommend removing videos and then images.
You can improve the efficiency of each image and video by ensuring it's the correct size before using it in a sale key and compressing it before it is uploaded (using something like tinypng.com for example).