Dolya tactical and security gear ecommerce project by STAGEM

Custom CMS Migration

Custom CMS Migration

B2B/B2C eCommerce

B2B/B2C eCommerce

SEO Migration

SEO Migration

Dolya & Co. LTD — Securing Communications, Empowering Critical Infrastructure

Client

Dolya, Ukraine

Project timeline

2024-2025

Dolya is a Ukrainian platform for professional radio communication systems, serving both B2C buyers and B2B enterprise clients — ministries, infrastructure facilities, and operators across 13 industries from aviation to crisis communications. Motorola platinum partner with 2,000+ SKUs across major radio communication brands. The challenge: migrate from Evolution CMS — a custom CMS implementation with no off-the-shelf migration tools — to Magento 2.4.7. We led the full project: manual data migration, custom B2B portal, dual B2B/B2C setup, and a zero-downtime cutover. Hyvä migration is in progress now as the next performance phase.

The challenge

Dolya came to us in November 2024 through a referral from F-ONE Ukraine — another full migration we'd shipped earlier in the year. The brief was clear, but the technical reality was anything but.

The source platform was Evolution CMS — an open-source PHP CMS originally designed for content sites, not eCommerce. For Dolya's scale and complexity, this meant years of custom code stacked on top of a CMS that was never built for what it was being asked to do:

  • 2,000+ SKUs across professional radio communication equipment from major brands — Motorola at platinum-partner level, plus other certified radio communication vendors

  • B2B + B2C operations in one platform, with very different buyer journeys: B2C consumers ordering single units vs. ministries placing contract-scale orders

  • 13 industries served — aviation, mining, construction, manufacturing, hospitality, energy & utilities, housing & utilities, crisis communications, medicine & healthcare, oil & gas, retail, consumer electronics, transport & logistics, tourism

  • Years of SEO equity built around Motorola-related keywords, Ukrainian radio communication terms, and industry-specific search traffic

Every category of issue you'd expect from a custom-coded CMS at this scale was present at once:

  • Performance — slow page loads under a 2,000-SKU catalog

  • Security — custom code accumulated over years with no formal audit

  • Admin overhead — content management painful for the team, manual processes for tasks Magento handles natively

  • Migration complexity — no Evolution CMS → Magento 2 migration tool exists. Every product, every category, every customer had to be mapped and moved manually

  • No path forward — Evolution CMS wasn't going to grow into what Dolya needed to be

The team came in already knowing they wanted Magento 2 — they'd seen it work for similar businesses. The mandate: migrate the data, build the B2B portal, preserve the SEO equity, and ship without breaking an active business serving government and enterprise contracts.

The solution

We led the full project over 6–8 months, with Dolya's internal team and project manager handling business operations and our team executing the entire technical migration end-to-end. The work split into five phases — four to launch in April 2025, and a fifth Hyvä migration phase now in active progress.

Phase 1 — Discovery, Schema Mapping & Architecture (November 2024 — December 2024)

This was the longest discovery phase of any migration we've shipped. There's no documented schema for a custom Evolution CMS implementation — every table, every field, every relationship had to be reverse-engineered before we could move a single product.

Key decisions resolved in this phase:

  • Custom CMS → Magento 2 schema mapping — every Evolution CMS entity (products, categories, customers, content, vendor data, industry data) mapped to its Magento 2 equivalent, attribute by attribute

  • B2B/B2C dual model — single Magento installation with customer-group-based logic for B2B/B2C segmentation, with shared catalog and differentiated pricing/portal access

  • Customer groups — Guest, B2C Registered, B2B Customer, with custom pricing rules per group

  • Industry & vendor taxonomy — 13 industries and the full vendor catalog mapped as Magento attribute structures so they could be filtered, navigated, and indexed for SEO

  • URL preservation strategy — every Evolution CMS URL identified, mapped to the new Magento 2 URL, ready for 301 redirects

  • What to migrate vs what to skip — products, customers, and content: yes. Order history: no (legacy system). Customer passwords: no (forced reset for security after cross-platform migration)

The architectural decisions in this phase determined how the rest of the project would run. No off-the-shelf migration tool was used — the migration was custom from line one.

Phase 2 — Magento 2.4.7 Build & Frontend Development (December 2024 — February 2025)

The new build was deployed to Hetzner Cloud VPS — chosen for cost-performance ratio, European data residency, and the bandwidth profile a 2,000-SKU multilingual store needs.

Core technical decisions:

  • Magento 2.4.7 — current stable release at the time, full PHP 8.x compatibility, supported through Adobe's standard lifecycle

  • Custom Luma-based theme — fully custom frontend development on Luma's component foundation, designed for both B2C product browsing and B2B procurement workflows

  • OpenSearch for catalog search and faceted filtering across 2,000 SKUs with vendor, industry, frequency, and certification attributes

  • PHP 8.x, MariaDB, Redis, Varnish standard production stack

Frontend development happened in parallel with the migration script work — the team designing the new UX, building component-level patterns for vendor pages, industry pages, and the B2B portal.

Phase 3 — Custom Migration Scripts & Data Move (February 2025 — March 2025)

This was the phase that turned the schema mapping from Phase 1 into running code. Custom migration scripts were written specifically for Dolya's Evolution CMS schema:

  • Products — full migration of 2,000+ SKUs with attributes, categories, vendor associations, industry tags, and media

  • Categories — hierarchical category tree rebuilt in Magento with original navigation preserved

  • Customers — accounts migrated without passwords (forced reset on first login for security)

  • Content (CMS pages, blog posts, vendor pages, industry pages) — migrated with content structure preserved for SEO

  • Order history — not migrated (legacy system left behind for historical reference)

  • URL mapping — ~3,000 301 redirects generated from Evolution CMS URLs to new Magento URLs, covering every product, category, content page, and vendor/industry landing page

Every migration script ran first on staging, with validation against production data before the next iteration. Edge cases (orphan attributes, malformed legacy data, missing references) were handled in script rather than left for post-launch cleanup.

Phase 4 — B2B Portal, Integrations & Launch (March 2025 — April 2025)

This phase built the platform Dolya actually needed — not just "Magento 2 with their data in it."

B2B-specific functionality:

  • Custom B2B customer portal built from scratch — order history, saved product lists, recurring procurement support, account-level user roles

  • Tier pricing — volume-based discounts for B2B customers

  • Customer-specific pricing — negotiated prices visible only to the specific customer group / account

  • B2B vs B2C catalog logic — same catalog visible to both, with differentiated pricing and portal features by login state

Vendor & industry navigation:

  • Dedicated vendor pages (Motorola, plus other certified radio communication brands)

  • Industry landing pages for all 13 verticals — each indexable for industry-specific search traffic ("rescue services radio", "mining communication systems", etc.)

CRM integration:

  • Master CRM integrated for B2B lead routing, customer data sync, and the procurement pipeline that B2B operations depend on

Inventory management:

  • Standard Magento inventory in production at launch; a custom Inventory Management module is in development now to handle Dolya's specific multi-source logic

Payment & delivery:

  • Bank transfer as primary payment method (B2B/government contracts often require formal proforma billing rather than card payments)

  • Nova Poshta integration for parcel delivery

  • Ukrposhta integration for state-network delivery

  • Own delivery option for enterprise/contract orders requiring direct logistics

Multilingual setup:

  • Three languages — Ukrainian, Russian, English — with hreflang configured for correct cross-language SEO signals

SEO migration:

  • ~3,000 301 redirects deployed at cutover

  • Hreflang implementation across UA/RU/EN

  • Schema.org markup — Product, Organization, BreadcrumbList

  • Regenerated multilingual sitemap

  • Metadata preserved or improved during migration

The cutover was effectively zero-downtime — DNS switch and the store was live on Magento 2.4.7 from one moment to the next. For a custom CMS migration of this complexity, that's a meaningful technical outcome.

Phase 5 — Hyvä Migration (In Progress)

Active right now. We're rebuilding the frontend on Hyvä Theme to push performance further as the catalog grows and traffic scales. Hyvä strips out the Luma frontend stack entirely, replacing it with a leaner Tailwind/AlpineJS architecture that delivers measurably better Core Web Vitals — particularly on mobile.

Preview environment is live at the staging URL while final implementation work continues.

Key Deliverables

Evolution CMS → Magento 2.4.7 full migration with manual schema mapping

  • Custom data migration scripts (no off-the-shelf tools available)

  • ~3,000 301 redirects for SEO equity preservation

  • Custom B2B customer portal — order history, saved lists, account-level access

  • B2B/B2C dual segmentation with customer groups, tier pricing, customer-specific pricing

  • 13 industry landing pages — each indexable for vertical-specific search

  • Vendor catalog architecture with brand-level pages (Motorola, partner brands)

  • Trilingual setup (Ukrainian + Russian + English) with hreflang

  • Master CRM integration for B2B lead routing

  • Payment integrations — Bank Transfer (primary for B2B/government)

  • Delivery integrations — Nova Poshta, Ukrposhta, own delivery

  • Custom Luma-based frontend (Phase 1–4)

  • Hyvä Theme migration (Phase 5, in progress)

  • OpenSearch across 2,000+ SKUs with vendor/industry/spec faceting

  • Schema.org markup: Product, Organization, BreadcrumbList

  • Effectively zero-downtime cutover

Evolution CMS → Magento 2.4.7 full migration with manual schema mapping

  • Custom data migration scripts (no off-the-shelf tools available)

  • ~3,000 301 redirects for SEO equity preservation

  • Custom B2B customer portal — order history, saved lists, account-level access

  • B2B/B2C dual segmentation with customer groups, tier pricing, customer-specific pricing

  • 13 industry landing pages — each indexable for vertical-specific search

  • Vendor catalog architecture with brand-level pages (Motorola, partner brands)

  • Trilingual setup (Ukrainian + Russian + English) with hreflang

  • Master CRM integration for B2B lead routing

  • Payment integrations — Bank Transfer (primary for B2B/government)

  • Delivery integrations — Nova Poshta, Ukrposhta, own delivery

  • Custom Luma-based frontend (Phase 1–4)

  • Hyvä Theme migration (Phase 5, in progress)

  • OpenSearch across 2,000+ SKUs with vendor/industry/spec faceting

  • Schema.org markup: Product, Organization, BreadcrumbList

  • Effectively zero-downtime cutover

Results

Dolya launched on Magento 2.4.7 in April 2025 and is now performing under real-world load — across both B2B procurement traffic and B2C buyer traffic, in three languages, across desktop and mobile.

Real user data — Chrome UX Report (last 28 days):

✓ Core Web Vitals — passed on desktop AND mobile

Desktop:

  • LCP 1.0s — good

  • INP 36ms — good

  • CLS 0.08 — good

  • FCP 0.9s — good

  • TTFB 0.6s — good

Mobile:

  • LCP 1.3s — good

  • INP 93ms — good

  • CLS 0 — perfect

Hitting passed Core Web Vitals on both desktop AND mobile for a 2,000-SKU dual B2B/B2C trilingual platform is a meaningful technical result. Most stores at this scale pass only one platform — usually desktop, with mobile lagging. Dolya passes both, and the upcoming Hyvä migration is positioned to widen that gap further.

Operational outcome:

  • Reduced manual content management overhead vs. the legacy Evolution CMS — the team handles catalog updates, vendor pages, and content directly in Magento admin without the workarounds the old system required

  • SEO equity preserved through ~3,000 redirects — no traffic loss on the cutover


Technologies & Tools

Magento 2.4.7 (migrated from Evolution CMS)

  • Custom Luma-based theme (Phase 1–4)

  • Hyvä Theme (Phase 5, in progress)

  • PHP 8.x

  • MariaDB

  • OpenSearch

  • Varnish (Full Page Cache)

  • Redis (session & cache)

  • Hetzner Cloud VPS hosting

  • Custom Evolution CMS → Magento 2 migration scripts

  • Custom Magento 2 modules: B2B customer portal, customer-group pricing logic

  • Master CRM integration

  • Nova Poshta + Ukrposhta + custom delivery integrations

  • Bank Transfer payment workflow (B2B/proforma)

  • Hreflang configuration (UA / RU / EN)

  • Schema.org: Product, Organization, BreadcrumbList

  • WebP image optimization, lazy loading, critical CSS

  • Custom Inventory Management module (in development)

A custom CMS migration most agencies would refuse — manual schema mapping from Evolution CMS to Magento 2.4.7, B2B/B2C dual setup, 3,000 SEO redirects, and passed Core Web Vitals on both desktop and mobile. Hyvä migration is next.

A custom CMS migration most agencies would refuse — manual schema mapping from Evolution CMS to Magento 2.4.7, B2B/B2C dual setup, 3,000 SEO redirects, and passed Core Web Vitals on both desktop and mobile. Hyvä migration is next.