Orders

Browse the order history, edit order details, and handle refunds and revocations

An order is the record of a customer’s purchase from your site – what’s in their cart, who the fonts will be licensed to, what they pay, and (once paid) the download archive built for them. Orders are created the moment a customer enters checkout, whether or not they go on to pay. The Orders screen in the admin lists every order placed through your site. Each row links through to an order page where you can access more details and perform actions on the order.

The orders list

Orders are split into two tabs:

Completed

the default tab. Orders where payment went through.

Incomplete

carts where the customer started checkout but didn’t finish. The list is where to look for drop-offs and high-value abandoned carts to follow up on.

Each row is a summary of the order: invoice number, customer, items, total, and completion date. Refunded orders have their total struck through. When an order has tax on it, the total column shows two amounts – the pre-tax discounted subtotal, then the full total (including tax) alongside in grey. So $100 / $120 is an order with a $100 subtotal and $20 of tax.

Filters

Date range

pick a preset or set custom start and end dates.

Font collection

restrict to orders that include a specific family, superfamily, or bundle – any of its styles, bundles, or the collection sold whole, from any version you’ve uploaded. Available on the completed tab.

Search

matches against the customer’s name and email, plus every field on both the billing and licensee information.

Missing product connection

restrict to orders with an item that no longer connects to a product in your catalog. Offered only when such orders exist, through the notice above the list – see reconnecting order items.

Totals

Above the list, a header shows the count of orders in the current filter and their total. The header sums each order’s discounted subtotal – line items minus any coupon discount – and excludes tax. Partial refunds are displayed but the totals aren’t reduced by them. Fully refunded orders are excluded entirely.

This is the gross volume view: what customers paid your store, before tax, and before Stripe and Fontdue fees. The chart plots this figure over time. For a per-font breakdown that pulls fees, tax, and refunds apart, see Sales reports.

When the Font collection filter is active, row totals and the header total become fractional – each shows only the portion of the order attributable to the matching collection, with the full order total alongside in grey. A $1,000 order with $400 going to the filtered family appears as $400 / $1,000; if that order had a 10% coupon applied, the fractional contribution drops to $360 / $900 – the discount spreads across all items in the order proportionally11The chart still plots full order totals rather than fractional ones, so it may not line up with the header sum when a filter is active..

Bulk actions

The ellipsis menu in the toolbar (completed orders only) has three actions that apply to the current filter:

Download PDFs

generates a ZIP of every invoice matching the current filter.

Download CSV

exports the filtered orders as a CSV.

Rebuild ZIP files

regenerates the font download archives for the filtered orders. An archive is built once when the order completes and isn’t refreshed on its own – so when you update a family (add styles, replace font files), rebuilding is how customers who already bought receive the changes.22Filter the list first – for example, by the font family you updated – so the rebuild only touches relevant orders.

The order detail view

Clicking an order opens its detail page, which shows:

  • The invoice number and completion date.
  • The billing identity (who paid) – name, address, email, phone, VAT or tax ID if present.
  • The licensee identity (who the fonts are licensed to) – shown separately if different from billing.
  • Order variable selections with multipliers.
  • Every order item with its price and any variable multiplier applied.
  • Subtotal, coupon discount (with a link to the coupon if used), tax, total.
  • Refunds from Stripe (initiation date, amount).
  • The Stripe charge: payment method, amount, refunded status, plus a link to the charge in the Stripe Dashboard. If the last payment attempt failed or is still pending, the page says so rather than showing it as the payment.
  • Emails – each email sent to the customer about the order, and whether it arrived, covered in Emails below.
  • Internal notes – private notes your team keeps on the order, covered in Internal notes below.

Perform actions on the order with these buttons:

Edit order details

opens the edit form. See editing an order below.

Resend email receipt

re-sends the receipt email to the customer’s email address, using the most recent order details.

Rebuild ZIP file

generates the customer’s download archive. Needed after updating font files or adding styles to a family.

Download ZIP file

download the same ZIP file that the customer receives.

View invoice

opens the PDF invoice.

View customer dashboard

opens what the customer sees after signing in through the customer login form.

Refresh Stripe data

re-fetches the charge details from Stripe. Normally Stripe data is kept in sync automatically.

Emails

The Emails panel on the order detail page lists every email Fontdue sent the customer about the order: the receipt when the order completed, a payment-failed notice if a payment attempt was declined, and each time the receipt was sent again – by your team with Resend email receipt (with the name of whoever resent it), or by the customer from an expired invoice link.

Click an email to see it exactly as it was sent: the sender, recipient and subject, the HTML version in a preview, and the plain-text version. It’s a copy taken at the moment of sending, so it shows what the customer received even if the order, your branding or your receipt settings have changed since.33Emails sent before the panel existed weren’t kept, so older orders show an empty panel.

Each email carries a status, updated as SendGrid reports on the delivery:

Sent

accepted for delivery, with no word yet from the customer’s mail server.

Delayed

the customer’s mail server asked SendGrid to try again later. SendGrid keeps retrying for up to 72 hours.

Delivered

the customer’s mail server accepted it. Delivered isn’t the same as read – it may still have been filtered into a spam folder.

Bounced

the customer’s mail server refused it, for example because the address doesn’t exist or its mailbox is full.

Not delivered

SendGrid didn’t attempt delivery, usually because the address bounced before or was reported as spam.

Marked as spam

the customer reported the email as spam.

Failed

the email was rejected before it could be sent.

Not confirmed

the send was interrupted before SendGrid answered, so the email may never have gone out. Resend it.

The email’s page lists each delivery update with the receiving server’s own explanation, which is the place to start when a customer says they never got their receipt.

Internal notes

An internal note is a private comment attached to an order – a reminder that a customer asked for a re-issued invoice, a record that you refunded a seat by hand in Stripe, or a flag that an order is still waiting on a VAT check. Notes are for your team only: they never appear to the customer, on the receipt email, or on the invoice.

Notes sit in the Internal notes panel on the order detail page. Type a note and click Add note – it’s saved against the order and stamped with your name and the time. The thread lists newest first, and anyone on your team can Edit or Delete any note44The name shown on a note is captured when it’s written, so the note keeps its author even if that person later leaves your foundry..

Editing an order

Click Edit order details on the order detail page to open the edit form. The editable fields are:

Customer

reassign the order to a different existing customer, using a searchable picker. See editing the customer vs reassigning the order for when this is the right tool versus editing the customer’s own record.

Licensee identity

name, organization, email, phone, address (country, street, locality, administrative area, ZIP), VAT number, ABN, and care of.

Billing identity

same fields as the licensee. Only appears on orders where Fontdue captured the billing details directly. Orders made under the Stripe tax system go through Stripe Checkout, which keeps the billing record on Stripe’s side instead, so the field isn’t shown here.

Order items

pick a different SKU for an item, and edit the description that item shows on the invoice and receipt. Mostly used to reconnect order items after a font collection has been removed and re-added.

Save to apply the changes. You’ll land back on the order detail page with the updated details. If something about the order stops it saving, the form stays open and lists what needs fixing at the top.

The customer’s font ZIP archive is built once when the order is completed, so changes that affect what’s in the archive – for example swapping an order item to a different SKU – don’t regenerate it automatically. Click Rebuild ZIP file to refresh it.

Editing the customer vs reassigning the order

Two actions here look alike but differ. Edit customer details (beside the customer’s name) corrects that customer’s own record – a mistyped name or email – and the change applies to every order attached to them; use it when an email was simply wrong at checkout. Edit order details → Customer instead reassigns just this one order to a different existing customer, leaving both records untouched; use it when the buyer ended up with two records (say, a work and a personal email). If the right customer already exists, editing the duplicate’s email fails with Email has already been taken – which is the case the order picker is for.

Reconnecting order items

An order item is a row on an order that points to a specific font product – a family, style, or bundle in your catalog. That pointer is severed when the product is deleted55Until September 2026, removing a product’s price severed it too: the price and the record the order item points at were one thing, and pricing the product again created a new record that existing orders didn’t know about. A product now keeps its record when it goes off sale – see Selling only in bundles – but orders disconnected before then stay that way until you reconnect them. – the order itself is unchanged, but the item no longer knows which font files belong to it.

The orders list flags affected orders with a yellow warning triangle (tooltip: Missing connection to font files), and a notice above the list counts them. On the order detail page, the same triangle appears beside the affected line items, and the edit form shows a fuller alert noting that the connection was severed.

This matters in two places. Rebuilding the customer’s ZIP file reads font files through each order item’s product, so an orphaned item is silently skipped and the archive comes out incomplete. And the Font collection filter, the sales report, and the dashboard’s per-collection figures all find an order through its items’ products, so an order whose items are disconnected stops counting toward the collection it was for.

Reconnecting in bulk

Click Review on the notice above the orders list. The list narrows to the affected orders (the Missing product connection filter, over all time), and a panel above it groups the disconnected items by description. Each group whose description still names exactly one product in your catalog – Example Sans Regular, say, once the family is back – is proposed for reconnection to that product. Untick any you don’t want, tick Add an internal note to each reconnected order if you’d like a record of the change on the orders, then click Reconnect selected. The items are pointed at the product again; the description and the price the customer paid stay as they were.

Groups that can’t be matched are listed underneath with the reason: no product has that name, more than one does, or the product has never been given a price and so has nothing to connect to. Fix the cause – re-add the product, give it a price, or rename – and review again, or reconnect those items one at a time as below.

Reconnecting one item

To restore a single item’s connection:

  1. Re-add the product to your catalog, if it isn’t already back.
  2. On the order detail page, click Edit order details.
  3. In the Order items section, use the SKU picker on the affected item to choose the new product. The description and the price the customer paid stay as they were, exactly as in bulk.
  4. Save.

The description is the line the customer sees on their invoice and receipt, and both are generated fresh each time they’re opened – so reconnecting deliberately leaves it alone rather than rewriting a document they already have. If the wording should change, edit the Description field yourself. Where the item is connected to a product, the form shows what the description would say if it were written from that product, with a Use this description button to take it.

Once every item on the order points to a live product, the warning clears and rebuilding the ZIP file produces a complete archive again.

Refunds

Refunds are issued from the Stripe Dashboard, not from Fontdue:

  1. Open the order in Fontdue and click the Stripe Dashboard link on the charge to jump to Stripe.
  2. Issue the refund in Stripe – partial or full.
  3. Back in Fontdue, click Refresh Stripe data on the order detail page to pull the refund onto the order.

Once the data is refreshed, the order shows the refund (date and amount) and the total is crossed out if the refund was full. Fully refunded orders are excluded from the sum shown on the orders list.

Refund webhooks from Stripe update Fontdue automatically66The manual Refresh Stripe data button is only needed if you want to see the refund right after issuing it – otherwise the webhook catches up within a few seconds..

Revoking license access

A refund in Stripe doesn’t take away the customer’s access to the font files. To remove access:

  1. On the order detail page, click Edit order details.
  2. Tick License revoked on each affected order item.
  3. Save.

Revoking removes the item from the customer’s downloads area in their account and, if the line was sold under a desktop license, stops them activating its fonts in the desktop app. The order total and invoice PDF are unchanged: once an invoice is issued, it’s the legal record of the sale and Fontdue doesn’t retouch it after the fact. Revocation is purely an access-control toggle on the customer’s downloads, separate from the refund itself. You can revoke without refunding (e.g. when a license is breached) or refund without revoking (e.g. a goodwill partial refund).

Related

1 The chart still plots full order totals rather than fractional ones, so it may not line up with the header sum when a filter is active. 
2 Filter the list first – for example, by the font family you updated – so the rebuild only touches relevant orders. 
3 Emails sent before the panel existed weren’t kept, so older orders show an empty panel. 
4 The name shown on a note is captured when it’s written, so the note keeps its author even if that person later leaves your foundry. 
5 Until September 2026, removing a product’s price severed it too: the price and the record the order item points at were one thing, and pricing the product again created a new record that existing orders didn’t know about. A product now keeps its record when it goes off sale – see Selling only in bundles – but orders disconnected before then stay that way until you reconnect them. 
6 The manual Refresh Stripe data button is only needed if you want to see the refund right after issuing it – otherwise the webhook catches up within a few seconds.