TnT Pair & Save

TnT Pair & Save help

TnT Pair & Save shows discounted add-ons on product pages, such as a footstool with a bean bag. It can also offer a "Set of N" in a popup after Add to cart. Shopify applies the discounts in the cart and at checkout.

Getting started

Install TnT Pair & Save from the Shopify App Store. If you haven't chosen a plan, the app opens Shopify's plan page first. It then reads your product catalogue in the background.

The setup guide

The setup guide on Home ticks off each step when it's done:

  1. Turn on the app embed. It loads the storefront code and the set popup.
  2. Add the add-on block to product pages, ideally just above the add to cart button.
  3. Create an add-on offer.
  4. Create a set offer (optional).
  5. Translate your text. This only shows when your store sells in more than one language.
  6. Check the storefront.

You add the block and the embed in Shopify's theme editor. The buttons on Theme setup open the editor in the right place. The guide checks your live theme. You can dismiss it and bring it back with Show the setup guide.

Add-on offers

An add-on offer shows extra products on a main product's page. When a shopper ticks an add-on and adds to cart, it goes in with the main product, at the same quantity.

Go to Add-on offers and click Create offer. An Active offer shows on your store; a Draft is saved but not shown.

Pairing products

There are three ways to pair products, and you can combine them:

  • By hand: under Pairings, click Add products to choose main products, then choose each one's add-ons in the order you want them shown.
  • By rule: under Rule, set filters and choose the add-ons matching products get. Filter by tags, product types or vendors (comma-separated, any of them), a metafield value or collections. A product must pass every filter you fill in. Rules need the Growth or Pro plan.
  • From product tags: see Importing pairings from tags.

A product's own pairings take precedence over the rule. A product in several active offers gets the one with the highest Priority. An active offer needs a pairing or a rule.

Discount

  • Percentage off the add-on works in every market.
  • Fixed amount off the add-on, per market: enter an amount in each market's currency. Amounts are never converted. In a market without an amount, the offer is hidden and nothing is discounted.

A fixed amount comes off each discounted item, up to its price.

How many add-ons are discounted: one add-on per main product in total, or one of each add-on per main product. Extra add-ons stay at full price, and so do add-ons whose main product is removed.

Text and display

  • Heading: shown above the add-ons.
  • Discount title: shown in the cart and at checkout. Click Translate this text to translate both.
  • Add-ons shown: 1 to 10 per product. Shoppers can choose one or several.
  • Add-on image: from a file metafield or an image's alt text, otherwise the featured image.
  • Gallery image while selected: the alt text of the main product image to show, such as bundle:{sku}, where {sku} is the add-on's SKU.
  • Show or hide the RRP, the saving and the total. You can also hide Shop Pay Installments while an add-on is selected.

Add-ons the shopper's market doesn't sell aren't shown. Sold-out variants can't be chosen.

Heading rules

A heading rule changes the heading depending on the add-ons shown, for example "Pair With:" for a cushion and a footstool. It tests them against a display name or a tag. The first rule that matches wins.

Set offers

A set offer opens a popup after a shopper adds a product to the cart. It offers matching products at a discount, such as a second bean bag in another colour. The popup needs the app embed.

Go to Set offers and click Create set offer.

The set and its discount

  • Items in a set: 2 to 10.
  • Discount: a fixed amount per market, or a percentage.
  • Which items are discounted: one item per set, or every item after the first.
  • Items that can get the discount: only items added from the popup, or any items of the set in the cart.

For each complete set, the cheapest eligible items get the discount.

Products and popup

Active products matching the filters form sets, together with any products you choose. With no filters, only the chosen products are used. To group only related products, enter a metafield such as custom.parent_sku under Only products with the same value of this metafield form a set.

You choose how many products the popup shows, up to 24. It skips sold-out products and those the shopper's market doesn't sell. Offer the product just added as well allows a second of the same.

When the popup opens

After the shopper adds one of the offer's products, and only if every condition you set is met:

  • the cart has at most a given number of lines;
  • the product's metafield equals a value, such as custom.2_pack = true;
  • no add-on was chosen with it.

Text

Set the popup's heading, text, buttons and discount title. {amount} is the saving and {needed} the items still to choose. Sets of 3 or more also have a progress line and Remove and "add the set" buttons.

Display names

By default an add-on shows its product title. On Display names, you can name it by what it is instead, such as "Square Footstool" for products tagged "Type: Square".

Each rule matches a tag, product type or metafield value, in any case. The first match wins, so order the rules with Move up and Move down.

Text and translations

The wording shoppers see is stored in your Shopify store, not in the app. On Text and translations you can edit it in your primary language, or translate it into any published language. A warning shows when the primary text has changed since a translation was made.

Keep placeholders such as {amount} in translations. Untranslated text shows in your primary language. A new offer's text appears here once it's published.

Translate & Adapt

The same translations show in Shopify's Translate & Adapt app, which also handles market versions. Open in Translate & Adapt, under each entry, opens that entry directly.

The cart and checkout pick up discount titles when the app next publishes.

Appearance

Appearance sets the look of the add-on block and the set popup for every theme. The preview updates as you go; tick Phone width for the mobile layout. Your theme's fonts apply on the storefront, not in the preview.

In the theme editor, a block's Appearance setting is From the Pair & Save app by default. Choose This block's settings to style that block on its own. The app embed has the same choice for the popup.

Custom CSS needs the Growth or Pro plan. On other plans it's kept but not used, and neither is the theme editor's Custom CSS.

Importing pairings from tags

Import turns product tags that name add-ons into pairings. It reads your tags; there's no file to upload. It needs the Growth or Pro plan.

Tag pattern

Write {main} for the main product's SKU and {addon} for the add-on's. The pattern footstool:{main}-{addon} reads the tag footstool:BB-GREY-FS-GREY.

  • Use each placeholder once, in either order, with text between them.
  • Tags match in any case.
  • If a SKU contains the separator, every split is tried. A tag is used only when exactly one split names two of your products.

Preview and import

Choose the offer to add to (or a new draft offer), and whether to read tags on main products, add-ons or either. Preview changes nothing. It lists the pairings and every tag it can't use, with the reason, such as an unknown SKU.

Then click Import. Replace pairings from earlier imports is on by default; pairings added by hand are always kept. A new draft offer needs a discount before you activate it.

Theme setup and the storefront check

Theme setup checks any of your themes: the recommended integration, whether the app embed is on, and which product templates have the block. Its buttons open the theme editor. Shopify doesn't let apps read trial themes, so use the storefront check for those.

Supported themes

  • Empire has its own integration, which updates its cart count and flyout.
  • Horizon, Dawn and themes built on them refresh their cart through Shopify's standard cart actions.
  • Other themes use Generic, which also uses those actions. Where Shopify doesn't recognise the theme, the page reloads after adding.

If you use Rebuy Smart Cart, it's refreshed after adding. Klarna, Clearpay and Afterpay messages include a selected add-on.

The app embed's settings let you change the integration, set product form and gallery selectors, and choose whether the cart opens after adding from the popup.

Storefront check

Run the storefront check opens a product with an active add-on offer in the chosen theme. A panel lists what Pair & Save finds: the block, product form, add-ons, gallery, cart integration, money format and payment messaging. It doesn't change your cart.

How the discount works

The app manages one automatic discount, listed under Discounts as "TnT Pair & Save". It covers add-on and set offers. Customers see each offer's discount title instead. An item gets at most one Pair & Save discount.

By default it combines with order and shipping discounts, but not with other product discounts. You can change this under Discounts; the app keeps your choice.

Otherwise, leave the discount as it is:

  • If you delete it, the app creates a new one at its next publish, with the default combinations.
  • If you switch it off, it stays off and nothing is discounted.

Publishing

Changes publish in the background after you save. Product changes in Shopify are picked up automatically, and everything is checked again nightly. Home shows the status and when it last finished, and how many orders have had a Pair & Save discount (Shopify updates that count with a short delay). Sync now reads your whole catalogue again and publishes.

Plans

Free Starter Growth Pro
Products showing an offer 25 100 1,000 Unlimited
Active add-on offers 1 Unlimited Unlimited Unlimited
Active set offers 1 Unlimited Unlimited Unlimited
Fixed amounts Primary market Every market Every market Every market
Add-ons by rule No No Yes Yes
Tag importer No No Yes Yes
Custom CSS No No Yes Yes

Every plan includes percentages in every market, translations and Appearance. Products showing an offer are main products with add-ons and products that can open a set popup. Shopify Plus stores need Pro.

Plan shows your plan and trial, and links to Shopify's plan page, which shows prices.

Over a limit:

  • You can't save more active offers than your plan allows. After a downgrade, the highest-priority offers stay active and Home says how many are held back.
  • Products already showing an offer keep it; further products don't get one.
  • Rules and custom CSS are kept but not used.
  • Without a plan, offers and their discount are switched off.

Uninstalling and reinstalling

When you uninstall:

  • Shopify deletes the app's discount straight away.
  • The block and popup stop showing.
  • Your plan ends.
  • The app erases its data about your store 48 hours later.

A reinstall within 48 hours keeps your offers, set offers, pairings and settings, and republishes them. You choose a plan again. After 48 hours, you start from scratch.

Customer-facing wording resets to the defaults, and translations are lost. That includes headings, discount titles, popup text, display names and labels such as "RRP:". Note your wording and translations before uninstalling.

Troubleshooting

The block doesn't show

  • Check the block is on your product template (Theme setup shows this). In the theme editor, it shows a note on products without an offer.
  • Check the product has an active add-on offer and publishing has finished.
  • For fixed amounts, check the shopper's market has one.
  • Check the add-ons are sold in that market.
  • Check your plan's product limit.
  • Run the storefront check.

The popup doesn't open

Check the app embed is on, the set offer is active and includes the product, and the conditions under When the popup opens are met. The popup also needs at least one product to offer that's in stock and sold in the shopper's market, and, for a fixed amount, an amount for that market.

Add-ons don't reach the cart

Run the storefront check. If it can't find the product form or gallery, set the selector in the app embed, or try another integration.

The discount doesn't apply

  • Check "TnT Pair & Save" exists and is active under Discounts. If it's missing, click Sync now.
  • Add-ons are only discounted when added from the block with their main product.
  • Check other discounts' combination settings.
  • Check you have a plan.

Changes don't show yet

Publishing runs in the background; check its status on Home. Some changes, such as adding a product to a collection, may wait for the nightly check. Sync now publishes straight away. If it fails, Home shows why.

Contact

Email support@techandthat.com with your store's myshopify.com address and what you see.