• Online Stores · OpenCart 4.x by default

Online store of underwear and clothes: sizes, colors, returns

The development of an online clothing and underwear store rests on one design decision: size and color are separate products or options inside the model card. It depends on the number of pages, the import scheme and how the store calculates balances. In the lingerie store we measured, each combination is listed as a separate item — the catalog contains 115,456 product addresses in 129 categories and 334 brands. The same range of options would give several thousand pages. Therefore, first we calculate your price, then we talk about the term and amount.

See how it works
Price
after a free audit
Guarantee
30 days after project sign-off
Retail catalog of underwear, our measurement 08/01/2026
115,456 product items, 129 categories, 334 brands
after a free audit
Price
30
Guarantee

days after project sign-off

115,456
Retail catalog of underwear, our measurement 08/01/2026

product items, 129 categories, 334 brands

an index of 42 subcards, 112,646 unique addresses
Site map of the same store
2.4%
The difference between the two calculation methods

— about 2.8 thousand products outside the site map

main 1,544.6ms, card 391.4ms, category 473.2ms
The first server response is there
13,428
Wholesale underwear catalog, measurement 07/31/2026

cards, 161 categories, TTFB 289 ms

30–50
Development period

working days from the approval of the TK

50%
Working conditions

advance payment, two rounds of editing, 30-day warranty period

Who it's for

Situations where this service delivers results

Scenario 1 of 5

You accept the order in direct mail and specify the size by voice

The manager opens the photo, mentions whether the 75C is available in black, and writes to the buyer. The store transfers this to the card: the combination of size and color has its own balance, and what is not there is simply not selected. There are fewer manual reconciliations, as well as false sales.

We'll review your situation in a free audit
Cases

Tasks and results in numbers — all metrics measured by us

online retail underwear store, catalog of over 110,000 product items

Task
Sell ​​underwear throughout Ukraine so that the buyer chooses the size himself without consulting the manager. Each size and color has a separate position, so the catalog grows to hundreds of thousands of pages - you need to keep this structure and leave the pages suitable for indexing.
Solution
Store on OpenCart 3 with three language versions. The site map is an index of 42 sub-maps: 39 commercial addresses with 3,000 addresses plus categories, brands and information pages. The card has full product marking — Product, Offer, Brand, return policy, terms and delivery terms. Delivery by Nova Poshta to the branch, by courier and to the post office plus Ukrposhta.
Result
The volume of the catalog was confirmed by two independent methods: a regular search of the store gives 115,456 items, the site map — 112,646 unique product addresses; a discrepancy of 2.4% means that the card does not cover about 2.8 thousand goods. Structure: 129 categories, 334 brands, 17 information pages. First server response: main 1,544.6ms, product card 391.4ms, category 473.2ms - main bottleneck. Defects found: in a sample of 150 product addresses, 50 sitemaps return 301, and all but one lead to a different size or color; on the main 118 img tags, none of them with delayed loading. Measurement 01.08.2026.

wholesale store of underwear, catalog of over 13,000 items

Task
Give the wholesale buyer, who orders in assortment, a selection by sizes and colors within the model, size grids, packaging and prices by order levels.
Solution
Store on OpenCart, where the size and color are chosen inside the model. Eight payment methods are described in both text and machine markup via acceptedPaymentMethod — a rare level of detail for OpenCart. Deliberately no online payment: the bulk order is negotiated before payment, so that you do not pay for something that is not in stock.
Result
Sitemap: 13,428 product pages and 161 categories — 13,590 addresses, only one duplicate. First server response 289ms, full load 455.1ms - third fastest response among 16 sites measured. A caveat on the same dimension: the main HTML weighs 751.2KB, the heaviest document in the sample, four times larger than the median. Defect found: /sitemap.xml returns 200 with an empty body, the working map is saved only by the fact that it is named in robots.txt. Measured on 07/31/2026.
What's included

Complete list of work and what you get as a result

  • Catalog with navigation by category, brand and purpose - the buyer gets to the model without flipping through the issue.
  • Filter by size, color and material on OCFilter, with canonical on combinations: otherwise the filter will breed thousands of almost identical addresses in the index.
  • Card with size and color selection inside the model: the balance is tied to the combination, so the store does not sell what is not in stock.
  • Sizing tables for the brand and category plus a hint "how to take measurements" - the buyer is mistaken about the size before payment, not after trying it on.
  • Decisions on the structure of addresses — a canonical option or a separate card for the combination — are made at the audit and recorded in the TK.
  • JSON-LD product markup: Product, Offer, Brand, delivery terms and return policy in machine format.
  • Checkout with LiqPay, WayForPay, Privat24, monobank and postpaid payment; Nova Poshta to the branch, by courier and to the post office plus Ukrposhta.
  • Technical SEO: CNC, canonical on variants, sitemap with index of submaps of 3,000 addresses with full directory coverage.
  • Page weight control: delayed photo loading, compression, limit on images in a category - it is the photo that makes the heavy page here.
  • GTM and GA4 analytics with card view, size selection, and purchase events — you can see at which step the customer drops off.
  • Transfer: access, written instructions, passing the administration with the manager on a live order.
  • Terms of work: 50% advance payment, two rounds of revisions 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

  • Photography of models and shooting on a mannequin
  • Assembling own dimensional grids, if the manufacturer does not have them
  • Return processing and fitting logistics
  • Advertising and working with influencers after launch
  • Hosting, domain, acquiring
  • Promises of positions in issue: we close the technical part, we do not sell the ranking
Process steps

Transparent stages with approval at every step

Total duration:30–50 days

  1. Price audit and decision on options

    2-4 working days

    We count models and combinations, look at the current site, if there is one. The output is the number of the future catalog in both scenarios and the decision in which of them to proceed.

  2. TK and directory structure

    4-6 working days

    A tree of categories, a set of attributes for a filter, card fields, a scheme of dimensional grids, canonical rules on variants. It is expensive to replay it after typesetting, so we fix it in writing.

  3. Design

    6-10 working days

    Home, category, size and color card, size chart, cart, checkout. Here we set the target weight of the page: in our sample, HTML on the same engine weighs from 103.2 to 751.2 KB.

  4. Assembly of the store

    8-13 working days

    Theme layout, catalog and filter, options with separate balances, cart and checkout, admin roles, payment, shipping and returns pages.

  5. Import catalog, grids and photos

    6-11 business days

    Mapping of price fields, test filling, deployment of combinations, binding of dimension tables, batch processing of images and comparison of the number of cards using two methods.

  6. Marking, testing, transfer

    4-6 working days

    JSON-LD with a return policy, a site map with submaps, an end-to-end run of the order from size selection to TTN, measurements of the first server response, administration process with the manager.

Free audit: we count how many pages your assortment will give

In a clothing catalog, the main number is not the number of models, but the number of combinations of size and color. It specifies the structure of addresses, the volume of import and further work with indexing. Audit gives it before we talk about money.

What we measure

  • Expanding sizes and colorsHow many models are in the catalog and how many combinations. Measured example: a lingerie store, where each size and color is listed as a separate item, has 115,456 product addresses in 129 categories and 334 brands.
  • Site map on the big catalogIs it divided into submaps and does it cover the entire directory. In the same store, the map is an index of 42 submaps, and at the same time, it does not cover about 2,800 products that the store shows in its own search.
  • Where do product addresses lead?We take a random sample of addresses from the site map and look at the server's response. At the lingerie store measured, 50 out of 150 addresses tested returned 301s, and all returned a different size or color combination.
  • Page and photo weightHow much does the HTML of the card category weigh and do images take a long time to load? The anti-record sample is 751.2 KB at the main wholesale lingerie store, four times more than the median.
  • Speed ​​separately by page typesFirst response for main, category and card. In the measured laundry store, the main card is issued in 1,544.6 ms, and the card in 391.4 ms: it is the main card that slows down, the catalog works normally.
  • Product marking and return policyAre there Product, Offer, Brand and return blocks in JSON-LD. Measured Lingerie has full markup with return policies and shipping times—a rarity for OpenCart.

What you get

  • Number: how many pages will your assortment give in the expanded form and how many in the variant form.
  • Document on the current site: addresses, duplicates, coverage of the site map, speed separately for the main and category, HTML weight.
  • Evaluation of work with dimensional grids and photos — these two items most often extend the deadline.
  • A conversation for 30–40 minutes, where we go through the document point by point.

Timeline: 2-4 working days from the moment we received the price and website address

Why is it free

Because the difference between the two methods of setting the dimensions is a tenfold difference in the number of pages, and it cannot be guessed. It is faster to calculate than to be safe in the estimate. The document is yours regardless of whether we continue to work together.

What's next

After the audit, we name the amount and term by stages with calendar dates, not the range. Then the contract, bill and act. If it becomes clear from the numbers that you do not need the store now, you will hear it in the first email.

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.

Did not find your case?

Describe how it works on your side — we will tell you whether “Development of an online underwear and clothing store” fits and what it means in your situation. No brief and no call: one question, one answer.

What affects the price

Why two seemingly identical tasks are priced differently

  • The method of starting sizes and colorsThe main multiplier of the estimate. The expanded catalog, where each combination is a separate item, gives hundreds of thousands of addresses: in the underwear store we measured, this is 115,456 items. Options inside the card on the same assortment give several thousands. Different volume of import, different site map, different work of the manager.
  • Price statusThe file, where the article, model, size, color, price and balance lie in separate columns, is filled with imports for the day. The price, where the size is sewn into the name with a line ("Liana 75B Black Kit"), has to be analyzed by a parser - this is a separate stage with its own deadline.
  • PhotoPictures of the same proportions on a uniform background are processed in batches. Different formats, watermarks and messenger screenshots mean that each model is hand-crafted.
  • Dimensional gridsReady-made tables from the manufacturer are started by the directory and tied to the brand. If there are no nets, they have to be measured - this is not our area, we do not invent our own.
  • Payment, delivery and language versionsEach payment method and carrier is a separate module and test order. The second language multiplies not only the texts, but also the canonical, hreflang and sitemap: in the measured underwear store of the language versions there are three, and it is on them that the conflicting hreflangs are found.
  • TempoThe accelerated queue raises the project in priority for an additional payment - provided that the photo and price are ready at the start. It does not compress imports with variant expansion.
Technologies & integrations

What we build on and what it connects to

Stack

  • OpenCart 4.x by default: product variants, buyer groups and imports are in core
  • OpenCart 3.x — when the critical module exists only under three; we fix the version in the TK
  • OCFilter — size and color filter. Limitation: it generates a combinatorial number of addresses, and without canonical it is thousands of almost identical pages in the index
  • PHP and MySQL are limitations: hundreds of thousands of combinations require work with indexes and cache
  • nginx, HTTP/2, gzip or brotli - affect the server response, not the photo weight
  • HTTPS + HSTS with certificate on www: The measured SAN store only subscribes to the bare domain and a visitor from www sees a warning
  • sitemap-index with submaps of 3,000 addresses
  • Lazy image loading: On the main measured store 118 img tags and none of the lazy

Integrations

  • LiqPay
  • WayForPay
  • Privat24
  • monobank
  • postpaid
  • Nova Poshta: branch, courier, post machine
  • Ukrposhta
  • Google Tag Manager
  • GA4
  • Google Ads
  • Meta Pixel
  • Instagram Shopping
  • eSputnik
  • Telegram
  • Viber
Size as an option in a card versus a separate card for each combination

How this option differs from the alternative

The number of addresses for the same assortmentseveral thousand: one model — one page
Stockthe balance on the combination inside the card, the composition is visible from one screen
Request "bra 80B"leads to the model card, the size is chosen on the spot
Site mapone file or several submaps
What happens when a position is removed from salethe option disappears from the card, the address remains alive
Manager's workchanging the price of a model is one edit
What we need from you

We can't start without this — best to prepare in advance

  1. Price breakdown by size and color: article number, model, size, color, price, balance.
  2. Dimensional grids of brands in the form of tables, not pictures from the messenger.
  3. Photos of models are the main content of the card; without them, the clothing catalog does not sell.
  4. The decision whether to start the dimensions in separate items: it affects everything else and is decided at the audit.
  5. The return and exchange conditions are legally your zone, we just put them in the text and in the markup.
  6. One person with the right to approve the directory structure and layouts.

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

Are size and color separate items or options within the card?

Both schemes work, the consequences are different. Individual items give the exact balance for each combination and its own address for the request "bra 80B": in the underwear store we measured, this is done, and the catalog has grown to 115,456 items in 129 categories. Options inside the card provide a compact catalog, simple indexing, and one edit instead of dozens when the price changes. Our default recommendation is options, and separate addresses are set up point by point for those sizes and models for which there is really a search demand. But the decision is made at the audit of your price, because it is expensive to repeat it after launch.

Why does my main one take a long time to load, but the cards load quickly?

Because everything is usually displayed on the main page: banners, carousels, selections of new arrivals, widgets. Measured example: in a lingerie store, the first response of the main 1,544.6 ms, product card 391.4 ms, category 473.2 ms. The catalog is displayed normally, the bottleneck is the main one, and there we counted 118 images without delayed loading. This is treated separately without recycling the entire store. Fair margin: speed removes technical loss, not creates demand - if the price is higher than the market, a fast site will simply show it to the buyer faster.

How not to lose part of the directory in the index?

The sitemap should be an index of submaps and cover the entire directory, and the addresses in it should give 200, not a redirect. In the lingerie store we measured, the map consists of 42 submaps and gives 112,646 unique addresses, while the store's own search shows 115,456 items: a discrepancy of 2.4%, that is, about 2.8 thousand products are simply not on the map. We measure both numbers and add them up. A fair boundary: A sitemap does not rank or oblige Google to index — it just makes pages visible to crawlers. The actual number of indexed addresses is visible only in your Search Console.

Does Dimensional Grid Really Reduce Returns?

It reduces the number of errors when choosing - we influence this technically. We will not name the specific percentage of return reduction: it depends on the cut, brand and audience, and we do not have our own measurement of this indicator. What we do: a size chart on the card before choosing, a hint "how to take measurements", the grid is tied to the brand, and the rest - to a specific combination, so as not to sell something that does not exist.

We have both wholesale and retail — is it one site or two?

One. Buyer groups and wholesale logic are needed on top of the same catalog: selection by sizes and colors within the model, packaging, prices by order levels. In the underwear wholesaler we measured, it works on 13,428 cards and 161 categories, and there is deliberately no online payment there - the order is negotiated before payment. If the wholesale part is your main one, see the page about the wholesale store: there are more details about invoices and documents.

What to do with photos if the supplier has them in different formats?

Disassemble before import, not after. Batch processing works when the images are the same size and on a uniform background: then the cropping, compression and generation of thumbnails is done by a script. Different proportions, watermarks of other people's stores and screenshots from the messenger mean manual work on each item. We estimate this volume during the audit and talk about it before the start, and not in the middle of the project, when the deadline is already approaching.

How long does the development take and what is stretching it?

30-50 working days from TOR approval, six stages: price audit 2-4 days, TOR and structure 4-6, design 6-10, assembly 8-13, import with grids and photos 6-11, markup with testing and transfer 4-6. Assembly and import are the longest. It is usually not the code that stretches the project: photos of different formats and missing dimensional grids eat up more time than the entire assembly of the store.

Will a clothing store get on Google?

No one guarantees a position, and we will not. We close the technical part: CNC, canonical on variants, site map with submaps without duplicates, JSON-LD with Product, Offer, Brand and return policy. The latter in clothes weighs separately - the return conditions announced by the machine format make the card suitable for an advanced appearance at the issue. Fair margin: the markup does not increase the position and does not oblige Google to show the extended snippet, it decides for itself. And separately: markup something that is not on the page is a risk of sanctions, not an advantage.

Send a price - we will calculate how many pages your assortment will give

We will return in 2-4 business days with a number in both scenarios, an analysis of the current site, if any, and a phased work plan with dates.

From measured casesSitemap: 13,428 product pages and 161 categories

View cases
  • Reply within 2 hours
  • No commitment
  • We work under a contract

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.