Welcome to what’s new on Shopfront for July & August 2025. We’ve been busy squashing bugs and working on some big things in the background that’ll be coming out soon!
Note: Some of these changes are gradually rolling out to stores, some of the changes may not be received in your store for a couple of weeks.
Minor Features
- The colour select will now remain open if the mouse is released outside the picker,
- The promotion category filter on the promotions page no longer requires you to type to view the list of categories,
- Added a filter for last sold date to the customer utilities,
- Rebate calculation has now been reworked to have a consistent set of rules for all promotions unrelated to the promotion activating,
- Account & Billing page has been redesigned to use the latest Shopfront components and design system,
- Improved visibility of which tabs contain issues when saving new edit pages,
- Adding a collection of items to the order edit page now scrolls to the first item added instead of the last item added,
- The mix criteria toggle is now disabled when it’s not applicable to be used,
- Price lists can now be opted-in to applying discounts on top of promotions,
- The entire store’s product list can now be added to a promotion criteria by adding “All Items”, useful for when you want a spend & get on any item instead of a specific category,
- Products imported from Shopfront’s master database will now include suppliers that match your store,
- Product descriptions are now tracked in the revision history,
- Added a toggle to force users to change their password on next login,
- [Developer] Shopfront’s Embedded Bridge now comes with a mock version that can be used for unit testing,
- [Developer] Added a new bulk inventory changed webhook,
- [Developer] Can now specify a tax amount or tax percentage when creating sales via the
CreateSale
mutation, - [Developer] Documentation search now includes Embedded API events
Bug Fixes
- Editing a product that’s within a family now adds all the family products to the shelf tickets for other Outlets instead of just the product that was directly edited,
- Sale keys that come from integrations now wait for the integration to fully load before they attempt to trigger,
- Disabling the product or price field on the customer display no longer causes the table to be jumbled up when using with components,
- Starting balance for customer accounts on receipts will now no longer show more than the currency’s number of decimal places,
- Refreshing the product view page no longer triggers old v1 routing (leading to a potential saving of 10 seconds per refresh),
- Saving no longer fails on the old product edit page when the user doesn’t have the edit barcode permission enabled,
- Price is no longer calculated incorrectly when a product is on two separate promotions with two separate quantities and the quantity on the sell screen is equal to the promotions added together,
- Prices now calculate correctly when using high-mixed pricing with multiple price points but without a single price,
- Advanced promotions with the first criteria being optional and the second criteria being required now activate as expected when both items are added to the sale,
- Unconsolidated products are now treated the same way as consolidated products when calculating promotions and the prices are instead distributed after calculation,
- Products with no single price point and using decimal quantities on the sell screen now round pricing as expected,
- Family products with different prices are now correctly handled when the family is on promotion with a discount amount,
- Adding multiple request price products to the sale now calculate the total price of the sale correctly,
- Parking and then unparking a sale with a family item no longer shows the price as a discount,
- External stocktakes now calculate the total cost correctly when on the import page when importing huge stocktakes,
- External stocktakes are now filtered on the client-side leading to significantly faster searching,
- Customer payments can now be allocated when in Outlet mode,
- Modifications to payment methods from the sales history now also adjust the payment method subtype,
- Viewing a cancelled invoice no longer triggers the duplicate order dialog,
- The active price set now reverts to the default price when changing from a register to global mode,
- Leaving the price list view page no longer triggers a confirmation dialog,
- Performing a force sync when offline and then a regular sync when back online no longer leads to incorrect takings,
- Sales which are parked with part-paid integration payments and then later completed now correctly show the payment subtype,
- Returning items from the sales history without being in a register no longer causes a failed upload,
- Numerous minor UI adjustments,
- [Xero] Movements no longer appear as rounding when sending register closures to Xero