Juice Plus

Keeping subscription and one-time carts separate across 15 Juice Plus stores

A metafield-driven cart rule that stops subscription and one-time products mixing in the same cart — rolled out across all 15 of Juice Plus's global Shopify stores.

Juice Plus storefront
Client
Juice Plus
Industry
Health and nutrition
Timeline
Migration project
Services
Replatforming and migration, Custom Shopify build, Cart and checkout logic

The challenge

Juice Plus sells both subscription products and one-time purchases. After moving to Shopify, nothing stopped a shopper putting both types in one cart — which their billing and fulfilment can't process cleanly. A one-time item and a subscription item must never share a cart, across every one of their 15 global stores.

Juice Plus runs 15 storefronts worldwide. They came to us moving off a bespoke, self-built commerce platform and onto Shopify — a big migration for a brand that sells the same catalogue in many markets at once.

The migration went in fine. But Shopify’s cart surfaced a problem their old custom platform used to handle quietly.

The problem the migration surfaced

Juice Plus’s catalogue mixes two very different purchase types: subscription products that bill on a recurring schedule, and one-time purchases. On the new Shopify setup, a single cart could happily hold both at once — and that breaks. A cart with a subscription line and a one-time line can’t be billed or fulfilled cleanly. The rule the business needed was simple to state and easy to get wrong: a one-time product and a subscription product must never be in the same cart.

And whatever we built had to behave identically across all 15 stores, each with its own products and market.

First attempt: matching on the variant name

Our first version decided a product’s purchase type from its variant name — reading the naming to tell a subscription apart from a one-time item, then blocking the combination that shouldn’t happen.

It worked for the obvious cases. But variant names are just text, and across a catalogue this size other products reused similar naming for unrelated reasons. That created false conflicts — the rule mis-reading products it was never meant to touch. Leaning on a naming convention made the whole thing fragile: every new product was a chance for an accidental clash.

The fix: a variant metafield

So we moved the decision off the variant name and onto an explicit metafield. Instead of guessing a product’s purchase type from how it happens to be named, each product carries a clear, intentional flag that says exactly what it is — subscription or one-time. The cart rule reads that metafield and nothing else.

That one change fixed everything the first approach struggled with:

  • No more naming coincidences. The rule only looks at a deliberate flag, so unrelated products can never trip it.
  • Anyone can understand it. A merchant can look at a product and see its purchase type — it is data, not a hidden convention.
  • It scales. New products just get the flag set correctly; there is nothing to conflict with.

The result

One small, deliberate mechanism now keeps every cart to a single purchase type — automatically, and the same way in every market. A migration risk became a quiet piece of infrastructure running across all 15 global stores, and the team stopped having to think about it. Exactly the kind of simple, understandable custom work that makes a big operation easier to run.

A subscription product and a one-time product in the same cart — checkout stays disabled until one is removed.
A subscription product and a one-time product in the same cart — checkout stays disabled until one is removed.

Next case study

Live PIN-code serviceability checks at checkout for Headphone Zone

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