The Brand: $8M Revenue, Platform Friction
Brand: Lumina Beauty (anonymized for confidentiality) — a US-based clean beauty brand founded in 2016.
Starting position:
- Annual revenue: $8.2M (year 4)
- Growth rate: 18% YoY (flatlining)
- Platform: Magento Community Edition (self-hosted)
- Team: 3 full-time engineers + 1 DevOps engineer
- Problem: Platform wasn't the only issue, but it was blocking the business.
The founder, Rachel, had watched direct competitors grow 40–60% YoY while she was stuck at 18%. The problem wasn't demand—Lumina had strong brand loyalty (repeat rate: 42%). The problem was operational friction.
Magento was slow. Custom features took 8–12 weeks. Inventory syncing across channels (Sephora, ULTA, DTC) was manual. Tax compliance was nightmarish (different rules per state). And when customers asked "what's in this product," the answer required digging through a homegrown database.
Rachel's hypothesis: a platform with better developer velocity + built-in data structure could unlock growth.
She hired Tenten to evaluate Plus.
The Migration Decision
We spent 2 weeks auditing Lumina's current state:
Magento cost structure:
- Platform hosting: $45K/year
- 4 engineers: $600K/year (not fully utilized on core business)
- Custom integrations (Sephora API, ULTA inventory): $35K/year
- Tax/compliance consulting: $25K/year
- Security & PCI audits: $18K/year
- Total: $723K/year
Shopify Plus estimates:
- Platform fee: $30K/year (for $8M revenue)
- Implementation ($200K): ~$67K/year (amortized 3 years)
- Apps + integrations: $24K/year
- No separate engineering team needed (smaller footprint)
- Total: $121K/year
But the real driver: velocity.
A feature that took 8 weeks on Magento would take 2–3 weeks on Plus. Over 3 years, that 5-week delta per feature × 12 features/year = 60 weeks recovered (more than one engineer's time). That's $200K–$250K in recovered engineering capacity per year.
Decision: Migrate to Shopify Plus.
The Architecture: Metafields for Ingredient Transparency
Clean beauty's competitive advantage is transparency. Customers want to know exactly what's in each product, why, and whether it's certified (organic, cruelty-free, vegan).
On Magento, this data lived in a separate database table. Searching and filtering was manual. Tenten designed a new architecture.
Metafield structure for a product:
Product Metafields:
- full_ingredients (JSON array): Each ingredient + certifications
Example: { "ingredient": "jojoba oil", "benefit": "deep hydration", "certified": ["vegan", "cruelty_free"] }
- certifications (array): ["USDA Organic", "Fair Trade", "Cruelty Free"]
- shelf_life_months (number): 18
- storage_instructions (richtext): "Store in cool, dry place"
- pH_level (number): 5.5
- concentration_percent (number): For active ingredients, e.g., vitamin C at 15%
This simple structure enabled:
- Smart filtering — Customers can filter products by ingredient OR certification in real-time
- API-driven recommendations — A product recommendation engine matched customer allergies / preferences to ingredient profiles
- Content reuse — Blog posts auto-linked to products by ingredient (e.g., "Benefits of Jojoba Oil" links to 8 products containing jojoba)
- Wholesale portals — Sales reps could export ingredient profiles into spec sheets automatically
The implementation took 6 weeks (metafield design + data migration from legacy database + testing).
Cost: $45K. ROI: enabled $2M+ in new revenue streams (see below).
The Growth Playbook: Three Concurrent Initiatives
Once on Plus, Lumina launched three revenue drivers simultaneously:
Initiative 1: Subscription Service
Rachel noticed: 55% of customers reorder the same 3–4 products every 60–90 days.
On Magento, implementing subscriptions meant custom code + complex billing logic. On Plus, it was an afternoon to set up (using Rechargeable app).
Launch: Subscription tier → "Deliver every 60 days, 15% discount"
Results (month 1–6):
- 8% of customers converted to subscription
- Subscription cohort had 85% retention vs. 42% repeat rate on one-time purchases
- Monthly recurring revenue: $45K
By month 12, subscription was 22% of revenue and 35% of profit (higher margin than one-time).
Initiative 2: Ingredient-Matching Engine
Using the metafield architecture, Tenten built a custom app:
- Customers input their skin concerns + allergies
- AI (Claude API via Tenten) matches them to ideal products based on ingredient profiles
- Show product recommendations personalized by ingredient compatibility
Implementation: 8 weeks, $35K
Launch impact:
- 23% of site visitors engaged with the tool
- Conversion rate (tool users → purchase) jumped from 1.8% to 4.2%
- AOV from tool users: $142 vs. baseline $89 (+60%)
This single feature added $180K revenue in the first 6 months.
Initiative 3: Wholesale Channel
Previously, Lumina's wholesale was manual (email quotes, PDF spec sheets, manual invoicing).
Tenten built a Shopify Plus B2B portal:
- Retail partners (boutiques, spas) login with custom pricing
- Auto-generate spec sheets (ingredient + certifications + compliance docs)
- Tiered pricing: 1–10 units @ 40% off, 11–50 @ 45% off, 50+ @ 50% off
- Bulk order workflow + automated invoicing
Launch: Month 8 of migration
Results:
- First month: 15 accounts onboarded, $85K in orders
- By month 12: 120 accounts, $1.2M run rate (50% higher margin than D2C)
- Year 2: Wholesale was 28% of revenue
| Channel | Month 6 Revenue | Month 12 Revenue | Growth | Margin |
|---|---|---|---|---|
| D2C (one-time) | $2.8M | $4.1M | +46% | 60% |
| D2C (subscription) | $0.25M | $2.4M | +860% | 72% |
| Wholesale | $0 | $1.2M | N/A | 48% |
| Total | $3.05M | $7.7M | +152% | 62% |
The 18-Month Outcome
Revenue trajectory:
- Pre-migration (month 0): $8.2M annualized run rate
- Month 6: $10.4M (27% growth)
- Month 12: $13.8M (69% growth)
- Month 18: $18.5M (127% growth)
Margin improvement:
- Pre-migration: 52% gross margin
- Month 18: 61% gross margin (mix shift: higher-margin subscriptions + wholesale)
- Absolute gross profit grew 175%
Engineering velocity:
- Pre-Plus: 12 weeks per major feature
- Post-Plus: 3 weeks per major feature
- Features shipped in 18 months: 28 (would have been ~4 on Magento)
Team changes:
- Engineers reduced: 4 → 1.5 (one engineer left, one moved to product strategy)
- Freed engineering capacity: $300K annually
- Reinvested in: Product (ingredient-matching AI), marketing (affiliate program), operations
Platform cost as % of revenue:
- Pre-migration: 8.8% ($723K / $8.2M)
- Month 18: 1.2% ($222K / $18.5M)
What Surprised Us
-
Data quality matters more than platform — The biggest lever wasn't Shopify Plus itself; it was cleaning up product data and restructuring it as metafields. Once data was structured, every feature became easier to build.
-
Velocity compounds — At month 6, Rachel launched subscription. At month 12, ingredient matching. At month 18, wholesale. These features probably would have shipped 2–3 years apart on Magento. On Plus, she could run them concurrently.
-
Headless wasn't necessary — Lumina never built a custom headless frontend. Native Shopify Plus storefront + fast Liquid theme was sufficient. All the revenue growth came from features (subscription, B2B, recommendations), not from front-end customization.
-
Wholesale was the hidden gem — Rachel's original focus was D2C growth. Wholesale emerged as a surprise high-margin channel. B2B tools built into Plus made it viable; without them, it would have required 3+ months of custom development.
The Risks & Learnings
What almost broke the migration:
-
Data migration complexity — Customer purchase history and subscription data had to move correctly. One misalignment would have created billing errors. We spent 2 weeks on data validation.
-
Payment processing transition — Lumina's old Magento setup used a custom payment integration. Moving to Shopify Payments took negotiations with their payment processor. Cost: 1 week delay + $10K in setup fees.
-
Wholesale pricing logic — The B2B tiering structure (volume discounts) was custom. Getting this right required 2 rounds of testing with actual wholesale partners. Not a blocker, just time-consuming.
-
Team anxiety — Developers worried about learning Shopify (coming from Magento). Training took 4 weeks longer than planned. Lesson: budget for change management, not just platform migration.
The Economics: Should You Migrate?
Lumina's decision was ROI-positive immediately. But that's because:
- Magento hosting was expensive ($45K/year vs. Plus at $30K/year)
- They had high engineering costs ($600K) that Plus reduced
- Feature velocity was a real bottleneck — Major competitor who launched features 3x faster
- Revenue growth was possible — Strong brand + loyal base meant new features would drive sales
If Lumina had been:
- Flat revenue (not growing) — Migration would have failed
- Running WordPress + Woo — Migration wouldn't be worth it (simpler platform, lower migration cost)
- Already on Plus or SFCC — No ROI case exists
But for a $8M–$20M Magento or custom platform, Plus is often a 12–24 month payback.
How Tenten Helped Execute
Tenten's role:
- Audit (2 weeks): Assessed current platform, costs, and feature gaps
- Architecture design (3 weeks): Designed metafield structure and data model for Plus
- Migration execution (12 weeks): Data migration, testing, go-live support
- Post-launch features (ongoing): Subscription setup, ingredient-matching engine, B2B portal
- Monitoring & optimization (6+ months): Performance tuning, bug fixes, feature iterations
Total Tenten engagement: 12 months, $185K
Lumina's in-house cost: ~$200K (team time for data validation, testing, training)
Total migration cost: ~$385K
Payback: 1.2 months (from gross profit increase alone)
Article FAQ
Q1: How long did the actual migration take?
Data migration: 12 weeks. But Lumina operated on both platforms in parallel for 4 weeks (running Magento + Plus simultaneously for overlap testing). Actual cutover: 1 day. The 12-week period included data validation, testing, and risk mitigation.
Q2: Did they lose any revenue during the migration?
No, because of the parallel run strategy. The week of cutover, traffic dipped 3% (some customer confusion), but there were no sales losses. Email support volume spiked 40% (customers asking about the new store), but conversions remained flat.
Q3: What would have happened if they stayed on Magento?
Based on trajectory, they'd probably still be at $10M–$12M revenue in year 5 (same growth rate, 18% YoY). Wholesale channel would have required 2–3 months of custom development ($80K+), delaying launch. Subscription would have taken 4–6 weeks instead of 1 week. Three-year revenue difference: ~$15M (Plus vs. Magento).
Q4: Could a smaller brand ($3M–$5M) do the same migration?
Not worth it. Migration cost ($185K) is 4–6% of annual revenue for a $3M brand. Payback period extends to 2–3 years. Shopify Standard is sufficient under $10M (in most cases).
Q5: How much ongoing support do they need post-launch?
Lumina pays Tenten $8K/month for ongoing optimization, feature development, and performance monitoring. That's 1–2 days/week. Most of it is feature requests, not bug fixes (platform is stable).
Q6: What would you do differently if you could do it again?
Rachel says: "Start with metafield architecture design (not data migration). We spent 2 weeks cleaning data because the original Magento structure was messy. If we'd planned the clean metafield model first, data migration would have been 1 week instead of 2."
Q7: What's the most valuable feature Shopify Plus enabled?
Rachel: "The ingredient-matching engine. That single feature added $180K revenue and became our #1 customer acquisition driver (referred 12% of new customers). On Magento, we'd have needed 3 months to build it; on Plus, 8 weeks. By the time we'd have shipped it on Magento, competitors would have copied the idea."