TuEstilo Moda: replatforming a 326-product store off WooCommerce
TuEstilo Moda is a family-owned Colombian store selling fashion, jewelry, and accessories that had outgrown its WordPress + WooCommerce install. We rebuilt it as a self-hosted headless stack — a Next.js storefront on a Medusa v2 backend, configured as a Colombia region with native COP pricing — and migrated the full catalog: 326 products and 1,666 images, one to one, with zero broken images. The new store is in final staging; the Wompi payment gateway is being wired before cutover, and platform fees on the new stack are $0/month.
At a glance
The real numbers.
| Metric | Number |
|---|---|
| Products migrated 1:1 (categories, descriptions, images, prices) | 326 |
| Product images re-hosted off the old Woo origin | 1,666 (307 MB, zero broken) |
| Curated gift-shopping collections (3 axes) | 12 — occasion ×6, material ×3, recipient ×3 |
| Spanish buyer-guide articles in the editorial hub | 13 |
| Homepage image bytes after optimization | −88% |
| Sitemap URLs (plus RSS feed) | 365 |
| Monthly platform fee on the new stack | $0 |
All numbers are first-hand — measured on our own build, not estimated.
On this page
The starting point
The store ran on WordPress + WooCommerce — a stack that works, but carries recurring weight: a plugin set that needs constant patching, a theme negotiating with those plugins, and page loads paying for all of it. The catalog itself was the healthy part: 326 published products with real photos, descriptions, prices in Colombian pesos, and an established category structure. The question was whether the next investment should be another WooCommerce refresh or a move to a stack the family owns outright — the same fork we walk through in our Next.js + Medusa vs Shopify guide.
The economics pushed toward owning. A hosted commerce platform charges a monthly subscription plus transaction fees that scale with sales — the exact math we lay out in the 5-year ownership model and in our OptimoWeb vs Shopify comparison. A self-hosted stack costs more to build once, then runs at infrastructure cost: platform fees of $0/month, no per-sale percentage.
The approach
We treated the migration as a one-time, verifiable data move, not a gradual sync. All 326 published products crossed with their categories, descriptions, images, and prices intact — checked one to one against the source store, not spot-checked. The step most replatforms skip is the images: product photos initially still point at the old WooCommerce origin, which works right up until the day that server is decommissioned and every photo breaks at once. We pulled all 1,666 product images off the old origin — about 307 MB — re-hosted them on the new stack, and rewrote every product record to the new URLs. Zero broken images; the old server can be switched off without the store noticing. (This is the same discipline we apply to migrations that must not lose SEO.)
Region and currency were configured natively rather than converted: the Medusa backend runs a Colombia region with prices stored in COP, so customers see real peso prices — no currency-conversion layer, no rounding drift.
Fair status: the store is in final staging. Payments run through Wompi, a Colombian payment gateway, and that integration is being wired before cutover. We publish the case study anyway because the migration and build numbers are already real — and because saying "in staging" plainly is cheaper than walking back "launched."
The stack
- Next.js storefront — the customer-facing store, Spanish-first for its Colombian customers.
- Medusa v2 backend — open-source Node commerce engine: products, categories, regions, carts, orders.
- Colombia region, native COP pricing — no currency conversion anywhere in the stack.
- Self-hosted images — all 1,666 product photos served from the new stack with long-lived cache headers.
- Wompi (Colombian payment gateway) — integration in progress ahead of cutover.
- Self-hosted infrastructure — the same managed hosting platform our other builds run on.
What shipped
A migrated catalog is not a store — findability and trust are. Beyond the 1:1 migration, the new stack shipped with merchandising and content built in, following the same playbook we sell as headless e-commerce and AI-era SEO services:
- On-site product search using Medusa’s native query — results come from the live catalog, not a bolted-on index.
- Three curated gift-shopping axes pulling real catalog products: by occasion (6 collections), by material (3), and by recipient (3) — twelve landing collections a shopper or a search engine can enter through.
- A 13-article Spanish buyer-guide editorial hub — sizing, materials, care — feeding internal links into the catalog.
- Trust and policy pages: shipping, and returns written to Colombia’s derecho de retracto consumer-withdrawal right, not boilerplate.
- A full entity graph: OnlineStore/Organization root node, Product/Offer markup per product, FAQPage, and Speakable — the structure that makes a store citable, as covered in our AI-era SEO guide.
- Image optimization that cut homepage image bytes by 88%, plus a 365-URL sitemap and RSS feed.
The trade-off, stated plainly: headless is not a free lunch. Medusa needs real operations — a database, migrations, a Node process under management — where a hosted platform needs a credit card. For a store the family intends to run for years, the ownership math wins, but only because someone competent operates the stack. That pattern — and when we would tell a store owner to stay put — is scoped per project on our pricing page, and the vertical context lives on our e-commerce & retail industry page. If your current site is a builder rather than WooCommerce, the same fork is mapped in OptimoWeb vs Wix.
Outcomes
What this delivered — plainly.
- 326 published products migrated 1:1 — categories, descriptions, images, and COP prices verified against the source store
- 1,666 product images (307 MB) re-hosted off the old WooCommerce origin — zero broken images, legacy server safe to decommission
- Native COP pricing via a Medusa Colombia region — no currency-conversion layer
- On-site search, 12 curated gift collections across 3 axes, and a 13-article Spanish buyer-guide hub, all pulling real catalog data
- Full entity graph: OnlineStore/Organization root, Product/Offer, FAQPage, Speakable; 365-URL sitemap + RSS
- Homepage image bytes reduced 88%
- Platform fees: $0/month on the new stack, vs a SaaS platform subscription plus transaction fees
- In final staging — Wompi (Colombian gateway) payment integration being wired before cutover
Questions
FAQ
Is TuEstilo Moda a client project?
It is family-owned — run within the OptimoWeb household — which is exactly why it works as a case study: we can publish every real number without waiting on client permission, and every pattern we now offer commerce clients was debugged here first on a live catalog.
Why does re-hosting the product images matter so much?
Because replatformed stores commonly keep loading images from the old site’s server. Everything looks fine until that old hosting is cancelled — then every product photo breaks at once. Moving all 1,666 images (307 MB) onto the new stack before cutover means the old origin can be shut down safely.
Is the store live?
It is in final staging. The catalog, storefront, search, gift collections, editorial hub, and policy pages are built and verified; the Wompi payment integration (Colombia’s local gateway) is being wired before the public cutover. We would rather say that plainly than claim a launch.
What does a WooCommerce-to-Medusa migration involve?
Structured export and import of products, categories, descriptions, and prices; downloading and re-hosting every image with URL rewrites; building the storefront; configuring region, currency, shipping, and payments; and a verification pass checking the new store against the old one item by item.
Would the same approach handle a bigger catalog?
Yes — the migration is scripted, so the difference between 326 and 3,000 products is runtime, not method. Verification effort scales with catalog complexity (variants, bundles), which we scope up front.
Thinking about leaving your commerce platform?
We will run your actual numbers — subscription, transaction fees, and build cost — and tell you plainly whether owning your store wins, or whether you should stay put.