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
ETagorLast-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-1251feeds 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
| Element | Required | Notes |
|---|---|---|
<offer id> | yes | Your 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> | yes | Or <typePrefix> + <vendor> + <model>, combined like Yandex does |
<url> | yes | Absolute http(s) link to the product page |
<price> | yes | In major units, at most 2 decimals |
<oldprice> | The price before a discount | |
<currencyId> | yes | Must 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.