LockStock docs

YML feed

What your feed must contain, how often we read it, and how removals are protected.

Your feed is a YML file (Yandex Market Language) at a public URL. Most platforms — 1C-Bitrix, InSales, WooCommerce plugins — already export one for marketplaces; the same file works for us.

How we read it

  • Every 60 minutes. If your server answers with ETag or Last-Modified, unchanged feeds cost one short request.
  • Limits: up to 500 MB, downloaded within 120 seconds, at most 3 redirects, up to 1,000,000 offers.
  • Public address only. Feeds on private network addresses are refused.
  • Encoding comes from the XML declaration; windows-1251 feeds are fine.
  • Changes of price and stock reach search quickly; changes of names, descriptions and specs are re-indexed in the same run.

What we read from an offer

ElementRequiredNotes
<offer id>yesYour product ID. It is the externalId used everywhere else
<offer group_id>Variants of one product share it
<offer available>false means out of stock; missing means available
<name>yesOr <typePrefix> + <vendor> + <model>, combined like Yandex does
<url>yesAbsolute http(s) link to the product page
<price>yesIn major units, at most 2 decimals
<oldprice>The price before a discount
<currencyId>yesMust be your store's currency: RUR or RUB, KZT, UZS, KGS, BYN
<categoryId>Links to <categories> in the shop section
<picture>Any number
<vendor>, <model>Brand and model
<description>HTML is stripped
<param name unit>Specs. Names and units are normalised for search, e.g. «ГБ» and «Gb». A product with fewer than three recognised specs gets the rest read from its name and description by the model; a <param> you send always wins
<outlets><outlet id instock>Stock per pickup point

An offer that misses a required field, uses another currency or has a malformed price is skipped. The sync report lists every skipped offer with the reason.

Pickup point names, addresses and hours are not part of YML. Send them through PUT /v1/catalog/outlets or to your LockStock contact.

Removals and the 30% safeguard

A product missing from the feed is removed from search. To protect you from a broken export, if a feed would remove more than 30% of your active products, removals are not applied and you get a warning. Products that are in the feed are still updated. If the products are really gone — say you moved to another platform and the IDs changed — the store owner can press Apply anyway on the dashboard's Catalog page.

A rejected feed stays rejected until you publish a different one: fix the export and the next run applies it.

On this page