The Via Pureza storefront: economics, Shopify → Hydrogen tech path, Brazilian integrations, and launch checklist (source).
Initial research
Tooling names and integration recommendations were collected from market research and trade press. Validate Shopify-app fit and pricing at the moment of integration — the ecosystem moves quickly.
Why D2C first
Highest-margin channel; you own the customer relationship, data, and experience.
| Metric | Typical |
|---|---|
| Gross margin on product | 60–75% (vs. 30–40% on wholesale) |
| CAC (paid/organic mix) | R$ 40–120 |
| AOV — skincare | R$ 80–180 |
| Repeat purchase rate (12 mo) | 25–40% for good skincare brands |
What makes D2C work in Brazil
- Pix — instant, zero payment-abandonment friction
- Parcelamento — 3x or 6x sem juros expected; pushes conversion
- WhatsApp — post-purchase support and abandoned-cart recovery; higher open rate than email
- Free-shipping threshold at 1.3–1.5× AOV — drives basket size
Challenges
- Organic traffic takes 6–18 months to build
- Beauty paid acquisition is competitive (high Meta + Google CPCs)
- Delivery-time expectations tightening (same-day SP, 2–5 days elsewhere)
Storefront platform: Shopify → Hydrogen
Recommendation: start on standard Shopify (Liquid/Dawn) for MVP, migrate to Hydrogen once bundles, quizzes, or subscriptions become core.
| Standard Shopify | Shopify Hydrogen | |
|---|---|---|
| Rendering | Server-rendered Liquid | React SSR + streaming via Remix |
| Customization | Theme editor + Liquid | Full React component control |
| Performance | Good | Excellent — edge deploy + streaming |
| Dev experience | Limited, proprietary | Modern: TypeScript, React, Vite |
| Time to launch | Days | Weeks |
| Maintenance | Low | Moderate |
| Best for | Simple catalog, standard flows | Custom UX, bundles, quizzes |
When to migrate: product finder / skin quiz, subscription / replenishment flows, bundle builders, heavy brand customization (animations, editorial pages), performance-critical mobile UX.
Hydrogen architecture
Built on Remix, deployed to Cloudflare Workers via Oxygen.
Browser
└── Cloudflare Edge (Oxygen)
└── Hydrogen / Remix (React SSR + streaming)
└── Shopify Storefront API (GraphQL)
└── Custom APIs (loyalty, CRM, ...)
app/routes/— Remix file-based routingstorefront.ts— typed Storefront API client- Caching:
CacheLongfor product pages,CacheNonefor cart
Cosmetics-specific features
| Feature | Options |
|---|---|
| Bundles & gift sets | Shopify Bundles (native, free), Bundler (mix-and-match); custom Hydrogen for kit builders. For gift sets with custom boxes, treat as separate SKU, not dynamic bundle — simpler inventory. |
| Subscriptions / replenishment | Recharge, Skio, Seal Subscriptions. Pause / skip is expected in BR. |
| Skin quiz / product finder | Custom in Hydrogen, or Octane AI / RevenueHunt. Responses fuel CRM segmentation. |
| Reviews | Judge.me (free tier sufficient at start), Loox (photo / video reviews). |
| Loyalty | Smile.io after PMF. Pre-PMF, WhatsApp punch card works. |
Brazilian-specific integrations
Payments
Shopify Payments is NOT available in Brazil. Use a Brazilian gateway:
| Method | Notes |
|---|---|
| Pix | Mandatory. Instant, zero consumer fee. Highest conversion. |
| Boleto bancário | 1–3 day confirmation — prefer “Boleto Flash” (confirms within 1h). |
| Cartão de crédito + parcelamento | Up to 12× sem juros. Non-negotiable for AOV > R$ 100. |
| Gateway | Notes |
|---|---|
| PagBrasil | Pix, boleto, parcelamento. Strong Shopify integration. Cross-border. |
| Mercado Pago | Widely trusted by consumers. Shopify app. |
| Pagar.me | Clean API; good for Hydrogen custom checkout. |
| PagBank | Strong brand recognition. |
Use one primary gateway for all methods — reconciliation is simpler.
NF-e (Nota Fiscal)
Required by law for all sales. Shopify does not generate NF-e natively.
- Bling — most popular small-e-commerce ERP in BR; Shopify integration, auto NF-e, inventory
- Tiny ERP — similar, good alternative
Set up Bling before your first sale. NF-e is not optional.
CRM / Email / WhatsApp
| Tool | Notes |
|---|---|
| Klaviyo | Best-in-class Shopify CRM. Cart abandonment, post-purchase, replenishment. |
| RD Station | Brazilian alternative. Lower cost, local support. |
| Z-API / Notificame Hub | WhatsApp API. Order confirmations + cart recovery. High ROI in Brazil. |
Performance & SEO
Cosmetics buyers in Brazil are 70%+ mobile — performance is conversion.
- Core Web Vitals targets: LCP < 2.5s, CLS < 0.1, INP < 200ms
- 4–8 product images per SKU, lazy-load all except hero, WebP via Shopify CDN
- Hydrogen + Oxygen provides global CDN out of the box
- URLs in Portuguese (
/produtos/hidratante-facial-vitamina-c) - Long-tail SEO (“hidratante facial para pele oleosa” > “hidratante”)
- Product schema + review-aggregate JSON-LD
- Editorial blog content is critical for organic in beauty
Tech stack summary
| Layer | Choice | Notes |
|---|---|---|
| Storefront | Shopify → Hydrogen (Remix + React) | Standard for MVP, migrate to Hydrogen post-PMF |
| Hosting | Oxygen (Cloudflare edge) | Built into Shopify |
| Payments | PagBrasil or Mercado Pago | Pix, boleto, parcelamento |
| Shipping | Melhor Envio | Shopify app |
| NF-e / ERP | Bling | Mandatory |
| Email / CRM | Klaviyo (or RD Station) | |
| Z-API or Notificame | High ROI in Brazil | |
| Reviews | Judge.me | Free tier sufficient at start |
| Loyalty | Smile.io | After PMF |
| Subscriptions | Recharge or Seal | When replenishment is validated |
| Analytics | Shopify Analytics + GA4 | Standard |
MVP launch checklist
- Shopify store (standard theme)
- Payment gateway (PagBrasil or Mercado Pago) — Pix + boleto + parcelamento
- Melhor Envio connected
- Bling connected (NF-e before first sale)
- Judge.me installed
- Klaviyo abandoned-cart + post-purchase flow
- Z-API or Notificame for WhatsApp order notifications
- Mobile PageSpeed > 70
- Product pages: images, PT-BR descriptions, INCI list
- Privacy + return policy (LGPD + Código de Defesa do Consumidor)
- SSL + custom domain