E-commerce and business

How much does an online store cost: what 24 measured OpenCart shops showed

The question «how much does a store cost» is a question about scope. On 31 July 2026 we took technical readings from 24 live shops on a single engine: catalogues from 76 cards to 116,841 URLs, first server response from 126 ms to a second and a half. A breakdown of the five cost multipliers on those numbers.

September 2, 2026
10 min read

The question «how much does an online store cost» sounds like a question about a figure. It is a question about scope, and the answer starts with your product export rather than with anyone's price list.

On 31 July 2026 we took technical readings from 24 live shops running OpenCart. One engine, the same single word on every home page. Here is the spread inside that sample.

Metric Lowest Highest
Catalogue size 76 product cards 116,841 URLs in the sitemap
First server response 126.3 ms 1,544.5 ms
Weight of the HTML page 103.2 KB 751.2 KB

The lightest shop in the sample holds 96 products in 21 categories — exactly 123 URLs in the sitemap and not a single duplicate. The largest catalogue we measured holds 115,456 product positions in a wholesale lingerie store. Both have a cart, a checkout and an admin panel. The work behind them differs by multiples, not by percentages.

What follows is the sum broken into parts. Five multipliers, and you can assess every one of them yourself before talking to any contractor.

Five multipliers of the price

Catalogue size

A hundred positions is one day of import. Several thousand means mapping the fields of your price file onto the fields of the engine, clearing duplicates and checking attributes across the whole catalogue. The distance between the bottom and the top of any range sits mostly here.

This is also where the most common estimation error hides. An owner names the number of models, while URLs in a shop are created at the level of size and colour. That is exactly how the measured lingerie catalogue ended up with 115,456 positions instead of a few thousand models.

Count your catalogue two ways and compare the results. In one wholesale shop from our sample the built-in search returned 5,830 products, while the sitemap returned 6,234 URLs for each of the two languages, 12,468 together. Both figures are correct; they count different things. How this grows into supplier work is on the page about supplier price file imports.

Size on its own does not make a shop slow. A measured catalogue of 54,302 products in 635 categories answers in 413.8 ms, and a heating equipment shop with 3,565 cards answers in 524.8 ms. What gets expensive is loading, not speed: tens of thousands of positions will not go through the admin panel, it times out, so you need a console import in batches with the database indexes revisited.

Number of integrations

A payment gateway and Nova Poshta in the checkout take roughly a day each. A feed for Rozetka takes around three working days. Two-way exchange with an accounting system takes about ten working days, because stock levels and statuses travel in both directions there.

Your own list converts into days almost linearly. Count it before the conversation: it is the fastest way to understand which order of magnitude you are in.

And that list is almost always longer than the owner thinks. In a shop selling irrigation systems, a real guest checkout on 1 August 2026 returned 6 delivery methods from two carriers and 3 payment methods — a «Delivery and payment» page proves none of that, it has to be verified with an order. In the heating equipment shop a single checkout carries monobank, cash on delivery, cash on receipt and a bank invoice for sole traders and VAT-registered companies. Nova Poshta itself we confirmed in 16 shops of the sample, either in the checkout or on the delivery page.

State of the content

Photos on a uniform background and attributes in separate fields save weeks. A catalogue where the specifications live as an image inside a PDF price list has to be taken apart by hand, and that is its own line in the estimate. It only becomes visible once someone opens your export, which is why any estimate made without the files comes out optimistic.

Design

A ready theme with colour and block settings holds the bottom of the range. Custom layouts for your brand add 5 to 10 working days of design and front-end work.

This is also the stage to fix a target page weight. Across our sample, on the same engine, HTML ranges from 103.2 to 751.2 KB — a sevenfold difference that sits in the theme and the number of modules switched on. What that costs after launch is in the breakdown about site speed.

Pace

A priority queue costs plus 25% and works under two conditions: the content is ready at the start, and approvals fit inside one working day. If those conditions do not hold, the surcharge speeds up nothing, and we say so before it is paid rather than after.

Modules that can move the whole estimate

By default we install OpenCart 4.x, the branch under active development. The event system was rewritten in version 4, and part of the Ukrainian modules — separate Nova Poshta builds, price aggregators, marketplace exports — still ships only for 3.x. In 13 of the 24 measured shops the core is pinned to 3.x for exactly this reason.

The practical conclusion: the integration list is walked through point by point before the work starts. If a critical module exists only for the old branch, the decision is made at the brief stage and written into the specification. What a build includes is on the page about an OpenCart store.

What the build price does not include

This is the part of the conversation after which people usually say «I thought that was included».

  • Domain and hosting. Registered in the client's name on purpose, so the access stays with them.
  • Payment acquiring. You sign the contract with the payment provider yourself: the money goes to your account.
  • Product copywriting and manual catalogue filling beyond the agreed volume.
  • Legal texts: offer, return conditions, privacy policy. A lawyer writes those.
  • Advertising after launch. A separate budget with no relation to the cost of development.

There is one more item people rarely plan for: who will work with the shop after launch. Prices and products are updated by your manager, through the admin panel or by an automatic import from the price file. That is why handover here means walking the admin panel with your person on a live order, from adding a product to printing a waybill, plus a written instruction for your processes. If there is nobody in-house and nobody planned, filling and support become a recurring cost rather than a one-off.

Renting a platform versus your own store

Each model has something it is chosen for, and that deserves an honest description.

The strength of renting is a fast start and technical upkeep on somebody else's side: updates, security, backups, module compatibility. On a marketplace you also get somebody else's traffic, since people go there to search for a product rather than to your domain.

The strength of your own store is that the code, the files and the database are yours, and the monthly fee and the per-order percentage disappear as a cost line. Another line appears in their place: hosting, domain, changes and whoever administers it.

Renting wins if you are testing a niche and do not yet know whether demand exists; if the assortment is small and stable; if nobody is going to administer a site. That is a fair reason to stay on a subscription, and we say it to clients in plain words.

Your own store wins when prices are calculated in ways a hosted storefront cannot handle: wholesale tiers, contract discounts, price per packaging multiple, a separate checkout for a VAT-registered company. That logic lives in code, not in settings. The same applies once the catalogue has grown and a specification filter becomes necessary.

A move is priced by URLs, not by the catalogue. In a marketplace-platform storefront we measured from the outside, the sitemap returned 8,358 URLs for 4,000 products and 170 categories: every page exists in two languages. Each of those URLs needs a row in the mapping table and a check after launch. How that works is on the page about migrating from Prom.

Why we publish no price list

Because for online stores a public figure would almost always be untrue. The spread at the top of this article is the explanation: 24 shops on one engine, first server response from 126.3 ms to a second and a half, page weight differing sevenfold. A single «from» figure for a sample like that misleads both the client whose work will cost less and the client whose work will cost more.

Instead of a price list, the order is this:

  1. A free review of the task, 1 to 3 working days. We look at the price export, the integration list and the state of the content.
  2. An estimate broken down by stage. An OpenCart store is delivered in 25 to 45 working days from the approval of the specification, across seven stages: brief and specification, prototype, design, build, catalogue import, integrations, testing and handover.
  3. A contract with a fixed sum, an invoice and an acceptance act. A 50% prepayment, two rounds of revisions at the design stage, a 30 calendar day warranty from the day the act is signed. Rights to the code and the materials pass to you after full payment.

If the review shows that staying on a platform and doing nothing is the better move for you right now, we say so in the first email.

Honest limits

An estimate by stages does not make a project cheaper; it makes it predictable. A deadline quoted before anyone has seen the catalogue is a wish, not a deadline.

The technical part has limits too. Sitemap duplicates are fixable and measurable: in a garden tool shop with 8,690 URLs we counted 33,493 entries, in a natural cosmetics shop 271 entries pointing at 116 unique URLs, and in a wholesale catalogue an outdated sitemap of 7,782 entries lived alongside the canonical one with only 2,755 unique URLs in it. All of that can be measured and repaired. Sales also depend on assortment, prices and the work of your managers, and development does not touch that half — nor does anyone guarantee search positions.

If you are pricing a store right now, start with four numbers: how many positions are in your price file, how many integrations are on your list, in what shape the specifications are stored, and who will administer the site after launch. With those answers any estimate becomes meaningful. If you would rather we took those numbers, the first review is free, takes 1 to 3 working days and commits you to nothing. We reply within two hours.

Tags

E-commerce

🤔Did you like the article?

Your opinion helps us create better content

Share with friends

Found something useful? 🚀

Help others learn about it - share the article on social networks

https://lionex.com.ua/blog/skilky-koshtuye-internet-magazyn-24-zamiry

💚 Thank you for helping us grow

Vladyslav Chystiakov

Пише про те, що робить руками: інтернет-магазини на OpenCart, застосунки на Next.js, інтеграції та швидкість сайтів. У статтях — заміри й перевірки, які читач може повторити на своєму проєкті, а не загальні поради. Комерційна розробка з 2015 року.

Frequently asked questions

Answers to common questions on the topic

Because a sample of 24 shops on one engine diverges by multiples: catalogues from 76 cards to 116,841 URLs in the sitemap, page weight from 103.2 to 751.2 KB. Any «from» figure quoted before someone has opened your price export and integration list would mislead both the client whose work costs less and the one whose work costs more. So first comes a free review of the task, 1 to 3 working days, then an estimate broken down by stage.

How many positions are in your price file, how many integrations are on your list, in what shape the specifications are stored — separate fields or text inside the description — and who will administer the site after launch. Count the catalogue two ways and compare: in a wholesale shop we measured, the built-in search returned 5,830 products while the sitemap returned 6,234 URLs for each of two languages. Both are correct; they count different things.

Domain, hosting and payment acquiring — we register those in your name so the access and the money stay yours. Product copywriting and manual catalogue filling beyond the agreed volume. Legal texts: offer, return conditions, privacy policy. Advertising after launch. Plan separately for who will update prices and products: with nobody in-house, filling and support become a recurring cost.

If you are testing a niche and do not know whether demand exists; if the assortment is small and stable; if nobody is going to administer a site. Your own store starts to win when prices are calculated in ways a hosted storefront cannot handle: wholesale tiers, contract discounts, price per packaging multiple, a separate checkout for a VAT-registered company. If the free review shows that moving is not worth it for you right now, we say so in the first email.

Get the best articles by email

Subscribe to our newsletter and receive useful tips, insights and news about web development, marketing and business.

We respect your privacy. You can unsubscribe at any time.