• Online Stores

Online product store: delivery, sets, expiration dates

The development of an online food store is mainly not a catalog, but rules: delivery zones, free threshold, minimum amount, order weight. The catalog in the niche is usually small, so time is spent on logic, and not on importing prices. On July 31, 2026, we took metrics from two live grocery stores: first server response 402.9 and 428.4ms, HTML weight 303.4 and 264.1KB. The term is 25–45 working days from the approval of the technical specifications. There is no price here on purpose: first a free audit, then the amount in stages.

See how it works
Price
after a free audit
Guarantee
30 days after project sign-off
Development period
25–45 working days from the approval of the TK
after a free audit
Price
30
Guarantee

days after project sign-off

25–45
Development period

working days from the approval of the TK

2
Niche stores were measured

grocery stores, measurement 07/31/2026

402.9
The first response from the server

ms and 428.4 ms

303.4
The weight of the HTML main

KB and 264.1 KB

/sitemap.xml returns an HTTP 200 with a body of 0 bytes
A typical find
free audit, 2-4 working days
Before the estimate
What's included

Complete list of work and what you get as a result

  • Catalog by product type and purpose, filter by composition, weight and brand — the buyer reaches the position without a manager
  • A card with the fields composition, weight, calorie content, storage conditions and expiration date - questions are closed to the basket
  • Gift sets in separate items with write-off of the balance by components - the set will not be sold if one box is not available
  • Delivery logic in the checkout: zones, minimum amount, free threshold, self-pickup — the site, not the manager, counts
  • Visible balance in the cart up to the threshold of free delivery — the buyer can see how much to get even before checkout
  • Payment: LiqPay, WayForPay, Privat24, cards, postpaid - impulse buying does not rest on the missing method
  • Delivery: Nova Poshta with a choice of branch, Ukrposhta, courier around the city, self-delivery - you don't have to ask for the address
  • Technical SEO: CNC, canonical, unique title and sitemap, which we open and measure in bytes
  • JSON-LD micro-markup: GroceryStore or Store, Product, BreadcrumbList — store data aligned with page
  • Analytics: GTM, GA4, cart events and purchases with order inventory — you can see what's getting to checkout
  • Transfer: access, written instructions, passing the administration with the manager on a live order
When this service isn't right

What's not included — so there are no surprises at delivery

  • Photography of dishes and products
  • Description of the composition and nutritional value - these data are provided by the manufacturer
  • Obtaining permits for food trade
  • Working with the courier service as an operational process
  • Hosting, domain, acquiring
Who it's for

Situations where this service delivers results

Scenario 1 of 4

You accept orders in direct mail and calculate the delivery manually

Each order is a correspondence with four questions: what is available, how much it weighs, how much the delivery costs, and whether the amount reaches free. The store transfers these questions to the checkout. The buyer chooses the department himself, sees the weight and sees how much is left to reach the threshold, and the manager receives a completed order instead of correspondence.

We'll review your situation in a free audit

Instead of a price fork — a free product store audit

The grocery store fails where it is expected: not on design, but on delivery. Zones, slots, minimum amount, order weight. The audit shows that you have already decided on this, and what will have to be projected — and only after that it makes sense to talk about the amount.

What we measure

  • Delivery logicZones, slots, minimum amount, free threshold. In the measured sweets shop, the threshold is UAH 2,500 to the Nova Poshta branch, which is displayed with a banner on the main one: the mechanics are simple and working.
  • The structure of the assortmentHow many items, how many of them are weight goods and how many are sets of several units. Sets are counted separately: the balance is written off by components.
  • Site map statusNot "is it configured", but how many bytes it gives. In the measured candy store, /sitemap.xml returns an HTTP 200 with a body of zero bytes, the sitemap feed returns a 404, and the Sitemap line in the robots.txt is commented out from the default OpenCart template.
  • The speed of the mobile versionFirst server response and HTML weight. The niche benchmark from our measurement is 402.9 ms at 303.4 KB and 428.4 ms at 264.1 KB. This is the server part - the real mobile UX is already tested in live sessions.
  • PaymentHow many ways are actually connected and are they the ways your buyer pays. There are five of them in the measured sweet shop: LiqPay, WayForPay, Privat24, Visa, Mastercard.
  • Language versions in the site mapDid both get there? In the measured spice brand store, all 590 map addresses led to only one of the two language versions, even though the code declared two.
  • AnalyticsWhat does it cost and does it collect data. No meter was found in the sweet shop, in the spice shop there is a dead one next to a live GA4 - there is nothing to measure in both cases, but the reasons are different.

What you get

  • A document with numbers: the first response of the server, the weight of HTML, how many bytes the site map gives, a list of payments and deliveries, availability of analytics.
  • Analysis of the delivery logic: what you have already described, and what will have to be formalized before development.
  • Estimating work by set and product weight, if you have them, are the two items that drive volume the most.
  • A conversation for 30–40 minutes on the document, where we answer questions by points.

Timeline: 2-4 business days from the moment we receive the website address or product description

Why is it free

Because a grocery store is first of all delivery rules, and then a catalog, and until the rules are formulated, the estimate will be a fiction. Sorting them out is faster than haggling over a fork. The document remains yours, even if we do not make the store.

What's next

After the audit, we name the amount and term by stages with calendar dates, not the range. Then the contract, bill, act. If it becomes clear from the numbers that you do not need a store now, we will say so - the cases are listed below on this page.

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

  • Delivery rulesOne zone and one threshold is a setting. Several zones with different tariffs, slots per day and calculation by weight are a separate logic in the checkout, and it is this that most often moves the estimate up.
  • Gift setsA dozen fixed sets with a write-off by components and a designer, where the buyer assembles the box himself, differ in terms of the amount of work. The seasonal change of composition also adds support.
  • Heavy goodsSale for 100 g, weight step and recalculation of the price in the basket is not a field in the card, but a change in the logic of the basket. If there is a weight product, tell about it during the audit, and not at the stage of layout.
  • Price statusA ready-made CSV or XML with weight, composition and balance is a daily import. The price, where the warehouse is in PDF with a picture, has to be disassembled by hand, and this is a separate line of work.
  • Expiry datesOutput of the date and conditions of storage by the field in the card is included in the work. Automatic removal from sale by date is an addition on top of the store, and it is possible only if the dates come in the price.
  • Second languageTechnically, it's hreflang and sitemap rolled into one. Meaningful - a duplicate directory that someone has to maintain at all times; machine translation of the product composition here does more harm than good.
Cases

Tasks and results in numbers — all metrics measured by us

online store for the delivery of sweets, snacks and gift sets

Task
Sell ​​sweets, snacks and gift sets with delivery across Ukraine: catalog with filters by type and purpose, basket with delivery options, online payment. A separate emphasis is on the speed of the mobile version, because in the niche most orders are impulse and from the phone.
Solution
Shop on OpenCart 3.x using nginx with HTTP/2. Five online payment methods — LiqPay, WayForPay, Privat24, Visa, Mastercard — and four delivery methods, including courier and pickup. The condition of free delivery to the Nova Poshta branch from UAH 2,500 is posted on the main page; communication via Telegram, Viber, WhatsApp and Instagram.
Result
Measured on 07/31/2026: TTFB 402.9ms, full HTML load 532.4ms at 303.4KB - fastest first response among OpenCart stores of the batch. Defects found: it was not possible to measure the volume of the catalog from the outside, because /sitemap.xml gives HTTP 200 with a body of zero bytes, the feed of the site map is 404, and the theme does not display the counter of goods in the category; no analytics were found - no GTM, no GA, no pixel.

a brand of natural spices and seasonings with its own online store

Task
Sell ​​the brand's range online — mixes, monospices, seasonings for meat, fish and baking — with a recipe section and a selection by type of dish.
Solution
OpenCart store with two language versions. Payment by PrivatBank, Monobank, cash on delivery and on account; delivery by Nova Poshta, Ukrposhta and self-delivery. GroceryStore structured data with address, coordinates and opening hours, connected to Google Tag Manager and GA4.
Result
Catalog — about 580 products and 7 categories. TTFB 428.4ms, full load 488.2ms with HTML weight 264.1KB. Defects found: The sitemap contains 3,971 entries for 590 unique addresses, and all 590 lead to only one of the two language versions; next to the live GA4 is a second meter that has not collected data since 2023.

Did not find your case?

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

Process steps

Transparent stages with approval at every step

Total duration:25–45 days

  1. Audit and brief

    3-5 working days

    We measure the current state, if the site already exists, and analyze the delivery rules, assortment, sets and weight of the product. The output is a TK, based on which the estimate is calculated and the work is accepted.

  2. Directory and card structure

    3-5 working days

    Tree of categories by product type and purpose, set of characteristics for the filter, card fields for storage, weight and expiration date, checkout steps. We agree to the design.

  3. Design

    5-8 working days

    Home, category, card, cart, checkout. Here we fix the target weight of the page: the benchmark of the niche from our measurement is 264.1–303.4 KB of HTML on the main page.

  4. Assembling the store and delivery logic

    8-13 working days

    Theme layout, catalog and filter, shopping cart, delivery zones and thresholds, sets with write-off by components, admin roles, payment, delivery and return pages.

  5. Catalogue, payment, analytics

    4-9 working days

    Price import with field mapping, payment and carrier connectivity, GTM and GA4 with cart and purchase events, JSON-LD, sitemap with response size validation.

  6. Testing, transfer, launch

    2-5 working days

    End-to-end running of the order from the shopping cart to the TTN, checking the free shipping threshold at the limit of the amount, measuring the first response and HTML weight, passing the admin check with your manager.

Technologies & integrations

What we build on and what it connects to

Stack

  • OpenCart 4.x is the basic version; Not every module vendor has delivery zones under 4.x
  • OpenCart 3.x — when the required module for 4.x is not available; the branch is no longer being developed
  • PHP in supported version - measured niche store was 7.3 without support since 2021
  • MySQL — the product catalog is small, a separate search engine is unnecessary here
  • nginx + HTTP/2 — keeps the first response around 400 ms; then rests on the topic, not on the server
  • HTTPS — without it, the browser warns against you; it does not make the site safe
  • Module of delivery zones — tariff by address and weight; slots have to be added by the hour
  • Lazy Image Loading - Removes photo weight but not HTML weight

Integrations

  • LiqPay
  • WayForPay
  • Privat24
  • Visa/Mastercard
  • postpaid
  • Nova Poshta
  • Ukrposhta
  • city ​​courier
  • self pickup
  • Google Tag Manager
  • GA4
  • Meta Pixel
  • Telegram
  • Viber
  • Instagram
Your product store versus direct sales and marketplace

How this option differs from the alternative

Delivery rulescheckout counts: zone, weight, free threshold
Gift setsa separate position with write-off of the balance by components
Composition and expiration datecard fields, the same for all items
Sales commissionno — hosting, domain and acquiring
Customer datayour order database is being unloaded
What we need from you

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

  1. Price: name, weight or volume, composition, price, balance, category. Machine file, not photo table.
  2. Product photos - in products they sell more than the description.
  3. Delivery rules: zones, minimum amount, free threshold, slots if you have them.
  4. Composition of gift sets by items, if you sell them.
  5. Access to hosting and domain or agree to choose hosting for you.
  6. One person with the right to approve the catalog and delivery rules.

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 free delivery from the amount?

This rule in the checkout plus a visible threshold in the cart: the buyer must see how much is left to buy. In the sweet shop we measured, the threshold is UAH 2,500 for the Nova Poshta branch, and it is displayed with a banner on the main street. Mechanics gives an effect only when the number is visible before registration, and not after. What it does not do is not create demand: the threshold raises the check for those who have already decided to buy, and does nothing to help those who came to look.

We have gift sets from different items - is it difficult?

This is a separate logic, and it must be laid at the start. The set is a separate item with its own price and photo, but the balance must be paid by component, otherwise you will be selling a set that is missing one box. Our recommendation: do not start the set as a regular product with its own balance, even if it seems that it is faster - in the first week before the holiday, the difference will disappear through cancellations. If there are many sets and the composition changes every season, this significantly affects the estimate.

Why is the store not in the index, although the site map is supposedly there?

Because it can give zero addresses. In the candy store we measured, /sitemap.xml returns an HTTP 200 with a body of zero bytes, the sitemap feed returns a 404, and the sitemap line in robots.txt is commented out from the default template. Everything looks normal in the browser, in fact the search engine does not receive any address. We check this first and measure it in bytes. Fair margin: the sitemap itself does not raise items and does not guarantee indexation, and the real number of indexed pages is visible only in your Search Console.

We have two languages ​​- will both be found in the search?

Only if both are in the sitemap. Measured counterexample: For a spice brand store, the map contains 3,971 entries for 590 unique addresses, and all 590 lead to only one of the two language versions, even though the code declares two. The second version for the search engine simply did not exist. We compile hreflang and sitemap together, not separately. And we warn you right away: the second language is a duplicate directory that someone has to maintain; a machine translation of the product composition will do worse than one well-made version.

What about expiration dates?

On the website, we display the term and conditions of storage in a field on the card, and batch management remains in your accounting system. Automatic removal from sale by date is a separate modification on top of the store: it is possible, but requires that the dates come in the price, and not live in the head of the storekeeper. This is what we clarify at the audit, because the answer depends on whether this line will be in the estimate.

We sell heavy goods - nuts, cereals, cheese. Is it laid?

Yes, but not by field in the card. The weight step, price recalculation and rounding of the actual weight during assembly affect the basket and checkout, not just the product card. Plus, the weight of the order then goes into the delivery calculation — this is the same block of logic. Tell about the weight product at the audit: learning about it at the layout stage means reworking the already agreed basket.

How many payment methods can I connect?

As much as your buyer actually pays. There are five of them in the measured sweet shop — LiqPay, WayForPay, Privat24, Visa, Mastercard — and it is justified for an impulse purchase from the phone. But ten logos in the footer do not sell by themselves: each gateway is a commission and a separate item in the reconciliation at the end of the month. Sometimes the right decision is to remove a payment method, rather than adding another one.

Will the store be fast on the phone?

Depends on the weight of the page and the topic, not what the products are. The two measured niche stores give a first response of 402.9 and 428.4 ms at 303.4 and 264.1 KB of HTML - this is a normal corridor and we measure it before launch, not after complaints. The line of fairness here is this: speed removes the technical loss, but does not make the offer attractive. A page that loads in 200ms will simply give a person a reason to leave faster.

How long does development take and what does the deadline depend on?

25–45 working days from approval of technical specifications, six stages. The catalog in the niche is usually small, so the main time is not spent on imports, but on the logic of delivery and sets. If the delivery rules have already been formulated on paper, the term runs according to the lower limit; if they have to be invented together with you during development - on top.

Send the price and delivery rules - we'll get back with the numbers

In 2-4 working days, you will receive a document: speed, weight of HTML, status of the site map, list of payments and deliveries, assessment of works by sets and product weight. Next - the amount and term by stages.

From measured casesCatalog — about 580 products and 7 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.