Shopify Functions

Custom Shopify Bundles and Product Add-ons

Custom Shopify product bundles and add-ons built on the Cart Transform Function: fixed and mix-and-match bundles, kits, and add-ons like gift wrap.

CartStarter kitBundle$59.00Shampoo · 250 mlIncludedConditioner · 250 mlIncludedTravel towelIncludedAdd gift wrap+$5.00You save $14.00 with this bundle

Bundles look simple on the product page and get complicated everywhere else: inventory, pricing, discounts, returns and the pick list in your warehouse. Shopify’s Cart Transform Function is what makes bundles behave properly from cart to fulfillment, and it is what we build custom bundles and add-ons on.

Three ways to transform a cart

  • Expand. A bundle sold as one product becomes its component items, so stock and fulfillment happen per component. A “Starter kit” line becomes the shampoo, conditioner and towel inside it.
  • Merge. Separate items the customer picked become one bundle line at the bundle price. This is how mix-and-match bundles work.
  • Update. On Shopify Plus, a line’s price, title and image can be overridden, for example to price an add-on or show a personalised product.

Add-ons that stay attached

Gift wrap, engraving, extended warranties and accessories sell better as part of the product than as separate items to hunt for. We attach add-ons to the product they belong to, price them correctly, and make sure they reach the order and the packing slip.

App or custom build?

For fixed bundles and multipacks, Shopify’s free Bundles app is often enough, and we will say so. A custom Cart Transform earns its place when your bundle rules, pricing or fulfillment go beyond what the apps allow, or when bundles need to work with your own discount and validation logic.

Know the limits up front

Cart Transform does not work on subscription lines, and each app can run one cart transform per store, so we design a single Function that handles all of your bundle rules. We plan around those limits before building, not after launch.

Pair it with custom Discount Functions for bundle pricing rules, and a custom product page for the bundle builder itself.

What we build

01

Fixed bundles and kits

Sell a set as one product at its own price, and expand it into its components for stock and fulfillment.

02

Mix-and-match bundles

Let customers build their own bundle from eligible products, merged into one line at the bundle price.

03

Paid add-ons

Gift wrap, engraving, warranties and accessories, attached to the product they belong to.

04

Custom line pricing

Price, title and image overrides on individual cart lines, on Shopify Plus.

Questions, answered

What is the Cart Transform Function?

It lets an app change how cart lines are presented and priced. It can expand one line into its components, merge several lines into one bundle, and on Shopify Plus update a line's price, title and image.

Should we use a bundle app or a custom build?

Start with an app if it fits. Shopify's free Bundles app handles fixed bundles and multipacks on every plan, and App Store apps cover mix-and-match. A custom build is for when your rules, pricing or fulfillment go beyond what those apps allow.

Do we need Shopify Plus?

For a custom Cart Transform built just for your store, yes, as with any custom app that uses Functions. Overriding a line's price, title or image is also limited to Plus. On other plans, public bundle apps built on the same API are the way to go.

Do bundles work with subscriptions?

Not through Cart Transform. Shopify rejects cart transform operations on lines with a selling plan, so subscription bundles need a different approach, which we plan with you before building.

How many bundles can one store run?

As many as you need. Each app can install one cart transform function per store, so we build one Function that handles every bundle rule, driven by product metafields.

Ready to build a store worth talking about?

Tell us where your store is today and where you want it to go. We reply within two working days with a clear next step.

Talk to us

Email us Start a project