Kidoriman: Bundle Builder

Kidoriman is a clothing brand on Shopify Plus. It wanted a bundle where shoppers pick a pack size and the colour of each item, and the cart shows one discounted bundle line. I built it as a Shopify Function, a theme widget and a merchant admin, with no third-party bundle app.

Problem

Each bundle had to look like one line in the cart and the order, yet keep the real variants and SKUs for the warehouse. The brief also said the store must keep selling if any outside service went down, and a failure must never lower a price by mistake.

Solution

A widget on the product page adds one line per chosen item. A Cart Transform Function on Shopify's own infrastructure groups them into packs, picks the discount tier from the real quantity and merges them into a single bundle line. Configuration lives in metaobjects and metafields. A separate admin lets the merchant edit bundles with a live preview.

Key decisions

  1. Chose an app made only of a Shopify Function, with the widget as theme files

    Why The storefront keeps selling even if everything I host goes offline.

  2. Chose to compute the discount on the server from the real cart quantity

    Why Nothing sent by the browser can change the rate, so a tampered request cannot get a bigger discount.

  3. Chose a fail-safe default for the bundle variants

    Why If the Function is missing, the bundle is blocked instead of being sold at the wrong price.

  4. Chose tests that check money, not operations

    Why Prices stay identical across the product page, cart, checkout and order, and for any add-to-cart order.

Results

  • Prices matched from product page to cart, checkout and order in end-to-end tests.
  • The Function is active on the production Plus store.
  • Every bundle shows as one line, with the real variants kept inside it.
  • Pricing tests also pass for every add-to-cart order up to twelve items.
  • A merchant admin with a live widget preview, analytics and CSV import.

Have a similar task?

Send a link and a few lines about what you need. I reply within 1 business day with questions or a fixed estimate.

Get a fixed estimate
  • The estimate is the priceHours and total agreed before work starts. No re-estimates.
  • No prepayment on small projectsProjects up to 20 hours usually need none.
  • 30-day warrantyCritical bugs from my work get fixed free, even after that.

My gift: start a Shopify store for €1 for your first month

Open your store through my partner link and try Shopify for yourself. When you need a theme, an app or a migration, I'm one message away.

Claim the €1 month (opens in a new tab)

Affiliate link: I may earn a commission if you sign up. The offer is set by Shopify and may vary by region.