Website product upload cost in 2026: real prices
Real 2026 prices for filling an online store with products: 15–40 UAH per card, packages of 50–200 items, what drives the cost and how to prepare your Excel.
The store is live, the design is done, and the catalogue has twenty products and a handful of empty categories. Sound familiar? Filling a store with products is the least visible part of running it, and one of the most time-consuming. Here is what it costs on the Ukrainian market in 2026, what drives the price, and how to save money by preparing your data properly.
Market prices in 2026
We collected typical offers from freelancers and studios in Ukraine. The numbers are approximate, but they show the order of magnitude:
| Volume | Typical price |
|---|---|
| 50 products | 750–900 UAH |
| 100 products | 1,300–1,500 UAH |
| 200 products | 2,200–2,600 UAH |
| One product card | about 15–40 UAH |
| Product with generated photos | about 300 UAH |
The 15–40 UAH spread per card is not random. A card with “name, price, one photo” and a card with a dozen attributes, filters and SEO fields are different jobs, even though both are called “product upload”.
What drives the price
How much data goes into a card
The number of fields matters most. A minimal card is a name, price, category and photo. A complete card also has a description, attributes (brand, country, volume, colour, size), filter values, an SEO URL, meta title and meta description, related products and customer-group discounts.
If filters are empty, a buyer simply won’t find the product after filtering the catalogue by brand or volume. That’s why cutting corners on attributes is a bad idea.
Photos
Supplier photos are almost always inconsistent: different sizes, backgrounds and framing. Upload them as they are and the catalogue looks messy. Normalising them — cropping, white background, the same product scale — adds to the cost. Generating or heavily editing photos is a separate service, hence around 300 UAH per product.
Quality of the source data
A clean spreadsheet with codes, EANs and attributes in separate columns is one price. A link to a supplier’s website, a PDF price list or “the photos are in Telegram” is a different price, because the data has to be collected and cleaned first.
Platform and upload method
For small volumes, cards are filled in by hand in the admin panel. For hundreds of products, an import or prepared SQL is cheaper — but you need someone who understands the database structure of your CMS. In OpenCart, for example, one product is spread across several tables: the product itself, description, attributes, categories, filters, SEO URLs and discounts.
How to prepare your Excel sheet
A well-prepared sheet lowers the price and the number of mistakes. Here’s what it should include:
- SKU and EAN — so you don’t create a duplicate of a product already in the database.
- Name — exactly as it should appear on the site.
- Price and, if relevant, prices for different customer groups.
- Category — the exact category name on the site, not “somewhere around there”.
- Attributes in separate columns: brand, country, volume, scent, colour — each in its own column, not one comma-separated string.
- Description or a link to its source.
- Photos — links or file names that clearly match the SKU.
One batch, one sheet. Don’t mix new products and price updates in the same file: they are different operations and are easier to check separately.
How we do it
Every month we add products to, among others, an OpenCart store selling barber cosmetics — it already has more than 5,900 products. The process looks like this.
1. Check against the database
We take the sheet with a batch, for example 21 products, and check codes and EANs against what’s already on the site. Duplicates are caught here, not after publishing.
2. A complete card
We fill in attributes, filter values, SEO URLs and meta titles, link products to categories and set customer-group discounts.
3. One photo standard
All photos are brought to 1000×1000 pixels on a white background, with the product at about 70% of the frame height. The catalogue then looks consistent rather than like a collage.
4. Copy first, live site second
We prepare the SQL and run it on a copy of the database. Alongside the upload script we write a rollback script. Only after checking on the copy do we apply the changes to the live site and spot-check the cards.
5. Backup
Before any bulk change we take a backup. It takes minutes and saves hours of recovery if something goes wrong.
Where not to cut costs
The cheapest option — “we’ll upload it as is” — usually ends up costing more. Products without filters can’t be found, duplicates confuse buyers and search engines, and a bulk import without a backup can break a catalogue that took years to build. It’s better to pay a bit more per card and get a product that actually sells.
Estimate your volume
If you want to know what filling your own store would cost, open the calculator on our pricing page: enter the number of products and what needs to be done with each. If you already have a spreadsheet, send it over and we’ll give you an exact price once we’ve seen the data.