Migrating your store from Shopify means taking three things away from someone else's platform: a directory of options, addresses that Google already knows, and a way to accept money. The first two are transferred predictably - the address structure there is typical, so redirects are described by rules. The third has to be collected anew: Shopify Payments does not work in Ukraine, and some of the paid applications do not have a direct analogue. Therefore, first a free audit with numbers, then the amount and term by stages. The move itself takes 18–35 working days.
the address structure is typical — a rule instead of a separate table
Why redirects are cheaper
115,456
Alternative catalog in our dimension
items per size/color, 08/01/2026
free store audit, 2-4 working days
Before the estimate
18–35
Term of moving
working days from approval of technical specifications
50%
Conditions
advance payment, two rounds of editing, 30-day warranty period
Free Shopify store audit
The reason for moving from Shopify is almost always financial or regulatory: the platform account, the cost of applications, the need for Ukrainian payment services and documents. The audit shows how much the move itself costs and what will have to be reproduced from the current logic. Until this is measured, any amount will be taken from the ceiling.
What we measure
Catalog volume and optionsHow many products and how many options. In Shopify, option is a basic entity, and there are usually many times more than the number of models; the estimate is calculated precisely in options.
Address structureHow many pages are in the format of collections and cards and how many of them were edited by hand. The structure is typical, so the majority of addresses are covered by several rules, but the exceptions are counted one by one.
Add-ons with subscriptionWhich of them hold business logic: subscriptions, discounts, reviews, upsells, feeds. For each, we decide whether it is a regular tool, a module or a refusal, and what you lose in the third case.
Payment flowHow money is accepted now and what is needed instead: LiqPay, WayForPay, monobank, non-cash account with VAT. Each method is a separate amount of setup and testing.
Metafields and additional card fieldsWhat lies in the metafields and what it becomes in the new engine: an attribute for a filter, a characteristic or a description text. It is cheaper to make this decision before import than after.
Speed to moveFirst server response, full load, HTML weight - we fix the numbers to so that after launch we compare measurements, not impressions.
Language versions and currenciesHow many there are and how they are arranged. If you sell to several countries, this affects both the structure of the new store and the site map.
Analytics and Search ConsoleAre GA4 and Tag Manager standing, or are rights confirmed in Search Console. No one, including us, can see the real list of addresses in the index without Search Console.
What you get
Document by the numbers: catalog and options, addresses, speed, HTML weight, language versions, connected payments and deliveries.
List of applications with a note that we play, what exactly and what we suggest to abandon.
Draft rules for redirection from the old address structure to the new one, plus a list of addresses that will have to be listed one by one.
A conversation for 30–40 minutes on the document, where we go through it point by point.
Timeline: 2-4 business days from when we receive the store address
Why is it free
Because the decision to leave Shopify comes down to money: how much does it cost to move versus what you're paying now. Giving numbers is faster than convincing. And separately: unintentionally, we either play it safe and overestimate the amount, or underestimate it and then rewrite the estimate — both options are more expensive than an audit. The document is yours regardless of the decision.
What's next
After the audit, we name the amount and term by stages with calendar dates, not the range. Next, a contract, an invoice, an act — we work officially, in particular with customers from the EU. If it becomes clear from the numbers that the move is not profitable for you now, we will say so: the cases when this is the case are listed below on the page.
Short form: your contact and site URL
Contract, act and 30-day warranty
Every project gets a written contract: scope, deadlines, amount, acceptance procedure. After delivery — act and invoice, then 30 calendar days of warranty.
Sole proprietor & bank transfer
The contractor is a registered sole proprietor. Payment by invoice with closing documents.
Rights & access — yours
Code, design and materials transfer to you after full payment. Domain, hosting, repository and analytics are registered to you.
Client portal instead of email chains
During the project you get access to a portal: contracts, invoices, acts and project status in one place.
European clients
Among our work — projects for Norway, Bulgaria, Moldova and Spain.
Verifiable numbers
Every case in the portfolio comes with a link to a live site and a technical measurement.
Audit first, then pricing
There is no price list on the site intentionally: the scope of the same work differs multiples between clients.
We say "no" when unsure
If the task isn't ours or the deadline is unrealistic — we tell you upfront.
What affects the price
Why two seemingly identical tasks are priced differently
Number of options, not productsThe platform counts you in goods, the estimate counts in options: one model in eight sizes and three colors is twenty-four lines with its own balance and price. In the underwear store we measured, there are 115,456 such lines.
Add-ons with subscriptionWe analyze each one separately. The standard tool costs setup, the module costs money and testing, and part of the logic has no analog at all: then we count the finishing touches and honestly say when the amount turns out to be more than the years of subscription.
Payment flowGathering again. You conclude the contracts, the keys are issued to you, on our part - settings and end-to-end processing of the order according to each method. Each method also adds a commission and line to the reconciliation, so "connect all" is not the goal here.
Language versions and currenciesEach language has its own set of addresses, a branch in the sitemap and hreflang with x-default. Fair margin: The translated storefront is not yet marketed, local payment, shipping and pricing are required.
Exceptions in addressesThe rule covers the typical structure of collections and cards. Expensive exceptions: pages whose addresses changed hands, promotional collections for campaigns, articles. You can see how many there are after analyzing the site map and Search Console.
Data status in the cardsMetafields do not have a direct counterpart: we decide for each one whether it becomes a filter attribute, characteristic or text. If the characteristics are sewn inside the description, the breakdown into attributes is a separate line of the estimate.
Who it's for
Situations where this service delivers results
Scenario 1 of 4
The platform's monthly bill has become a prominent expense item
The rate, app subscriptions, and transaction fees add up to the amount you see each month, and we don't. Therefore, we do not calculate your savings and do not promise them: at the audit, we name how much the move itself costs and what will have to be recreated, and you make the comparison with the current account. This is a more honest course of action than a beautiful payback table based on someone else's assumptions.
We'll review your situation in a free audit
Scenario 2 of 4
Ukrainian payment and documents are required for FOP or LLC
This is the most common reason people come to us. The place of online payment is occupied by LiqPay, WayForPay or monobank, followed by post-payment and a cashless account with and without VAT. What it looks like in a live store: in the catalog of heating equipment we measured, all four calculation methods stand in one checkout next to four delivery services.
Scenario 3 of 4
The catalog is based on options, not on individual products
One model in eight sizes and three colors is twenty-four lines with its own balance, price and barcode. This is where relocations break down: the connection option — the balance — the price creeps up when importing "as is". In the underwear store we measured, such a catalog grew to 115,456 items at the SKU level.
Scenario 4 of 4
You sell to several countries and want to manage the structure yourself
Language versions, currencies, and delivery terms are designed anew after moving — they do not arrive automatically. Instead, you get URLs, hreflang, and a sitemap for your own purposes, not for what the platform template allows.
What's included
Complete list of work and what you get as a result
Catalog uploads from Shopify: products, variants, collections, images, descriptions and metafields - so you don't have to do anything by hand
Transfer of options with preservation of the connection option — balance — price: it is this that breaks when importing "as is", and it is because of it that the buyer sees "in stock" where the product is not
Redirects as a rule from the structure of collections and cards to new addresses, the itemized table is only for exceptions: this keeps the budget lower than when moving from a self-written engine
Reorganization of the payment flow for Ukrainian services: LiqPay, WayForPay, monobank, cashless account with and without VAT — so that the retail buyer and the buyer pay in one checkout
Delivery by Ukrainian carriers with the choice of branch right at the checkout — the manager stops asking for the address in every correspondence
Analysis of applications with a subscription: for each solution - a regular tool, a module or a deliberate refusal, with a note of what exactly you lose
Technical SEO on the new store: CNC, canonical, unique title, sitemap without duplicates, hreflang with x-default for language versions
Analytics: GA4 and Tag Manager with cart and purchase events, authentication in Search Console - otherwise you won't see what's changed after the move
Switchover plan and scan error control for the first 30 days while the old store is still live
Transfer: access, written instructions, passing the administration with the manager on a live order
Terms of work: 50% advance payment, two rounds of edits at the design stage, warranty period of 30 calendar days after acceptance
When this service isn't right
What's not included — so there are no surprises at delivery
Transfer of subscriptions and saved payment data of buyers - they remain with the payment provider
Reproduction of the functionality of paid applications without a separate assessment
Promises to maintain items and traffic after the move
Post-launch advertising
Hosting, domain, acquiring
Process steps
Transparent stages with approval at every step
Total duration:18–35 days
1
Audit of the store and removal of numbers
2-4 working days
We count products and options, analyze the structure of addresses, list applications, remove the speed and weight of HTML before the move. The output is a document from which the estimate is calculated.
2
Catalog export and variant parsing
2-4 working days
We take the download from the admin, collect the lines of options in the model by handle and decide for each group: options inside the card or individual cards. Here we lay out the metafields.
3
Collection of the store and payment flow
7-14 working days
Clean build with categories, filter and checkout. In parallel, we connect payment and delivery and process the real order for each payment method.
4
Redirect rules and exceptions
2-4 working days
We describe the transition from the structure of collections and cards with rules at the server level, separately collect the exception table and run the entire list of addresses with response codes before switching.
5
Catalog transfer and reconciliation
3-6 working days
We fill in products, options, images and descriptions. After each event, we compare the number of options in the new store with the number in export — for each collection separately.
6
Switching and monitoring for 30 days
2-3 working days
We switch to a window with minimal traffic, the old store remains alive. Next, we look at the scanning errors in Search Console and select the addresses that did not fall into the rule.
Did not find your case?
Describe how it works on your side — we will tell you whether “Migrating your store from Shopify to your own platform” fits and what it means in your situation. No brief and no call: one question, one answer.
Cases
Tasks and results in numbers — all metrics measured by us
lingerie retail store with same size/color catalog is our external technical measurement, not a migration performed by us
Task
Calculate what the variant catalog becomes when each size and color becomes a separate address.
Solution
The catalog was calculated using two methods: a site map with 42 submaps with deduplication and a standard search engine. Separately, 150 random product addresses were checked for response codes.
Result
115,456 items at the SKU level, a two-method variance of 2.4%. Of the 150 addresses tested, 50 returned a 301, and all 50 led to a different position—a different size or color. On the scale of the catalog, this is about 37,000 addresses for which the buyer gets to the wrong place from the search. Measurement 01.08.2026.
heating equipment store — our external technical dimension
Task
Show how the payment flow has to be recreated after moving from a platform where payment was one button.
Solution
Checked out as a guest to the payment selection step and listed the payment methods and delivery service.
Result
In one checkout — monobank, cash on delivery, cash on delivery and non-cash account for FOP and LLC with VAT, four delivery services nearby. Catalog 3,565 cards, first response 524.8 ms at 295.7 KB HTML. Defect found: /sitemap.xml returns 200 with empty body. Measured on 07/31/2026.
a furniture store for the Spanish market is our external technical dimension
Task
Check how a small catalog feels on your own engine after entering the foreign market.
Solution
We compared the catalog with two sources, removed the speed and disassembled the marking of the main one.
Result
76 products, the discrepancy between the site map and standard search is zero. First response 348.2ms, full HTML load 515.6ms with 374KB of markup. A defect was found: there is no JSON-LD block on the main one - the markup that the SaaS platform theme gives out of the box is put here by hand. Measured on 07/31/2026.
store of a Bulgarian cosmetic brand on the EU market is our external technical dimension
Task
Take a look at the store with three language versions - the scenario of every move from the multi-currency storefront.
Solution
Checked language versions and hreflang, JSON-LD types and technical files.
Result
Three language versions bg/en/ru with hreflang, six JSON-LD types on master, first response 512.6ms at 220.4KB HTML, directory 23 items. Defects found: the sitemap and robots.txt return an empty body, there are no analytics counters - after moving, this is the first thing that is put back. Measured on 07/31/2026.
Technologies & integrations
What we build on and what it connects to
Stack
OpenCart 4.x - set by default; limitations: some of the Ukrainian modules have an assembly only for 3.x, so we go through the list of integrations before the start
PHP and MySQL — the code and database are yours; restrictions: updates and backups become your zone, on the platform it was done by the vendor
nginx — 301 redirects by rule; limitation: the rule does not cover addresses edited by hand, we add them to the list
HTTP/2 and HTTPS with HSTS — limitations: enable HSTS after checking all subdomains; we have already seen a certificate without www in our own dimension
hreflang with x-default - limitation: the language version without local payment and delivery does not open the market
Google Search Console - restrictions: the full list of addresses in the index is visible only there, and you confirm the rights
Integrations
LiqPay
WayForPay
Privat24
monobank
Visa/Mastercard
non-cash payment with and without VAT
postpaid
Nova Poshta
Ukrposhta
Meest Express
Google Tag Manager
GA4
Google Ads
Meta Pixel
Google Search Console
Own Store vs. Shopify
How this option differs from the alternative
ShopifyOur approach
Regular paymentmonthly rate, app subscriptions and transaction fees on tophosting and domain, the rest are one-time jobs
Payment in Ukrainethe own payment service does not work here, third-party gateways remainLiqPay, WayForPay, monobank, non-cash account with and without VAT
Product optionsoption as the basic essence, there is nothing to bypass this modelan option inside the card or a separate card - it's up to you
New featuresubscription app: works while you paya module or modification in the code is a one-time job
Updates and copieson the side of the platform, you don't have to do anythingyour zone: This is done by an administrator or contractor
Access to dataexport within the limits given by the platform, and while the subscription is activefiles and database at your disposal, download at any time
What we need from you
We can't start without this — best to prepare in advance
1Access to the admin for downloading the catalog or ready-made export with options - without options, the scope of the move cannot be estimated.
2List of installed applications with a note, which of them are critical for sales, and which were installed and forgotten.
3Access to the Search Console, if the rights are confirmed: it is there that you can see the addresses that the search knows, and not only those that are in the sitemap.
4DNS and domain accesses — switching is done there.
5Contracts with Ukrainian payment services and carriers: the keys are issued to you, not to the contractor.
6One person with the right to make decisions on the structure of the directory and to be in touch on the day of the switch.
If something is missing — let us know, we'll help you gather it or do it as a separate task.
FAQ
Most frequently asked questions — with concrete answers
Why are owners leaving Shopify?
The reasons we hear more often than others are: a monthly bill where the tariff, app subscriptions and transaction fees add up to a significant sum; the need to accept payment by Ukrainian services and issue documents for sole proprietorships and LLCs; the desire to have access to the code and database. We do not persuade anyone to move. At the audit, we calculate how much the move itself costs and what will have to be reproduced, and you make the comparison with your account.
Will redirects have to be done manually for each page?
Mostly not, and this is the main reason why moving from here is cheaper than moving from a self-written engine. In Shopify, the same card is available in two paths - /products/<handle> and /collections/<collection>/products/<handle>, with canonical standing for short. Therefore, the transition is described by three rules at the server level: collection per category, long path of the card to the new product address, short path to the same place. We list only exceptions one by one: pages whose addresses have changed hands, and promotional collections for campaigns. We take the list from the site map and Search Console and fill it with response codes even before switching.
What will happen to product options?
Moved as options inside the card or as separate cards - depending on how they are searched: shoe size people enter in the search, the shade of accessories - not. The technical trap here is the same: in the download, the first line of the product carries the name and description, and the following lines of the same product are variants with an empty Title field. Importing "as is" turns them into individual goods without names, and prices and balances creep up. Therefore, first we collect lines in the model by handle, then we divide them into options, and at the output we compare the number of options before and after each collection.
How will we accept payment after the move?
The payment flow is being rebuilt: Shopify Payments is not available in Ukraine. The place of online payment is occupied by LiqPay, WayForPay or monobank, next to it we put post-payment and a non-cash account for FOPs and LLCs with and without VAT. You conclude the contracts, the keys are issued to you - the contractor does not keep them. On our side, setup, end-to-end running of the real order by each method and display of payment conditions on the site. How many methods are really needed is a question of your segment: in a narrow B2B it can be one invoice with VAT, and ten logos in the footer will not add anything.
I have a dozen subscription apps - what will happen to them?
Divide into three piles. The first is what is standard in the new engine: discounts, coupons, bundled products, basic filters. The second is what is covered by the module: reviews, feeds on sites, advanced catalog search. The third is something that has no analogue: specific subscriptions, narrow calculators, external services with their own office. For the third time, we count the additions separately, and it happens that the amount turns out to be more than the years of subscription - then we say so, and not sell the move. Separately: customer subscriptions and saved payment data are not transferred in principle, they remain with the payment provider.
When can you turn off the old store?
Not on the day of switching is our direct recommendation, and it saves the most nerves. Keep Shopify alive for at least 30 days after the move and don't cancel early: after the paid period ends, the admin is closed and there's no way to re-extract the catalog export, order list or app settings. During these 30 days, we go through scanning errors in Search Console and select addresses that did not fall into the rule. When the list is clean, then cancel.
I sell to several countries - will this be preserved?
Will save, but not automatically. Language versions are redesigned: own addresses, hreflang with x-default, separate delivery terms and currency settings. The fair boundary here is this: the translated storefront is not yet an entry to the market - local payment, local delivery and local prices are required, the site closes only the first step. In the two stores we measured, this is done differently: the Spanish-speaking furniture store lives in one language with the correct hreflang, the Bulgarian cosmetic store keeps three versions of bg/en/ru. And it is in the second that the sitemap and robots.txt give an empty body — language branches for search are simply not declared.
How long does the move take and how much does it cost?
18-35 business days from TOR approval, the six-stage breakdown is above: audit 2-4 days, export and variant parsing 2-4, assembly with payment flow 7-14, redirects 2-4, catalog migration and reconciliation 3-6, switching and control 2-3. There is no price on the page on purpose, and this is not a way to avoid the answer: the amount is determined by your store - the number of options, the list of applications and how many calculation methods will have to be reassembled. To calculate this, we do a free audit for 2-4 working days, and already by its numbers we call the cost and term by stages with dates.
What about the contract and warranty?
We work officially: contract, invoice, act of completed works, including with customers from the EU. Advance payment of 50% at the start, the rest — after acceptance before switching. Two rounds of edits at the design stage are included in the cost if they are within the approved TOR. Thirty calendar days after acceptance, we correct errors free of charge on our part - this is the warranty period according to the contract, and it does not cover new additions and the consequences of independent changes in the code. Calculation in euros, hryvnias at the rate of the NBU on the day of the account, the amount named after the audit is valid for 14 days.
Give the address of the store on Shopify - let's start with a measurement, not an estimate
We will return in 2-4 working days with a document: how many products and options you have, which applications will have to be played, what with the payment flow and how many rules will close your addresses. Next - the amount and term by stages.
From measured cases115,456 items at the SKU level, a two-method variance of 2.4%
There is no price list on the site on purpose: the same work differs several times over between two clients, and a “from” figure explains nothing in that case. First a free audit — we count your pages, duplicates and speed — then we name the sum and the deadline and fix both in the contract.