All projects
PersonalShopify2026

Solora Mixly: Bundles & BOGO

Bundle pricing without inventing products.

A Shopify bundling app with frequently-bought-together, build-your-own and BOGO offers, priced by percentage, fixed amount off or fixed bundle price. No new products, variants or SKUs — a bundle is a rule evaluated against the cart.

1,100+

Tests

364,500

Fuzz pairs swept

3

Bundle types

Screens

Bundle offer on the product page
Bundle offer on the product page
Creating a bundle
Creating a bundle
Bundle discount at checkout
Bundle discount at checkout
Cart nudge toward the next offer
Cart nudge toward the next offer
Frequently bought together
Frequently bought together
Mix and match
Mix and match
Buy X get Y
Buy X get Y
Live preview of the cart nudge and checkout summary
Live preview of the cart nudge and checkout summary
Building a bundle in one screen
Building a bundle in one screen
Every bundle a product is in, with conflict check
Every bundle a product is in, with conflict check

Highlights

  • A differential fuzz test mirrors the storefront’s Liquid eligibility rules against the checkout allocator across 364,500 rule × cart pairs.
  • Bundles are rules evaluated against the cart, so no shadow products, variants or SKUs are ever created.
  • A build-time budget test fails the theme extension at 90% of Shopify’s 100KB Liquid ceiling, with caps on block count and per-locale files.

Stack

Next.jsShopify FunctionsLiquidPrismaVitest
Case study

The problem

A bundle is judged twice. The storefront decides what to advertise in Liquid, rendered inside the merchant’s theme; checkout decides what to actually grant, inside a Shopify Function compiled to WebAssembly. Two codebases, two languages, one set of rules — and when they drift apart the storefront promises a discount the checkout refuses.

01

Mirror one side against the other

liquid-mirror-sweep.test.ts reimplements the storefront’s eligibility decision and runs it against the checkout allocator over every combination of 500 generated offers and 729 synthetic carts — 364,500 rule × cart pairs, each independently recomputed and compared.

02

Let the sweep find the bug

It did. The storefront was advertising BOGO offers the Function would decline to grant — a silent disagreement no hand-written case had thought to construct, and the kind a merchant otherwise discovers through a support ticket about a missing discount.

03

Keep the extension inside its budget

The theme extension is checked at build time against Shopify’s 100KB Liquid limit at a 90% ceiling, a 30-block cap and per-locale file caps, so a translation added months from now fails CI rather than failing review.

Outcome

Three bundle types and three discount modes across roughly 21,800 lines of TypeScript, backed by more than 1,100 automated tests. Live on the Shopify App Store as Solora Mixly since 8 October 2026.