> ## Documentation Index
> Fetch the complete documentation index at: https://docs.florists.digital/llms.txt
> Use this file to discover all available pages before exploring further.

# 2025

> Updates shipped in 2025.

Updates from 2025. For current-year releases, see [2026](/changelog/2026).

<Update label="2025-12-31" description="December 2025 release" tags={['Orders & POS', 'Customers', 'Events', 'Delivery', 'Mobile']} rss="Live order counts on the dashboard tabs, a 'not printed' filter, customer delete and merge, Paid Today on End of Day reports, SMS proposal sending, fixing an address pin from the delivery view, bulk customer statements, and a Companion App refresh covering order filters, order photos, what3words, and driver onboarding.">
  ## Added

  * **Filter the orders table by what hasn't been printed** — a new 'not printed' filter on [Orders](/daily-operations/orders) makes it easy to catch worksheets or labels that slipped through on a busy morning.
  * **Delete and merge customer records** — customers can now be deleted with their orders and tasks reassigned, or merged into another record with all history carried across. See [Customer merge](/business/customer-merge).
  * **Paid Today column on End of Day reports** — [End of Day](/daily-operations/pos-end-of-day) now shows the payments taken in the current till session, separate from each transaction's lifetime total. The transactions table picked up the same column plus a tooltip on Total Gross.
  * **Search events by venue name** — the [events list](/events/calendar) can now be searched by venue as well as event name and client. Useful when a venue books in multiple weddings.
  * **Choose how arrangement images appear on proposals** — arrangement sections in [proposals](/events/proposals) have an image display setting that either groups images at the top of the section or shows them alongside each recipe.
  * **Send proposals by SMS as well as email** — when sending a proposal, add recipients by phone number for an SMS link. You can mix email and SMS in one send. See [Sending proposals](/events/sending-proposals).
  * **Map and QR code on the fulfilment address card** — order pages now reveal the delivery address on a map or display a QR code linking to the order, so drivers and staff can verify where it's going.
  * **Fix an address pin from the delivery view** — outlier or missing addresses on a [delivery run](/daily-operations/delivery) can be corrected on the spot, with a loading state in the map panel.
  * **Bulk-select tasks from the tasks table** — selection checkboxes are now available on the [tasks table](/daily-operations/tasks) for bulk actions, matching the orders table.
  * **Default product sort on the order form** — a new setting under [Configuration](/settings/configuration) controls how products are listed on the order form and on POS.
  * **Bulk send statements to multiple customers** — account [statements](/business/statements) can now be sent in bulk from the business panel, rather than one customer at a time.
  * **Driver onboarding helper in the mobile apps** — a modal on the delivery page walks staff through downloading the [Driver App](/get-started/app-drivers), and the shop-picker screen can now scan a QR code to fill in the shop name. Fewer keystrokes when handing a device to a new driver.
  * **Companion App: filter orders by status** — the view orders screen now has summary cards at the top that double as live-count filters by order status. Tap a card to narrow the list.
  * **Companion App: order photos in the app** — order cards and order details now show product images, with a lightbox to enlarge them. Handy for confirming the right arrangement before make-up or handover.
  * **Driver App: what3words address on the order screen** — the [Driver App](/get-started/app-drivers) order details now show the what3words address for the delivery point, useful for awkward or rural properties.
  * **Driver App: choose what happens after marking a delivery complete** — a new delivery preference lets drivers pick whether the app goes back to the run, opens the next stop, or stays on the confirmation screen.
  * **Driver App: confirm delivery and delivery photos screens** — dedicated screens for confirming a delivery and adding delivery photos, alongside refreshed action buttons and payment-status labels.

  ## Changed

  * **Live counts on the dashboard order tabs** — each tab on the [orders table](/daily-operations/orders) now shows how many orders are inside it, refreshing as orders move through the day.
  * **Confirm & print now prompts for the operator up front** — the user selection screen opens before printing, which stops browsers blocking the print pop-up. Bulk confirmation for relay orders was tidied up alongside this.
  * **Transactions tagged to till sessions when payments are taken** — payments now record which till session captured them, so cash-up and [End of Day](/daily-operations/pos-end-of-day) totals reflect what was paid during that shift rather than the order's running total.
  * **Unpaid orders included in the sales export** — the sales analytics export now includes orders with an unpaid status, so it reflects the full picture of trade booked in the period.
  * **Tax amount added to the financials export** — the [financials](/business/financials) export now includes a tax column, making VAT reconciliation faster for shops handing the file to an accountant.
  * **Better guidance when no Direct2Florist florists are found** — the [relay](/settings/integrations/relay) destination search now shows a helpful message and suggests same-day or next-day delivery when the date returns no florists.
  * **Proposal hero uses your branding** — the hero section on a [proposal](/events/proposal-themes) now picks up your shop's branding dynamically, and the old fixed footer has been removed.
  * **Stock availability shown across product pickers** — the substitute item screen, order product cards, [POS](/daily-operations/pos) products pane, and variant selector now indicate which items are out of stock or running low.
  * **Town, county and address line 2 used when finding a delivery pin** — [delivery](/daily-operations/delivery) address lookup now uses these fields when working out where to drop a pin on the map, giving more accurate pins for orders entered with partial postcodes.
  * **Delivery run order numbering refreshed** — order numbers on runs now display and sort consistently across the run page, the printed manifest, and the backend, so it's easier to call out a specific stop.
  * **Delivery as its own permission** — a new delivery permission controls who can edit runs, and the resequence and reorder controls now work on runs already in progress. See [Team](/settings/team).
  * **Filter tasks by month or all upcoming** — [task](/daily-operations/tasks) date filters now include a 'this month' view and an 'all upcoming' view, so it's easier to plan ahead without picking specific dates.
  * **Customer match banner sticks when scrolling** — on larger screens the customer match banner on the [order form](/daily-operations/creating-an-order) stays at the top of the page as you scroll.
  * **Longer phone number fields and smarter contact auto-fill** — phone columns have been lengthened for international numbers, and the contact name auto-fill on order forms behaves more predictably.
  * **Faster Media Library on large libraries** — [Media Library](/events/media-library) images now load thumbnails much faster on large libraries. The upload queue also lets you apply a category to a whole batch at once.
  * **PaymentSense reliability improvements** — [PaymentSense](/settings/integrations/payments) is more reliable end to end, and the till shows a clearer error message when a payment fails.
  * **Shopify integration handles more date formats and Zapiet line items** — the [Shopify integration](/settings/integrations/website) now understands additional delivery date formats and can pull delivery dates from Zapiet line item properties.
  * **Festive touches across the dashboard** — a dismissible Christmas feedback banner, a dedicated Christmas support screen, holiday closure dates in the header, and date-chip styling for festive deadlines made the platform easier to lean on during the December rush.
  * **Driver App: fulfilment notes and all delivery items on the order screen** — the [Driver App](/get-started/app-drivers) order screen now shows fulfilment notes and lists every item on the delivery, so drivers have the full picture at the door.
  * **Driver App: order summary header tidied up** — the header now shows the company name where relevant, hides empty time labels, and sorts run sequence by delivery order so the next stop reads correctly.
  * **Background token rotation keeps drivers signed in** — the mobile apps refresh sign-in quietly on launch and on returning to the foreground, so drivers are kicked out far less often and location tracking sessions survive the refresh.
  * **Refreshed update banner** — the in-app update banner has clearer wording ('Restart to update', 'Update available') and a tidier layout that respects the safe area.

  ## Fixed

  * **Direct2Florist status updates differentiate inbound and outbound** — status changes on [relay](/settings/integrations/relay) orders now handle inbound and outbound separately, so confirmations go to the right side without crossing wires. A guard also prevents the same relay order being sent twice.
  * **Hidden groups and recipes are excluded from proposal quotations** — items marked as hidden on a [proposal](/events/quotation-builder) no longer leak into the client-facing quotation breakdown.
  * **Duplicate fulfilment pings handled cleanly** — a duplicate ping from the [Driver App](/daily-operations/delivery) no longer double-fulfils an order. Fulfilled or cancelled orders are also excluded from delivery run status recalculations.
  * **Courier orders fully supported in contact and address validation** — order validation and contact assignment now recognise the courier fulfilment method, so [courier orders](/daily-operations/courier-orders) no longer fall through the gaps in the order form.
  * **SMS send failures surface a clear reason** — failed SMS [notifications](/settings/notifications) now report a clear reason, so it's obvious when a message didn't go out.
  * **Funeral order time formatted correctly for Florist Window** — funeral orders sent to [Florist Window](/settings/integrations/website) now use the full date-and-time format, fixing a sync error that affected funeral bookings.
  * **Driver App: unsaved changes warning when leaving the delivery screen** — backing out of the delivery or task confirmation screen now warns the driver if they have unsaved changes, preventing accidental loss of a signature or photo.
  * **Driver App: navigation back to the order screen corrected** — confirming a delivery now returns to the order screen correctly, fixing a mismatch that could leave drivers on a blank screen.
</Update>

<Update label="2025-11-30" description="November 2025 release" tags={['Orders & POS', 'Delivery', 'Mobile', 'Products & Inventory', 'Events', 'Integrations']} rss="Order assignment on the dashboard, variant-level ingredients with demand reports, a dedicated With courier order status, a redesigned customer delivery tracking page, sort by fulfilment time, offline support plus background location tracking in the Driver App, integration failure alerts with retry, and Direct2Florist, Shopify, WooCommerce and Florist Window improvements.">
  ## Added

  * **Order assignment on the dashboard** — assign orders to a specific team member from the dashboard or orders table, then filter by assignee so designers can focus on their own work without double-handling. See [Dashboard](/daily-operations/dashboard).
  * **Variant-level ingredients** — each product variant can carry its own ingredient list, recorded as a snapshot on every order item. Edit ingredients from the variants panel, the configure-product modal, or the product editor. See [Products](/storefront/products).
  * **Ingredient purchase quantities and demand reports** — price ingredients per bunch or per stem with a configurable purchase quantity, then read the new ingredient demand summary on the dashboard and inventory export to build a buy list from the next few days of orders. See [Ingredients](/events/ingredients).
  * **"With courier" order status** — a dedicated status between dispatch and delivery for orders handed to a third-party courier, with matching filters, board columns and badges across the dashboard, calendar and orders table.
  * **Sort dashboard by fulfilment time** — a new sort that prioritises explicit deadlines and delivery slots over generic dates, with a colour code on the rows to flag morning vs afternoon work. See [Dashboard](/daily-operations/dashboard).
  * **Hide customer details on the delivery export** — a setting to keep the buyer's contact details off driver paperwork when the order has a separate recipient. Configure under **Settings > General > Delivery**. See [Delivery](/daily-operations/delivery).
  * **Volume control for new-order notifications** — set the playback volume for the new-order alert so the sound stays audible in a quiet shop without dominating the room. Configure under **Settings > General > Notifications**. See [Notifications](/settings/notifications).
  * **Archive an event from the events screen** — archive directly from the events index, with a status-change log entry attributed to the user who archived it. See [Event lifecycle](/events/event-lifecycle).
  * **Customer quick-match while creating an order** — the create-customer panel surfaces likely matches against existing customer records as you type, with a banner to merge into the existing record. See [Creating an order](/daily-operations/creating-an-order).
  * **Companion App: order view modes and assignment filter** — the orders screen has a view-mode toggle and supports filtering by assignee, mirroring the new dashboard assignment feature so florists can see only their own work.
  * **Driver App: background location tracking** — drivers can keep location updating in the background as they work through a run, so the shop and customer tracking views stay accurate when the phone is locked or another app is in front. Permission prompts appear at the right moment on the run screen.
  * **Driver App: mark as carded and reschedule for tomorrow** — when a delivery can't be completed, removing the order from the run offers a "carded" option and a "redeliver tomorrow" option in one step, updating the status and fulfilment date so it falls into the next day's work.
  * **Driver App: offline support for runs and orders** — run details and individual orders are cached on the device, so drivers can keep viewing them and queue delivery actions when they lose signal. An offline banner makes the state obvious and queued actions sync when the connection returns.
  * **Integration failure alerts with one-click retry** — failed relay or website sends show on the dashboard and on the order itself, with the underlying error and a retry button so you don't have to recreate the order. See [Integrations](/settings/integrations).
  * **INTEGRATION UPDATE: Direct2Florist** — selecting a Direct2Florist destination creates the matching delivery slot, pulls in any extra fee charged by the receiving florist, and uploads custom attachments so they reach the executing florist. See [Relay integrations](/settings/integrations/relay).

  ## Changed

  * **Hire items excluded from ingredient lists** — products marked as hire items can't be added as variant ingredients, with a notice in the ingredient selector explaining why, so rentable vases and props aren't treated as consumables in costings. See [Hire items](/events/hire-items).
  * **Export selected orders by ID** — the order export accepts a list of selected rows rather than always exporting the whole filter result, so you can tick a handful of orders and pull just those. See [Orders](/daily-operations/orders).
  * **Customer-name filter on the orders table** — a dedicated customer-name filter searches across first name, last name and company, so finding all of a regular customer's orders is faster than reaching for the full search bar. See [Orders](/daily-operations/orders).
  * **Delivery tracking page redesign** — the customer-facing tracking page has a clearer layout, a gallery for multiple delivery photos, an ETA range rather than a single time, and faster-loading maps. Route stops are listed and logo handling has been tightened. See [Delivery tracking](/daily-operations/delivery-tracking).
  * **Delivery-slot filter when adding stops** — building a delivery run lets you filter by delivery slot so you can put together morning and afternoon runs without scrolling through the whole order pool. See [Delivery](/daily-operations/delivery).
  * **Snappier quotation editor on large events** — saving an event quotation keeps the editor in sync without a reload, and the editor stays responsive when adjustments and labour are recalculated on large quotations. See [Quotation builder](/events/quotation-builder).
  * **Event-type filter on analytics exports** — sales and customer-marketing exports accept an event-type filter, so reporting on (for example) only weddings or only funerals doesn't need slicing the export afterwards. See [Reports](/analytics/reports).
  * **Gift cards table searches more customer fields** — the gift cards table searches first name, last name, email and company, with a tidier customer column, so the right card for a regular account customer is faster to find. See [Gift cards](/settings/gift-cards).
  * **Order details show the source channel** — each order's details panel displays where the order came from: POS, website, relay or in-house. See [Orders](/daily-operations/orders).
  * **Restyled dashboard and order tables** — labels, table headers, top-bar buttons and status badges across the dashboard, orders, tasks and transactions tables have been retuned for better contrast and a tighter visual hierarchy, making them easier to scan during a rush. See [Dashboard](/daily-operations/dashboard).
  * **Driver App: AM-priority banner on delivery runs** — AM-only deliveries are flagged with a priority banner on the run and order rows, with clearer time labels so drivers can spot them before they plan the order of stops. Helps avoid breaching morning windows on busy runs.
  * **Driver App: refined order and run screens** — the order screen has been redesigned with clearer primary and remove buttons, restyled optional-action panels, and tidier address widgets.
  * **Relay service fee as an order line** — relay service fees sit on the order as a clearly-badged line item rather than being folded into totals. They're ignored by upsell prompts and recalculated automatically as the relay destination changes. See [Relay integrations](/settings/integrations/relay).
  * **INTEGRATION UPDATE: Shopify** — the Shopify integration picks gift messages out of order properties using common toggle and message field names, attaches them to the order, and detects pickup orders so they aren't routed for delivery by mistake. A default collection-location can be set in integrations config. See [Website integrations](/settings/integrations/website).
  * **INTEGRATION UPDATE: Shopify migration** — the data-migration screen accepts a starting product ID and an option to include unpublished products, with the next product ID surfaced so a large catalogue import can be resumed without re-pulling everything. See [Website integrations](/settings/integrations/website).
  * **Unconfirmed relay orders flagged in the queue** — the confirm button is disabled with a tooltip when an order is from a relay and hasn't yet been confirmed by the executing florist, and the row picks up distinct styling so it stands out in the queue. See [Relay integrations](/settings/integrations/relay).

  ## Fixed

  * **Loyalty balances are reinstated when an order is cancelled** — cancelling an order that used loyalty points or punches reinstates the customer's balance and writes a reversal event, and the same order can't accrue points twice. See [Loyalty](/settings/loyalty).
  * **INTEGRATION UPDATE: WooCommerce** — WooCommerce orders without a delivery date fall back to the order timestamp (or today's date), with a note on the order so the team know the date was defaulted. See [Website integrations](/settings/integrations/website).
  * **INTEGRATION UPDATE: Florist Window** — Florist Window inbound orders are validated up-front, duplicates are flagged clearly, and unusual data on totals is handled cleanly. See [Website integrations](/settings/integrations/website).
</Update>
