Bundles

Group styles or families into discounted products

A bundle sells a set of fonts from one family or superfamilySuperfamilyA set of related families grouped together (e.g. a sans and its matching serif). together at a discounted price. Its members can be individual styles, whole families, or a mix of both – a roman + italic pair, the static and variable versions of a family, or the Regular weight of every width in a superfamily. Bundles live on the Bundles tab of the collection they belong to.11A bundle draws only on its own collection. To group fonts from across your whole catalog, with a page and licenses of their own, use a font pack.

Creating a bundle

On a family’s Bundles tab, click Add bundle, give it a name, pick its styles and set its price. Beneath the price, the form shows the saving against buying the members separately.

On a superfamily the Bundles tab holds every bundle in it, in one list. The member picker offers each family whole as well as every style of every family, so one bundle can combine:

  • Styles of one family – the roman + italic pairs, or a “Text” and “Display” split of the weights.
  • Whole families – a static family with its variable counterpart, or a logical subgroup of a larger superfamily.
  • Styles from several families – the Regular of each width or optical size, say, or whole families plus a single style from another.

Each bundle has a name, a set of members, a price and a visibility. Drag to reorder – the order is reflected in the Store Modal and Buy Button.

In the Store Modal

Where a bundle is offered follows from its members. A bundle made only of one family’s styles appears in that family’s section of the Store ModalStore modalThe embeddable cart and checkout experience. A single component that handles browsing, license selection, and payment. , with its own button between the family button and the individual style buttons. Any other bundle – one with whole families, or styles from more than one family – appears with the superfamily, beneath the superfamily’s button. The form shows where each bundle will be offered under its members.

Two bundles share a row when the second comes directly after the first and repeats its name plus a suffix: Thin followed by Thin Italic, or Text followed by Text Alternates.22Sites using the fontdue-js npm package need version 3.14.0 or later to see bundles paired. The pair reads like a style beside its italic, and dragging the two apart puts each back on its own row.33A pair is exactly two: in Text, Text Italic, Text Alternates, each bundle keeps its own row. On phones, every bundle has its own row.

Customers can click a bundle to add it in one go, or pick its members one at a time. Whenever a bundle is selected – directly or through an upgrade – its member styles and families display as selected too, the same way selecting a family shows all of its styles as selected.

As a customer picks styles or families that belong to a bundle, the Store Modal offers the shortcut to the full bundle: each unselected member shows a +$X – the gap between what’s already selected and the bundle’s price – and clicking it snaps the selection to the whole bundle. If that gap is already $0, the bundle is selected automatically.

Bundles can overlap – every pair of weights, a few triples of the same weights, each upright with its italic. The Store Modal prices the selection as a whole, so the customer gets the cheapest combination of bundles and styles that covers everything they’ve picked, whatever order they picked it in: Bold, Regular and Light come as a Light + Regular + Bold bundle, not as a Regular + Bold pair plus Light. A bundle or family the customer picks is never broken up into cheaper parts, though it can be upgraded into a larger one. Deselecting a style removes just that style, unless a bundle including it would still be the cheapest way to buy the rest – then that bundle goes too.

This is the same roll-up rule that applies across the rest of the catalog hierarchy. See Selection pricing for the general form.

A superfamily bundle that includes single styles – styles from several families, or styles alongside whole families – needs fontdue-js 3.13.0 or later. A site using the script tag picks it up automatically; a site using the npm package needs to upgrade fontdue-js, and the Bundles tab tells you when yours is too old. Until then, the Store Modal on that site doesn’t offer the bundle at all – customers buy its members at their own prices.44Bundles of one family’s styles, and bundles of whole families, are unaffected – though an older version shows no button for a bundle offered with the superfamily, only the upgrade to it.

Generating pairs

On a family where every upright style has a matching italic, click Generate pairs on the Bundles tab to create a roman + italic bundle for each pair – the fastest way to set up the common foundry pattern of discounting italic pairs. On a superfamily, there’s a Generate pairs button for each family that has pairs.

Unlisted and hidden bundles

A bundle has a Visibility setting, like a collection’s. Set it to Unlisted to remove the bundle’s dedicated button from the Store Modal: its price still applies through the upgrade flow, but customers won’t see a separate button for it. A bundle of whole families that pairs a static family with its variable is often best unlisted – customers pick a family and get the upgrade.

Hidden takes the bundle off your site altogether: no button, and no upgrade to it either, so selecting its members no longer snaps to the bundle’s price. Admins previewing hidden fonts still see it – useful for a bundle you’re still pricing.

Selling only in bundles

Remove the price from individual styles (or individual families) and set prices only on bundles. Customers then can’t buy smaller than a bundle – the smallest purchasable product becomes the bundle itself. Useful when it doesn’t make sense to sell a single style in isolation.

A style with no price is only off sale – orders placed while it was priced stay attached to it, so the Orders collection filter, the Sales report and ZIP rebuilds still find them, and pricing it again later brings back the same product.

Pairing variable fonts

The most common use for a bundle of whole families is including a variable font with its static family. Set the bundle price equal to the static family’s price and the variable comes along automatically; set it slightly higher and customers can opt in for the difference.

  • Example Sans superfamily • $800
    • Example Sans Wide + Variable bundle • $500
    • Example Sans Wide family • $500
    • Example Sans Wide Variable family • $500
    • Example Sans Narrow + Variable bundle • $600
    • Example Sans Narrow family • $500
    • Example Sans Narrow Variable family • $500

In the hierarchy above, Example Sans Wide + Variable is priced at $500 (equal to Example Sans Wide), so clicking either Example Sans Wide or Example Sans Wide Variable auto-selects the bundle. Example Sans Narrow + Variable is priced at $600, so clicking Example Sans Narrow shows the variable as a +$100 upgrade.

To sell the variable only alongside its static family, set the variable family’s Visibility to Unlisted. Its section drops out of the Store Modal, so the bundle – or the whole superfamily – is the only way to buy it.

If your superfamily only contains one family and its variable counterpart, the superfamily itself already bundles them – you don’t need a separate bundle.

Bundles across a superfamily’s families

A superfamily’s widths or optical sizes often share weights, and a customer setting text in one width tends to want the same weight in the others. A bundle can cut across them:

  • Example Sans superfamily
    • Example Sans Regular bundle • $120 – Example Sans Wide Regular, Example Sans Narrow Regular, Example Sans Condensed Regular
    • Example Sans Wide family
    • Example Sans Narrow family
    • Example Sans Condensed family

Picking any two of those Regulars offers the third as a +$X upgrade, and picking all three selects the bundle – the same roll-up as anywhere else in the catalog.

A family can’t move to another superfamily while it, or one of its styles, belongs to one of these bundles – remove it from the bundle first.

1 A bundle draws only on its own collection. To group fonts from across your whole catalog, with a page and licenses of their own, use a font pack. ↩
2 Sites using the fontdue-js npm package need version 3.14.0 or later to see bundles paired. ↩
3 A pair is exactly two: in Text, Text Italic, Text Alternates, each bundle keeps its own row. On phones, every bundle has its own row. ↩
4 Bundles of one family’s styles, and bundles of whole families, are unaffected – though an older version shows no button for a bundle offered with the superfamily, only the upgrade to it. ↩