Manufacturer's online store: selling own products directly
An online store for a manufacturer is a showcase of its own products, where the buyer sees the composition, packaging and document for the product, and not just the price itself. We collect it on OpenCart: a card with fields for raw materials and a certificate, pages about production linked to the catalog, two language versions - both are present in the site map. On July 31, 2026, we took measurements from three live brand stores: 23, 81, and about 580 products, the first server response from 126.3 to 512.6 ms. We name the amount after the free audit, before it it is a guess.
The products are known offline, and you are almost not in the network
Fairs, retail outlets, recommendations — and online remains a page in a social network and a price file. The store closes the path from "interesting" to payment without a manager: the buyer reads the inventory, chooses packaging, puts the Nova Poshta branch at the checkout. Limit: integration with the carrier does not make delivery cheaper and does not save from the person who chose the wrong branch. It removes manual work, and it becomes money only when the free time is transferred somewhere.
We'll review your situation in a free audit
Scenario 2 of 4
Products are sold by distributors, and they control the supply
Your product is on someone else's shop windows with someone else's photos and someone else's description of the composition. The branded store takes back control over how the product looks and what is written about it, and gives direct contact with the buyer. About the risk immediately: if the distributors are the main volume, the retail price on their own website will become the subject of conversation with them. It is decided by the price policy before the start of work.
Scenario 3 of 4
The assortment is small, but there is a lot to tell about it
It's not a problem, it's a working format. Of the three brand stores we measured, one has 23 items — the entire assortment, and the other has 81 product pages. Both work as stores, not as PDF pricelists. On such a volume, internal search is almost not used: it helps someone who already knows the name, and here they choose with their eyes and text.
Scenario 4 of 4
Planning to sell to a different language audience
A second language opens the market only with local payment, delivery and support - the site closes the window, nothing more. At the same time, the technical part is done incorrectly more often than it seems: in the measured shop of the spice brand, all 590 addresses of the site map led to only one language branch out of the two announced.
Cases
Tasks and results in numbers — all metrics measured by us
a manufacturer of natural cosmetics based on beekeeping products with a branded store
Task
Keep a story about the production and properties of the ingredients next to the product card - so that the buyer understands what he is paying for - and does not bloat the page.
Solution
OpenCart, two language versions uk/ru. LiqPay and PrivatBank card plus cash on delivery, delivery by Nova Poshta. Structured data Store, Organization, ContactPoint, OpeningHoursSpecification, SearchAction.
Result
Fastest first response among the stores we measured: 126.3ms, full HTML load 172.4ms at 196.3KB. The catalog is small: 91 pages, of which 10 are informative, i.e. 81 are product pages. Measured on 07/31/2026. Found: 271 records for 116 unique addresses in the site map, some products are duplicated 2-4 times; from analytics, only Universal Analytics is alive, GA4 is not in the code.
a brand of natural spices and seasonings with its own online store
Task
Sell brand assortment online — mixes, monospices, seasonings — with a recipe section and selection by type of dish.
Solution
OpenCart, two language versions. Payment by PrivatBank, monobank, cash on delivery and on account; delivery by Nova Poshta, Ukrposhta and self-delivery. Structured data of GroceryStore with address, coordinates and opening hours.
Result
About 580 product pages, 590 unique addresses in the site map. TTFB 428.4ms, full HTML load 488.2ms at 264.1KB. Measured on 07/31/2026. Found: The sitemap has 3,971 entries for the same 590 addresses, and all 590 lead to only one language branch, even though the code declares two; Next to the living GA4 stands the dead Universal Analytics.
a brand of natural cosmetics with a branded store for the EU market
Task
Bring your own line to the European market in three languages, with delivery terms that are understandable to the buyer in the country of production.
Solution
OpenCart 3 with custom theme, three language versions with hreflang. Courier delivery to the office or address, free in the country from the specified amount. Six types of JSON-LD on the main: Store, WebSite, SearchAction, ContactPoint, EntryPoint, OpeningHoursSpecification.
Result
23 products — the entire assortment of the brand, verified by standard search without pagination. TTFB 512.6ms, full load 640ms at 220.4KB HTML. Measured on 07/31/2026. Found: there is no GTM, no gtag, no pixel on the main one - there is no external analytics at all; sitemap, robots.txt and product feed return empty body or HTML instead of XML.
What's included
Complete list of work and what you get as a result
The catalog by product lines and purpose is the way you yourself describe the assortment to the buyer
A card with fields for storage, origin of raw materials, packaging and method of use: the answer lies on the page, not in correspondence with the manager
Pages about production with cross-references to the catalog - from the story about the shop, the buyer gets to the product with one click
Documents section: certificates and declarations in PDF linked to specific items
Two language versions with hreflang and x-default, both present in the sitemap — a separate acceptance point, not a translation side effect
Payment: LiqPay, WayForPay, Privat24, monobank, postpaid, non-cash account - set for your segment, not for the sake of logos in the footer
Delivery: choosing a Nova Poshta branch at checkout, Ukrposhta, self-pickup from the factory with address and schedule
Technical SEO: CNC, canonical, unique title, sitemap without repetitions and with both language branches
JSON-LD micro-markup: Organization, Store, Product, BreadcrumbList — so that the brand is recognized as a manufacturer, not just another reseller
Analytics: GTM and GA4 with cart and purchase events instead of counters that haven't collected anything in a long time
Transfer: access, written instructions, passing the administration with your manager on a live order
Terms: 50% down payment, two rounds of edits at the design stage, warranty period of 30 calendar days
When this service isn't right
What's not included — so there are no surprises at delivery
Photography of production products
Copywriting of descriptions of composition and properties — the invoice is given by your technologist
Certification of products and preparation of declarations
Post-launch advertising and mailings
Hosting, domain, acquiring
Process steps
Transparent stages with approval at every step
Total duration:25–45 days
1
Audit and technical assignment
3-5 working days
We measure the current site, if there is one, and count how many cards are ready to be transferred. We analyze the assortment, lines, packaging and the list of documents that you show the buyer. The output is a TK, based on which the estimate is calculated and the work is accepted.
2
Directory structure and card fields
3-5 working days
A tree of categories by line and purpose, a set of card fields — composition, raw material, packaging, application, document — and a diagram of connections between content pages and the product. We agree with the design: it is expensive to recycle fields after filling.
3
Design
5-9 working days
Home, category, product card, production page, cart, checkout. Here we fix the target weight of the page: in the measured brand stores, the main markup weighs from 196.3 to 264.1 KB, and this is the limit that should be adhered to.
4
Assembly of the store
7-11 working days
Theme layout, card catalog and fields, shopping cart and checkout, admin roles, payment, delivery and return pages, documents section.
5
Filling and content pages
4-8 working days
Creation of cards according to your invoice, second language version, texts about production with cross-references to the catalog, tying of certificates to items. The longest stage for manufacturers is the most frequent reason for the deadline to be delayed.
6
Integrations, analytics, transmission
3-7 working days
Payment and delivery, GTM and GA4 with cart and purchase events, JSON-LD, sitemap with both language branches, end-to-end order flow from cart to TTN, admin pass with your manager.
First, we measure your brand online — for free
The manufacturer has what the reseller does not: own products, production history and control over the content. The only question is how much of it has already been digitized. The audit shows what we start with and where the most hours will go into the estimate.
What we measure
Assortment and its digitizationHow many items and how many of them have normal photos, composition and description. The difference between "there is a price" and "there are cards" is dozens of hours at the filling stage.
The content part around the productAre there materials about production, raw materials, certificates. In a niche where the buyer pays for provenance, these pages sell as well as a catalog.
Language versionsHow many of them are declared and how many are real in the site map. In the measured spice brand store, all 590 unique map addresses led to only one of the two language versions—the second searchable one did not exist.
Speed and weightFirst server response and HTML weight. The fastest store in our sample is 126.3 ms first response with 196.3 KB of markup; it is a manufacturer's store with a small catalog.
Duplicates in the site mapHow many entries per unique address. In the same sample, we saw 271 listings for 116 addresses and 3,971 listings for 590 addresses, both in brand name stores.
Analytics and advertisingAre the counters live? Two of the measured brand stores had Universal Analytics, which has not collected data since July 2023, and the GA4 ID in the HTML was missing; in the third, there was no counter at all.
What you get
A document with numbers for the current site: catalog volume, addresses in the site map and duplicates, speed, page weight, analytics status.
Assessment of the volume of work with content: how many cards are ready for transfer, how many need a photo and description.
A list of findings that should be corrected before launching a new store.
Conversation for 30–40 minutes on the document.
Timeline: 2-4 working days
Why is it free
Because in the projects of manufacturers, the biggest risk of the estimate is the content, not the code. Until we counted how many cards were actually ready, the amount would either be overstated by the margin, or understated with subsequent overwriting. It is cheaper to measure. The document remains with you regardless of whether we continue to work or not.
What's next
After the audit, we name the amount and term by stages with dates, not the range. Further, the contract, invoice and deed are official, in particular with customers from the EU.
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 store for the manufacturer” 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
Product invoice statusThe main driver of the estimate. The composition, raw materials, method of application and packaging are in a structured form - the cards are started in a flow. All this lives in the head of the technologist and on the label — the stage of collecting the invoice appears, which is longer than the typesetting.
Photo of productsPictures on a uniform background for a line with the same packaging are taken in one shot per series. The photo from the phone on the table has to be retaken, and we do not do the shooting - it is a separate contractor and a separate deadline.
Volume of production contentOne "about us" page and a full section with processes, raw materials and quality control are different weeks. In a niche where the buyer pays for the origin, these pages lead to the catalog, so it is not profitable to shorten them for the sake of time.
Number of language versionsThe second language adds about a quarter to the assembly stage and is entirely dependent on the volume of the texts. What makes it more expensive is not the switch, but the translation of the cards and content pages, plus checking that both branches are included in the site map.
Dealer prices close to retailBuyer groups, multiplicity, minimum lot and individual price are the volume on top of the store and each combination should be checked on a live order. We count it after the audit as a separate line.
Documents and certificatesA dozen PDFs for the entire brand and a folder of documents for each batch is a different job. In the second case, you need a rule about who updates the files after launch, otherwise the partition will rot in a quarter.
Technologies & integrations
What we build on and what it connects to
Stack
OpenCart 4.x is set by default, this is a branch that is being developed
OpenCart 3.x — when you need a module without assembly under 4.x; limit: the branch lives out its life, we update it manually
PHP and MySQL are the limit: additional card fields for storage and certificate live in attributes, and their set must be fixed before filling
nginx, HTTP/2, HTTPS + HSTS - the limit: the certificate encrypts the channel, but does not make the store secure and does not compensate for the outdated version of PHP
hreflang uk/ru or uk/en with x-default - limit: language switch is not market entry, local payment, shipping and support still required
Cloudflare is the limit: the cache covers the return of pages, but does not speed up administration and filling
Integrations
LiqPay
WayForPay
Privat24
monobank
postpaid
non-cash settlement
Nova Poshta
Ukrposhta
Google Tag Manager
GA4
Google Ads
Meta Pixel
Instagram Shopping
eSputnik
Telegram
Viber
Manufacturer's branded store versus distributor's marketplace and showcase
How this option differs from the alternative
Marketplace / distributor's showcaseOur approach
Who describes your productMarketplace: site template. Distributor: his text and his photo, often from someone else's lineyou: composition, raw materials, method of application, documents - in the fields of the card
Production contentMarketplace: No space available. Distributor: a paragraph in the description at bestindividual pages linked to the directory by cross-references
Commission and marginMarketplace: a percentage of each order. Distributor: Your selling price vs. retailno sales commission, just hosting, domain and acquiring
Data about the buyerMarketplace: the buyer belongs to the marketplace. Distributor: you don't know who boughtcontacts and order history in your database
Where does the demand come from?Marketplace: ready traffic of the site. Distributor: his client basesearch, advertising, direct measures - you have to build the stream yourself
Start speedMarketplace: weeks for moderation and feed. Distributor: Depends on his plans, not yours25–45 working days from the approval of the TK
What we need from you
We can't start without this — best to prepare in advance
1List of products with packaging, composition and prices - CSV, XML or at least Excel.
2Photos of products; for a line with the same packaging, one shooting per series is enough.
3Materials about production: how it is made, what it is made of, who controls it - this is the basis of content pages.
4Certificates and declarations in PDF, if you show them to the buyer.
5Access to hosting and domain or agree to choose hosting for you.
6One person on your end who is responsible for invoicing the product and has the right to approve the catalog structure.
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
We have 30 items - is the store justified at all?
Often yes, and a small catalog is rather an advantage here. Of the three brand stores we measured, one had 23 items — that's the entire assortment — the second had 81 product pages, and it was the second that gave the fastest first response in the sample: 126.3 ms with 196.3 KB of markup. A light page and meaningful cards in such a volume are easily achieved. What speed doesn't do: It doesn't make an offer attractive. If the price is higher than the market or the product is out of stock, a fast site will simply give the buyer a reason to leave faster.
How is the manufacturer's store different from the usual one?
What the buyer pays for. The reseller wins the price and availability, you win the origin, composition and quality control. Therefore, the card has fields for raw materials, packaging, and documents, and next to it are pages about production with direct links to the catalog. Technically, this is the same OpenCart, but in terms of content, the structure and hours are different: at the reseller, they go to the import of the price, and to you, they go to the invoice about the product.
Are the production pages the same blog?
No, and this is our recommendation at the end of such projects: don't make a blog out of them. The blog lives in a separate section, collects random events and does not lead anywhere. Raw material, process, and quality control pages should be in the same tree as the catalog and be linked to specific items in both directions—text-to-product and product-to-text. Then the person who came to read about the production, in one click finds himself where he can buy.
Is it possible to sell to retailers and dealers at the same time?
Yes, through groups of buyers: after logging in, a dealer sees his price, multiple and minimum lot, a retail buyer - a regular shop window. Two limits. Technical: this is the volume above the store, each combination must be checked on a live order, and we count it separately after the audit. Commercial: an account on the website does not make you a supplier for a legal entity - the purchase is also based on the contract, deferred payment and availability according to the volume. If the dealer direction is the main one, see the page about the dealer's office.
We have two languages - does that double the cost?
No, the second language adds about a quarter to the build stage, and the amount depends on the amount of texts, not the presence of a switch. It is more important to do it correctly: hreflang with x-default and both versions in the sitemap. At a spice brand store, we saw the opposite—3,971 map entries for 590 unique addresses, and all 590 led to just one language branch. The check is simple and takes a minute: extract all <loc> from the sitemap, count the unique ones and group them by language prefix. If one group does not exist, this version does not exist for search.
What to do with old analytics that have been sitting for years?
Check, not transfer. The two brand stores measured had Universal Analytics in the code, which has not collected data since July 2023, and no GA4 at all; in the third, no counter was detected - no GTM, no gtag, no pixel. That is, there were reports in the office, but there is no data behind them. We install GA4 and Tag Manager again, with cart and purchase events. Honestly about the limit: the meter itself does not improve anything, it gives an opportunity to see. Plus blockers and consent mode — GA4 shows a trend, not an accounting truth, and you need to consciously reconcile it with the cash register.
Where to put certificates and declarations?
In the section of documents and link in parallel to the items to which they relate - the buyer or purchaser needs paper for this particular product, and not a search in a shared folder. We do not substitute the certificate in the Product markup: describing in JSON-LD what is not on the page in an explicit form is a risk of manual sanctions, not an advantage. And we immediately agree on who updates the files after launch: the documents section rots faster than the directory.
How long will it take to launch and what is stretching it?
25-45 business days from TOR approval: audit and TOR 3-5 days, catalog structure and fields 3-5, design 5-9, build 7-11, populate with content pages 4-8, transfer integrations 3-7. It is not the assembly that takes the longest time for manufacturers, but the invoice — photo, composition, texts about production. If this material is ready at the start, the term goes to the lower limit; if it is collected along the way, it is the filling stage that shifts, not the development.
Send a list of products and materials about production.
In response, there is a document on the current site with numbers, an estimate of the amount of content work and a plan for stages with dates. If you don't need the store now, you will hear about it in the first email.
From measured casesFastest first response among the stores we measured: 126.3ms, full HTML load 172.4ms at 196.3KB
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.