
Case study ↓
Dog Heroes customers don't buy dog food. They describe a dog — its weight, its age, what it can and can't eat — and let the diet follow from there.
So the store had to behave less like a catalog and more like a nutritionist. A quiz turns each dog's profile into a caloric need, then into portions, a delivery cadence, and a price no fixed product could carry — fresh from the pantry or frozen, one dog or the whole pack, full or half a portion.
All of it ran on WooCommerce, on a custom application grown over almost a decade. Moving to Shopify Plus meant preserving every one of those behaviors — and Shopify, by default, does none of them. We'd have to rebuild the logic, not just the store.
"Our business isn't simple: a different diet for every dog, fresh and frozen, subscriptions that never sit still. Most people would have forced us into a template. Nebulab took the time to understand the whole thing and gave us a store that finally fits."
Marco LaganàFounder & President @ Dog HeroesOn most subscription stores, a product has a price. Dog Heroes couldn't work that way. What a customer pays depends on the dog's caloric need, the delivery frequency, the number of packs, and whether the food is from the pantry or frozen — a matrix that Shopify's fixed prices and Loop's (the subscription platform of choice) standard plans were never built to express.
So we made the quiz the pricing surface. It reads each dog's profile — weight, age, conditions — into a caloric requirement, converts that into portions, and resolves the exact price for that cadence and pack count. To do it, we held the full price logic inside Loop rather than fight Shopify's catalog, reconciling the fresh and frozen rules in a single place.
The result is a plan that fits one dog (or more!). A customer answers a handful of questions and sees a real number — the cost of feeding their dog, at their rhythm, in their format — instead of a menu of SKUs that never quite matched.

Behind the store sat on almost a decade of WooCommerce history — orders, subscriptions, and dog profiles layered in over years by different hands, some of it live, some long dead, much of it buried in plugins. Nothing recorded which data still mattered. Reopening on Shopify meant carrying the useful past and leaving the rest behind.
A big part of the project was to collaborate with Dog Heroes’ team to reverse-engineer the system and triage data and features meant to power the new Shopify Plus store. We then sequenced the cutover by what the business needed first: reopen new-customer acquisition, restore existing subscribers' portal access, and backfill years of historical orders last — active subscriptions ahead of paused, paused ahead of cancelled.
The store came back almost at once. New customers could subscribe on day one, existing owners regained self-service within days behind a brief "data still settling" notice, and the heavy archive filled in quietly afterward — no long blackout, and no gap a customer would feel.


The old setup tracked most customer behavior by hand — slow, patchy, and blind to most of what happened on site. Dog Heroes wanted modern, personalized campaigns, but its data model was unusually deep: dogs, plans, portions, and formats, all interlocking.
So we modeled that world natively in Shopify first — dogs and quiz options as metaobjects and metafields — then mirrored the same structure in Klaviyo as custom objects and events, fed by server-side tracking. Shopify stays the source of truth; a custom app we built pushes changes outward, making sure data is consistent on every platform.
Now a customer hears from Dog Heroes at the right moment — over email, WhatsApp, or a call — about the dog they actually own. And the support team leans on all of it with confidence: a complex platform made legible, and safe to touch.
The usual way to build an account portal this custom is a separate app — its own domain, front end, and styles to hold in sync. For a small team that's a second site to maintain and a codebase that drifts from the store. The hard part wasn't making it custom; it was making it theirs to keep.
So rather than stand up that separate app, we rendered the whole portal through the Shopify theme over an app proxy, in Liquid, backed by a lean Ruby on Rails service that handles subscription logic alone. No external database — every dog and plan lives in Shopify as the single source of truth — and the components flex enough for the team to restyle them and build landing pages without us.
Now an owner adds a dog, edits its plan, or buys a one-off item from a real product page, all in one place. What reads as a bespoke platform is Shopify underneath.
"The deadline was tight and the launch had to happen a very specific way, and instead of pushing back they matched our pace — evenings, weekends, whatever it took, right through the final stretch — and delivered it exactly as we asked."
Pierluigi ConsolandiFounder @ Dog Heroes