
Case study
One Dog, One Recipe: Rebuilding Dog Heroes on Shopify Plus
Dog Heroes customers don’t buy dog food. They describe their dog’s weight, its age, and what it can and can’t eat, and the diet follows from that.
So the store had to work 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. That price depends on whether the food comes from the pantry or the freezer, how many dogs are on the plan, and whether each one gets a full or half portion, so no fixed product could carry it.
All of it ran on a custom WooCommerce application built up over almost a decade. Shopify Plus does none of this by default, so the move meant rebuilding the logic along with the store.
industry
services
platform
"Our business isn't simple. Every dog gets a different diet, we sell fresh and frozen, and subscriptions change all the time. Most agencies would have forced us into a template. Nebulab took the time to understand the whole thing and built us a store that finally fits."
Marco LaganàFounder & President @ Dog HeroesA price that follows the dog, not the product.
On 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 comes from the pantry or the freezer. Shopify’s fixed prices can’t express that, and neither can the standard plans in Loop, the subscription platform Dog Heroes chose.
So we made the quiz set the price. It turns each dog’s weight, age, and conditions into a caloric requirement, converts that into portions, and calculates the exact price for the chosen cadence and pack count. We kept all the pricing logic in Loop instead of fighting Shopify’s catalog, so the fresh and frozen rules live in one place.
A customer answers a handful of questions and sees what it costs to feed their dog at the frequency and in the format they picked. The same flow works for one dog or several, and nobody has to choose from a menu of SKUs that never quite matched.

Years of history, moved without a missed meal.
Behind the store sat almost a decade of WooCommerce history. Different people had added orders, subscriptions, and dog profiles over the years. Some of that data was live, some was long dead, and much of it was buried in plugins. Nothing recorded which data still mattered, so moving to Shopify meant carrying over what was useful and leaving the rest behind.
We worked with the Dog Heroes team to reverse-engineer the old system and decide which data and features the new Shopify Plus store needed. Then we ordered the cutover by business priority. New-customer sign-ups came first, then portal access for existing subscribers, then years of historical orders. Within that backfill, active subscriptions went ahead of paused ones, and paused ones ahead of cancelled.
New customers could subscribe on launch day. Existing subscribers got self-service back within days, with a short “data still settling” notice in the meantime, and the archive filled in afterward. The store never went dark, and customers never hit a gap in their service.


Marketing that knows each dog by name.
The old setup tracked most customer behavior by hand. It was slow and incomplete, and it missed most of what happened on the site. Dog Heroes wanted personalized campaigns, but its data model was unusually deep, with dogs, plans, portions, and formats all linked to each other.
We modeled that data in Shopify first, storing dogs and quiz options as metaobjects and metafields. Then we mirrored the same structure in Klaviyo as custom objects and events, fed by server-side tracking. Shopify stays the source of truth, and a custom app we built pushes every change out so the data matches on every platform.
Campaigns now reach customers by email, WhatsApp, or phone, and each one is about the dog that customer actually owns. The support team relies on the same data, and they can change it without fear of breaking something elsewhere.
A custom app hiding inside plain Shopify.
An account portal this custom is usually a separate app with its own domain, front end, and styles to keep in sync. For a small team, that means a second site to maintain and a codebase that drifts away from the store. Making the portal custom was the easy part. Making it something the Dog Heroes team could maintain on their own was harder.
Instead, we rendered the whole portal in Liquid through the Shopify theme, using an app proxy. A lean Ruby on Rails service handles only the subscription logic. It has no database of its own, because every dog and plan lives in Shopify as the single source of truth. The components are flexible enough for the team to restyle them and build landing pages without us.
An owner can add a dog, edit its plan, or buy a one-off item from a real product page, all in one place. It looks like a bespoke platform, but it’s Shopify underneath.
"The deadline was tight and the launch had to happen in a very specific way. Instead of pushing back, they matched our pace, working evenings and weekends right through the final stretch, and delivered exactly what we asked for."
Pierluigi ConsolandiFounder @ Dog Heroes