OpenCart is an open-source PHP engine: catalog with filters, shopping cart, checkout, manager admin, price import. By default, we set 4.x — this is the branch that is being developed; if there is a module in your list of integrations, the assembly of which is not yet available for 4.x, we talk about it in the briefing and decide together whether to install 3.x or change the module to an analog one. On July 31, 2026, we took technical data from 24 live stores on OpenCart: from 76 cards in the furniture catalog to 116,841 addresses in the sitemap of the underwear store. Budget is driven by three things — catalog volume, number of integrations, and content status. Terms for a turnkey store — from 25 working days. We name the price after the free audit, when we see your price upload and the list of integrations.
You sell offline, and you accept orders in the messenger
Price, the warehouse and the manager who always asks for the address of the branch. The store transfers this work to the checkout: the buyer himself chooses a Nova Poshta branch from the list and pays by card, the manager receives a completed order, not a letter. That's not a conversion boost—it's a manual job removed from each order and one less step between the decision and the money.
We'll review your situation in a free audit
Scenario 2 of 4
Live on the marketplace and pay a commission on each sale
His store does not replace the platform, he adds a second channel. The catalog is uploaded to the feed, so the same items live simultaneously on the site and on Rozetka — from the same source of prices and balances. This is done in both garden equipment stores from our sample.
Scenario 3 of 4
Catalog from several hundred to several thousand items
Working area of the platform. In the measured sample, 3,565 cards of the heating equipment store give the first answer in 524.8 ms, 5,830 items of the wholesale catalog — in 506.9 ms. Next, a separate import and cache engineering begins, and this is already a neighboring page about a large catalog.
Scenario 4 of 4
Both retail and an account for a FOP or LLC are required
OpenCart keeps it in one checkout. In the heating equipment store, there are monobank, cash on delivery, cash on delivery and non-cash account for FOP and LLC with VAT; at the professional tool shop, we have counted ten payment methods, including installment payments from two banks.
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
Catalog volumeOne hundred items is one day of import. A few thousand — mapping fields, cleaning duplicates and checking attributes across the entire directory. This is where the difference between the lower and upper limit of the fork is.
Number of integrationsLiqPay and Nova Poshta are charged per day each. Exchange with 1C or BAS — about ten working days: this is a two-way exchange of balances and statuses, not a widget in the checkout.
Content statusPhotos on a uniform background and filled in specifications save weeks. The catalog, where the characteristics are in the PDF-price with a picture, has to be disassembled manually - this is a separate line of the estimate.
DesignA ready-made theme with customized colors and blocks keeps the bottom border. They add 5-10 working days for design and layout to their layouts under your brand.
Feeds on sitesFeeds to Rozetka or Prom takes about three working days, the feed to Google Merchant takes about the same. Without a correct product feed, there are no products in Google's product display at all: it's not "fewer impressions", it's zero impressions in this block.
Cases
Tasks and results in numbers — all metrics measured by us
official online store of garden tools
Task
Sell a line of garden equipment with detailed specifications and on-site sales in parallel with the site.
Solution
OpenCart 3.x with nginx, HTTP/2, HSTS. Eight payment methods and four carriers in the checkout, two language versions with x-default, export at the site.
Result
8,690 unique addresses in the site map: about 8,600 product cards and 81 category nodes. Measurement 07/31/2026 — HTTP 200, HSTS max-age 31536000, TTFB 789.4 ms, and these milliseconds include a 301 redirect to the language branch. A defect was found: the site map has 33,493 entries for the same 8,690 addresses.
retail online store of heating equipment
Task
Catalog of equipment with filters for comparison of characteristics. The checkout was to serve the individual and the FOP or LLC with VAT in the same way.
Solution
OpenCart 3, two language versions with hreflang and x-default. monobank, cash on delivery, cash on delivery, non-cash account for FOP and LLC with VAT, four delivery services.
Result
3,565 product cards in the live catalog — counted by standard OpenCart search: 35 pages of 100 items plus 65 for the last one. TTFB 524.8ms, full HTML load 662.7ms with 295.7KB of markup. Defect found: /sitemap.xml returns 200 with empty body.
online store of natural cosmetics on beekeeping products
Task
Keep the production story next to the product card and keep the page light.
Solution
Store on OpenCart: LiqPay, PrivatBank card, cash on delivery, Nova Poshta, two language versions, Store and Organization micro-markup.
Result
Fastest first response among 24 measured stores: 126.3ms, full HTML load 172.4ms at 196.3KB. The catalog is small - 81 product pages. At the same time, something else came out: the site map has 271 entries for 116 unique addresses, individual products are duplicated 2-4 times.
a niche store of dental materials with a content part
Task
Build a store of materials with a content part: the podcast audience had to enter the catalog, and the catalog had to remain compact.
Solution
OpenCart by Cloudflare, sitemap as a four-file index. Cash on delivery at the Nova Poshta branch and payment by card.
Result
96 products and 21 categories — exactly 123 addresses in the site map, not a single duplicate. TTFB 440.7ms at 103.2KB HTML, the second lightest page among the 24 stores measured. Found defect: there is no analytics counter on the site, conversions are not measured at all.
Process steps
Transparent stages with approval at every step
Total duration:25–45 days
1
Brief and terms of reference
3-5 working days
We analyze the assortment, the manager's processes and the list of payments and deliveries. The output is a TK, based on which the estimate is calculated and the work is accepted.
2
Directory prototype and structure
3-5 working days
Category tree, set of characteristics for the filter, product card fields, checkout steps. We agree with the design: redoing the structure after layout is expensive.
3
Design
5-9 working days
Home, category, card, cart, checkout. Here we fix the target weight of the page: in our sample on the same engine, HTML weighs from 103.2 to 751.2 KB.
4
Assembly of the store
7-11 working days
Theme layout, catalog, cart and checkout settings, admin roles, payment, shipping and return pages.
5
Import directory
3-7 working days
Mapping of price fields, test filling, comparison of the number of cards by two methods, schedule for updating prices and balances.
6
Integrations and analytics
2-4 working days
Checkout, shipping, GTM and GA4 with cart and purchase events, marketplace feed, JSON-LD micromarkup, sitemap.
7
Testing, transfer, launch
2-4 working days
End-to-end running of the order from the cart to the TTN, measurements of TTFB and HTML weights, passing the admin check with your manager, transfer of accesses.
Did not find your case?
Describe how it works on your side — we will tell you whether “Development of an online store on OpenCart” fits and what it means in your situation. No brief and no call: one question, one answer.
Technologies & integrations
What we build on and what it connects to
Stack
OpenCart 4.x is set by default
OpenCart 3.x — when you need a module that is not yet available under 4.x
PHP
MySQL
nginx
HTTP/2
HTTPS + HSTS
ocmod / vqmod
themes OCT Showcase, UniShop, chameleon, revolution
NeoSeo modules
Cloudflare
Integrations
LiqPay
WayForPay
Privat24
monobank "Purchase in installments"
Visa/Mastercard
non-cash payment with and without VAT
postpaid
Nova Poshta
Ukrposhta
Meest Express
Rozetka Delivery
Rozetka site
Google Tag Manager
GA4
Google Ads
Meta Pixel
Google Reviews
Binotel
eSputnik
Crisp / JivoSite
Google Sign-In
OpenCart vs. WooCommerce and SaaS builder
How this option differs from the alternative
WooCommerce / SaaS builderOur approach
Platform feeWooCommerce: None, but required plugins are mostly paid. SaaS: monthly subscription fee, grows with catalogno, just hosting and domain
Catalog from 8 thousand itemsWooCommerce: pulls on clean plugins and cache. SaaS: often hits the tariff limitpulls: 8,690 unique addresses in the garden equipment store, 54,302 products in the equipment store
Ukrainian payment and deliveryWooCommerce: Yes, partly due to modifications. SaaS: built in, no choiceready-made modules: Nova Poshta, LiqPay, WayForPay, monobank in parts
Access to code and databaseWooCommerce: Complete. SaaS: Nonecomplete, files and database are with you
Platform updateWooCommerce: Automatic, plugins break. SaaS: On the service sidehands, ocmod sometimes conflicts
What we need from you
We can't start without this — best to prepare in advance
1Price in CSV or XML — name, article number, price, balance, category and characteristics by which the buyer will filter.
2Photo of goods from 800 px on the long side, preferably on a uniform background.
3Access to hosting and domain — or consent to have hosting selected by us.
4Contracts with Nova Poshta and the payment provider: API keys are issued to you, not to the contractor.
5One person from your side with the right to say "yes" to the catalog and layouts.
6Payment, shipping, returns and warranty texts are legally your zone.
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
And if I already have 20,000 products, will OpenCart remove them?
Will pull out. The largest catalog we measured was 115,456 product items. Another measured store holds 54,302 products and 635 categories and gives the first server response in 413.8ms. Another thing is how to fill this volume. It won't work because of the admin, it will crash after a timeout: you need a console import in batches, revised MySQL indexes and a cache of categories. This is already a separate volume of work and a separate page.
How much does it cost and what does the amount depend on?
We do not keep a public price - it would almost always be false in stores. The amount is driven by three things: the volume of the catalog, the number of integrations, and the state of the content you give away. A catalog of up to a thousand items with a ready-made theme, payment and Nova Poshta and a catalog of several thousand items with its own design, feed to the marketplace and exchange with the accounting system are different works, and it is impossible to call them one number. Reset the price download and the list of integrations: after a free audit, you will receive an estimate with a breakdown by stages.
When will the store be ready?
25–45 working days from the approval of the TK. These are seven stages: brief and TOR 3-5 days, prototype 3-5, design 5-9, build 7-11, catalog import 3-7, integrations 2-4, testing and transfer 2-4. The accelerated queue with an additional payment of 25% shortens the deadline by about a third, but only if the content is ready at the start, and approvals are invested in one working day.
OpenCart 3 or OpenCart 4 - what to install now?
By default, we set 4.x: this is the branch that is being developed, and it is on it that the store will live in the coming years. We mention the nuance in the brief, and not at the stage of integrations: the four rewrote the event system, and some of the Ukrainian modules — individual Nova Poshta assemblies, price aggregators, uploading to sites — still only work under 3.x. 13 of the 24 stores we measured have the kernel fixed as 3.x because of this. Therefore, before starting, we go through your list of integrations item by item: everything we need has an assembly under 4.x — we install 4.x; some critical module exists only for three - we tell about it right away and decide together whether to install 3.x or change the module to an analog one. The version is fixed in the TOR before the start of work.
I have a price in 1C and in Excel - can it be adjusted?
Yes, via CSV or XML import. We map your fields to OpenCart fields: item, price, balance, category, attributes. The update is then scheduled — daily or hourly, depending on how fast the balances are moving. This is a one-way import, it is included in the work. Two-way exchange with 1C or BAS is a separate job, about ten working days.
Is it possible to sell simultaneously on the website and on Rozetka?
Yes. The catalog is uploaded to an XML feed that the site reads, prices and availability are pulled from the same source as on the site. It works in both garden equipment stores from our sample, and in one of them Rozetka Delivery is also connected as a delivery method. Feed - about three working days.
Will the store be fast on the phone?
Depends on page weight, not platform. On the same OpenCart, we measured 103.2 KB of HTML in a medical store and 751.2 KB in a wholesale lingerie catalog: the difference is huge, and it lies in the theme and the number of connected modules. Therefore, at the start, we turn off everything that does not work for sale, and measure TTFB before starting, and not after complaints.
Who will update prices and products after launch?
Your manager is through admin or automatic import from the price list. OpenCart admin is arranged simply: product, category, attribute, order. On the transfer, we go through it on a live order, from adding the product to printing the TTN. If your person is not there, we provide filling and support as a separate service.
Will the store get on Google?
No one guarantees a position, and we will not. We close the technical part: CNC without index.php, canonical, unique title, site map without duplicates, JSON-LD. The hole is most often right here. For the cosmetics store, we found 271 sitemap entries for 116 unique addresses, for the spice store, we found 3,971 entries for 590 addresses, and all 590 led to only one of the two language versions.
What is included in the warranty and how is the payment structured?
Advance payment of 50% at the start, the rest — after acceptance before the start. Two rounds of edits at the design stage are included in the cost if the edits are within the approved TOR. Thirty calendar days after acceptance, we correct errors free of charge on our part (warranty period according to the contract) - this does not cover new additions and consequences of independent changes in the code by third parties.
Send a price list and a list of payments and deliveries that you need.
In response, there is a catalog structure, an assessment of works by stages and a calendar plan with dates. If OpenCart is not suitable for your task, you will hear it in the first email.
From measured cases8,690 unique addresses in the site map: about 8,600 product cards and 81 category nodes
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.