Online store for children's goods: age, size, safety
The development of an online store for children's goods rests on two numbers in each card - the age "from" and the age "to". Mom is not looking for a category, she is looking for something that will suit a three-year-old child with a height of 98 cm, and the filter should answer exactly this question. Then the heterogeneity begins: clothes live by size and height, toys by age limits, nutrition and hygiene by expiration dates, car seats by weight group. The framework of the directory is shared, the sets of fields in the card are different. How much of this already lies in your data in numbers, and how much will have to be extracted from the descriptions by hand, can only be seen from the download. Therefore, first the audit of the assortment, then the term and amount.
working days, free of charge, the document remains with you
5,561
Catalog of care products, our measurement 07/31/2026
items, first server response 801.2ms
TTFB 402.9 ms at 303.4 KB HTML, zero analytics counters
Store with repeated purchases, measurement 07/31/2026
from 126.3 ms to 1,544.6 ms on the same engine
Spread of first response in measured stores
50%
Working conditions
advance payment, two rounds of design revisions, 30-day warranty period
Who it's for
Situations where this service delivers results
Scenario 1 of 5
You sell children's clothes, and each size is entered with a separate card
The catalog is inflated many times, and duplicates appear in the search, competing with each other for the same request. We reduce the dimensions and growth into variants of one model: one address, one canonical, the rest at the variant level. A fair limit: one or two moving items benefit from their own address under a precise request - we leave them separately deliberately.
We'll review your situation in a free audit
Scenario 2 of 5
Half of the turnover is diapers, food and hygiene
These are expendable items: they are taken cyclically and bought almost without choosing. A saved list and a repeat order button work here, and every extra step in the checkout costs you an order. Subscription with auto-subscribe is also possible, but it entails pauses, cancellations and returns - it's a process, not a button.
Scenario 3 of 5
Clothes, toys, car seats and food in one store
Four groups with four different sets of fields. Clothes - size and height, toys - age "from", food - expiration date and batch, car seats - weight group and method of attachment. An attempt to describe everything with one universal set of characteristics ends up with half-empty cards that no one filters by.
Scenario 4 of 5
Orders come to direct mail, and the manager asks the age of the child every time
This dialogue is transferred to the catalog: the buyer himself sets the age and height, sees the availability by size and processes the delivery without correspondence. The manager receives the order, not the thread in the messenger.
Scenario 5 of 5
A noticeable share of purchases are gifts for other people's children
Such a buyer does not know the size or what is already at home. He needs selections by age, gift lists with a link and a certificate instead of a specific item. This is a separate branch of the directory, not a banner on the main one.
What's included
Complete list of work and what you get as a result
We set the age "from-to" and height as separate numeric fields - a filter is collected from them that responds to the request "two years, 92 cm", instead of looking for these words in the description.
We place the navigation by age and gender of the child on top of the category tree — the buyer enters from the side from which he thinks.
We reduce the size and height to variants of one model from canonical to the main address - the catalog does not inflate, and duplicates do not compete with each other in the search.
We display the age restrictions, composition, material and certificate on the card - this is what they compare before buying.
We divide the special fields into groups: the weight group of the car seat, the expiration date and batch of food, the age limit of the toy.
We show the availability of each size and height in the card - the buyer will not find out about the absence after payment.
We reorder consumables in two steps: a saved list and a repeat button in the cabinet.
We add wish lists and gift lists with a link that can be sent to relatives.
We connect payment and delivery: card, payment in installments, cash on delivery, Nova Poshta, Ukrposhta, self-delivery.
We close technical SEO: CNC, canonical on variants, unique title, site map without duplicates and covering the entire catalog.
We put JSON-LD micromarkup: Product, Offer, BreadcrumbList.
We are handing over the store with access, instructions and the administration pass on a live order: 50% advance payment, two rounds of design edits, a warranty period of 30 calendar days.
When this service isn't right
What's not included — so there are no surprises at delivery
Obtaining certificates and permits for goods
Subject shooting of the assortment
Legal verification of age marking is the responsibility of the seller
Post-launch advertising
Hosting, domain, acquiring
Promises of positions in issue: we close the technical part, we do not sell the ranking.
Free audit of children's assortment
In children's products, the buyer does not filter by category, but by the age and size of the child. The audit checks whether your data has what such a filter is collected from, and how many items will have to be added by hand.
What we measure
Age and height in the dataAre the "from-to" age and height separate numeric fields. The text "for children 3-5 years old" in the description does not become a filter - this is the main reason why the navigation does not work in the niche.
Dimensional logic of clothesAre the size and height entered as variants of the same model. If each size is a separate product, the catalog is inflated many times, and the search gets duplicates.
Certificates and compositionAre there documents for the items that require them, and are the material and composition indicated. In this niche, it is not a formality, but something that is compared before buying.
Groups with special rulesFood with expiration dates, car seats with weight groups, toys with age restrictions. Each group requires its own fields in the card.
Mobile scenarioHow many steps from the filter to paying from the phone and does the age filter open with one touch. In a niche, orders are often made with one hand.
Speed and weightFirst server response and HTML weight separately for main, category and card. For reference: in the stores we measured, the spread of the first response is from 126.3 ms to 1,544.6 ms, and this is on catalogs of comparable complexity.
What you get
Assortment document: product groups, completeness of age and size data, a list of what is missing for the filter.
A catalog scheme with navigation by age and gender of the child on top of the usual categories.
Evaluation of works with options: how many models should be assembled from individual cards and how many attributes should be extracted from the descriptions.
A conversation for 30–40 minutes, where we go through the document point by point.
Timeline: 2-4 business days from when we receive the catalog download
Why is it free
Because in the children's niche, the estimate misses precisely on the attributes: age and height lie in the text in the descriptions, and in order to collect a filter from them, the value has to be extracted from the entire catalog. The scope of this work is visible only from the data, and it is more expensive to guess than to calculate. The document is yours regardless of whether we continue to work together.
What's next
After the audit, we name the amount and term in stages with calendar dates. Then the contract, bill, act. If it becomes clear from the numbers that you do not need the store now, let's say so 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.
What affects the price
Why two seemingly identical tasks are priced differently
Status of age and size attributesThe main multiplier of work. Price, where age "from", age "to" and height lie in separate columns, is filled with imports and immediately gives a filter. A catalog where the age is written in the title or at the end of the description has to be analyzed by a parser and proved by hand — this is a separate stage with its own deadline.
Number of product groupsClothes, toys, food, hygiene and car seats require different card fields and different filter rules. Each new group is a set of attributes, separate card templates, and a separate import run, not an extra line in the menu.
The method of starting sizesSizes as model variants and sizes as individual products result in a different number of pages for the same assortment, a different import scheme, and a different day-to-day work for the manager when the price changes.
Certificates and documentsReady files are attached to items in batches. Documents that are scanned in the mail without reference to article numbers have to be sorted manually — and this is the most common reason why the security block in the card remains empty.
Photos and descriptionsPictures of the same proportions on a uniform background are processed by a script. Screenshots from supplier catalogs and watermarked photos signify the handwork on each item.
TempoThe accelerated queue raises the project in priority for an additional payment - provided that the export is ready at the start, and the approvals are invested in one day. It does not compress the extraction of attributes from descriptions.
Process steps
Transparent stages with approval at every step
Total duration:25–45 days
1
Assortment audit and attribute decisions
2-4 working days
We sort out the export into groups, see where the age, height and size come from, and record what will have to be started by hand. The output is a document and a decision according to which scheme the sizes live.
2
TK and directory structure
3-5 working days
Category tree, navigation by age and article on top of it, a set of attributes for the filter, card fields separately for each product group, canonical rules on options. It is expensive to replay it after layout.
3
Design
5-9 working days
Main, category, card with size and height selection, security block with certificate and composition, basket, checkout, cabinet with repeat order. Here we set the target weight of the page.
4
Assembly of the store
7-12 working days
Theme layout, catalog and filter on numeric fields, options with separate balances, cabinet with lists, cart and checkout, roles in the admin, payment, delivery and return pages.
5
Catalog import and attribute layout
5-9 working days
Mapping fields, extracting age and height from descriptions, building models from individual cards, binding certificates and dimensional grids, comparing the number of cards using two independent methods.
6
Marking, testing, transfer
3-6 working days
JSON-LD on a card, a site map without duplicates, an end-to-end run of the order from the filter by age to TTN, measurements of the first server response and HTML weight, passing the admin check with your manager.
Did not find your case?
Describe how it works on your side — we will tell you whether “Development of an online store for children's goods” 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 by default: product variants, attributes and imports are in core
OpenCart 3.x — when the critical module for you exists only under three; we fix the version in the TK before the start
OCFilter to filter by age, height and size. Limitation: it generates a combinatorial number of addresses, and without canonical it is thousands of almost identical pages in the index
PHP and MySQL. Limitations: numeric filters on several fields require attention to indexes at once, otherwise the category page slows down precisely on the sample
nginx, HTTP/2, HTTPS - affect the first server response, but not the photo weight
WebP and delayed image loading: In the children's niche, the photo card lives, and it is this that makes the page heavy
Age in numeric fields versus age in title and description
How this option differs from the alternative
Age in text in title and descriptionOur approach
Request "toys for 2 years"shows only where "2 years" is in the text; the product falls out in 1-3 yearsthe filter shows everything whose range covers that age
A child between the age limitsthe buyer flips through the issue himself and compares the descriptionsthe "from-to" range catches it automatically
Establishing a new positionthe manager writes the phrase, and everyone writes it in their own waythe manager puts two numbers and height
Selections "gift for 3 years"assembled by hand and obsolete after the first deliveryare collected by querying the directory and are updated themselves
What is needed at the startnothing, the data is already like that - that's why it stays like that for yearsextracting ages from descriptions throughout the catalog is a separate job
The price of errorthe buyer receives the product out of age and issues a returnan incorrect range in one card is immediately visible
Cases
Tasks and results in numbers — all metrics measured by us
online store of professional cosmetics and care products, catalog of over 5,000 items
Task
Collect a large assortment of care products, where the composition and purpose are on the card: it is according to them that the items are compared. The same nature as the composition and material in children's hygiene.
Solution
OpenCart 3 for nginx. Catalog by brands and types of means, payment on account or postpaid with a deposit, Organization and PostalAddress micromarking.
Result
Measured on 07/31/2026: 5,561 products in the live catalog — counted by regular OpenCart search, 55 pages of 100 items and 61 on the last one. First server response 801.2 ms at 153.8 KB HTML: The page is light and the server is slow are different issues. Defects found: /sitemap.xml returns 200 with zero byte body, no analytics counters, no carrier listed on delivery page.
online store for the delivery of sweets, snacks and gift sets
Task
Sell things that are taken repeatedly and mainly from the phone: filters by type and purpose, shopping cart with a choice of delivery, online payment. Gift sets are a separate branch of the catalog.
Solution
OpenCart 3.x under nginx with HTTP/2. Five methods of online payment and four methods of delivery, the condition of free delivery is carried out by a banner on the main page.
Result
Measured on 07/31/2026: first server response 402.9ms, full HTML load 532.4ms at 303.4KB. Defects found: it was not possible to calculate the volume of the directory from the outside — /sitemap.xml returns 200 with a body of zero bytes, and the sitemap feed is 404; on the main zero JSON-LD blocks and no h1 tag; there are no counters at all, repeated purchases are not counted anywhere.
a niche store where legal information about use is on the card next to the description
Task
Dates can be chosen without consultation where there are few characteristics: restrictions and rules of application are required in the card, like age limits and certificates in a children's catalog.
Solution
OpenCart 3.x under nginx with HTTP/2, two language versions, card with legal block and model comparison. Payment by card and cash on delivery, Nova Poshta and Ukrposhta.
Result
Measurement 07/31/2026: the entire catalog — 68 addresses, of which 48 products and 18 categories. The first response is 494.7ms with 502.3KB of HTML - half a megabyte of markup on a small directory. Out of 190 images, 154 (81%) are slow to load, and this is what keeps the page at an acceptable weight. Defects found: no type of structured markup, no h1 tag on the main page.
What we need from you
We can't start without this — best to prepare in advance
1Catalog in machine type, where age, height and size lie in separate columns, and not inside the name.
2Certificates and documents for items that require them, with reference to article numbers.
3Dimensional grids of brands of children's clothing and shoes in tables, not pictures from the messenger.
4The decision on how to group the catalog: by age, by product type, or both ways at the same time — we make it together at the audit.
5Access to hosting and domain or agree to choose hosting for you.
6One 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
How to make a filter based on the child's age?
The two numerical fields in each card are the age "from" and the age "to". Then querying "2 years" shows everything whose range covers that age, not just items with "2 years" in the title. If the age is a text in the description, you cannot remove the filter from it: first, the value has to be extracted from the entire catalog, and this is a separate work that we evaluate at the audit. A fair margin: A filter doesn't create demand for a product that isn't being searched for - it just lets you find what you already have.
Should each size of children's clothing be a separate product?
By default, no. Size and height — variants of one model: one card, one canonical, choice in the card, balance at the level of the variant. Separate products for each size bloat the catalog and create duplicates that compete with each other for the same request. There is an exception: if a specific size has its own price, its own photos or a stable search demand, you can create a separate address for it - but pointwise, and not throughout the catalog.
We have clothes, food and car seats - is it one store or three?
One but with different card rules. Clothes live by size and height, food by expiration date, batch and "from" age, car seats by weight group and fastening method. We create these fields separately for each group, and the catalog frame, shopping cart and checkout remain common. An attempt to describe everything with one universal set of characteristics ends with half-empty cards: the filter formally exists, but there is nothing to filter.
Where to show certificates and inventory?
In the product card, in a separate block, with the possibility to open the document. It makes no sense to hide it in the footer of the site - in the children's niche, it is the composition, material and availability of the document that is the reason for the choice. Technically, this is a field with a file that you fill in yourself: we cannot issue or check documents, this is the seller's responsibility. In the store we measured with a similar logic, the legal block is right in the card next to the characteristics, and the buyer reaches the decision without a manager.
Most orders are from the phone - what does this change in development?
Number of steps and page weight. The age filter should open with one touch, not through three menus; the number of items on the category page should be kept smaller than on the desktop, because each card pulls a photo. We measure this before launch: in a measured store with a similar type of purchases, the first response is 402.9ms with 303.4KB of HTML, and the spread across our sample is 126.3ms to 1,544.6ms on the same engine. Fair limit: the mobile version does not bring new people, it stops losing already brought ones. And by itself, the mobile viewport does not prove convenience - the real scenario is tested in live sessions.
How to reorder diapers and food?
A saved list of regular items and a repeat order button in the cabinet. These are consumables that are taken cyclically and almost without selection, so every extra step here costs an order. A subscription with automatic cancellation is also possible, but only if you are ready to conduct it as a process - with pauses, refusals and returns. And separately: to see the share of repeat purchases, you need analytics. In the store we measured with exactly the same sales model, there are no counters at all, that is, the main indicator of the niche is not counted in any way.
Does anyone really need gift lists?
In the children's niche - yes, because some of the purchases are not made for one's child. The giver does not know the size or what is already at home, and needs a list that the parents have compiled themselves and sent to the link. Technically, this is a saved set of items with a public address and a "already donated" mark. We do not promise that this will raise the average check - we do not have our own measurement of such an indicator; what it does exactly is remove the question of "what to give" from correspondence with the manager.
How long does the development take and what is stretching it?
25-45 working days from TOR approval, six stages: assortment audit 2-4 days, TOR and structure 3-5, design 5-9, assembly 7-12, import with attribute layout 5-9, markup with testing and transfer 3-6. It is not the code that stretches the project, but the attributes: extracting age and height from texts, building models from individual cards, arranging special fields into groups. If the data is already structured, the term runs along the lower limit.
Will a children's goods store get on Google?
No one promises items, and we will not. We close the technical part: CNC, canonical on size options, unique title, site map without duplicates and covering the entire catalog, JSON-LD with Product and Offer. The hole is most often here: in the two stores we measured /sitemap.xml gives HTTP 200 with a body of zero bytes, that is, the search engine does not receive the map at all. A fair margin: a clean sitemap and canonical do not add traffic — they stop spraying it between duplicates, and in the first weeks after cleaning, the number of addresses in the index may even drop. This is an expected course of events, not a glitch.
Send a catalog download - let's say if there is something to assemble an age filter
In 2-4 working days, we will return with a document on the assortment, a catalog scheme and a work plan by stages with dates. If you don't need the store now, you will hear about it in the first email.
From measured casesMeasured on 07/31/2026: 5,561 products in the live catalog
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.