New on Shopfront: July & August 2025

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