HomeCases › Dairy distributor, Kazakhstan
Dairy distributor · Kazakhstan · MoySklad · stock every 15 minutes

111 dairy SKUs online with stock levels that are never more than 15 minutes old

A regional distributor of a dairy brand needed a storefront that shows what is actually in the warehouse. No shop platform fitted the price list and the two languages, so we built one that reads MoySklad on a schedule and only writes what changed.

Catalogue 111 SKUs, 9 categoriesLanguages Russian + KazakhInventory MoySkladCatalogue live 22 July 2026

Results

Figures are from the build log and the first nine days of search data after launch. Sales figures belong to the distributor and are not published.

MetricBeforeAfter
Stock freshness on the siteprice list by phoneevery 15 minutes
Product pages0222 bilingual pages + shopping feed
Price and stock mismatches (audit)0 discrepancies
Homepage weight15.6 KB gzipped, 0 render-blocking files
Storage operations per month≈5 300 (redundant writes)within the 2 000 quota — write only on change
First 9 days in search499 impressions, position ≈10, 79% Kazakhstan, 89% mobile

The challenge

  1. Stock that customers could trust

    Buyers ordered items that were out of stock and skipped items that had just arrived. The truth was in MoySklad; the website did not know.

  2. Two languages, one catalogue

    Every product, category and page needed Russian and Kazakh without doubling the editing work.

  3. No product photos

    Most items existed only as pages in a 21-page PDF catalogue from the producer.

  4. Cheap hosting, strict quotas

    The chosen data layer allowed 2 000 storage operations a month. Naive syncing burned through 75% of that in days.

What we built

Scheduled reading from MoySklad

Stock every 15 minutes, catalogue and prices about every two hours, within a 05:00–23:00 window.

Write only on change

Three layers of change detection — in memory, stable serialisation before publishing, and a raw-data skip — cut writes from about 5 300 a month to within quota.

Prices rendered live

Availability and price markup is generated on the page from the live data layer, so search engines and the shopping platform never see a stale figure.

Images from the PDF

Product photos are cropped from the catalogue pages, then auto-cropped and rescaled so new photos match the rest of the grid.

Back office on top

Manual price overrides, hide/delete flags and promo codes sit in an admin panel above the base catalogue, so the distributor stays in control without touching the sync.

Search groundwork

222 bilingual product pages, corrected category codes against the official taxonomy, a product feed, and a content section of 110 topics.

ReadMoySklad stock and catalogue
Diffskip anything unchanged
Publishlive data layer
Render111 cards, 222 pages, feed
Overrideadmin: prices, hide, promos
Measuresearch console, analytics

How it went live

Build

Catalogue and storefront

111 SKUs in 9 categories, bilingual, product images extracted from the PDF catalogue.

22 July 2026
Connect

Live inventory

MoySklad sync added the next day; domain, analytics and search groundwork finished within the week.

23 – 28 July 2026
Harden

Quota incident and fixes

A storage-quota alert on 2 August led to change-only writes; structured data and category codes corrected on 6 – 7 August.

2 – 7 August 2026

Honest limits

The distributor chooses to hide 76 of 112 items, so the public assortment is smaller than the catalogue. Early prices were illustrative until live pricing arrived. There are no customer reviews yet, so rating markup is left empty rather than invented. Several content topics get impressions but few clicks — the snippets need rewriting, not more pages. Delivery covers one city, which the shopping platform cannot target, so it is stated in the page text.

Frequently asked questions

Why not Shopify or a marketplace?

The price list had B2B tiers, two languages and a warehouse system already in use. A platform would have meant a second catalogue to maintain. Here MoySklad stays the single source and the site follows it.

Can customers order on the site?

The storefront shows live availability and prices; order capture into MoySklad is the next stream and is described on the orders-to-ERP solution page.

How do you keep stock accurate without hammering the API?

By reading on a schedule and writing only when something changed. Three layers of change detection keep storage operations within quota while stock stays within 15 minutes of the warehouse.

Does it work with 1C instead of MoySklad?

Yes. 1C exposes stock and catalogue through OData or HTTP services; the read-diff-publish pattern is the same.

What did search look like after launch?

499 impressions and an average position around 10 in the first nine days, 79% from Kazakhstan and 89% on mobile. Clicks were low, which points at snippet wording — the next thing to fix.

Similar stream in your business?

Tell us which documents or requests eat the hours. Free audit, fixed pilot price, no commitment.

Get a free automation audit