Home · Blog · What is a YML feed and how to turn it into a catalog for a chatbot
What is a YML feed and how to turn it into a catalog for a chatbot
A YML feed is a file with all of a store's products in one standard format: name, price, photos, availability, link. Yandex created it for Market, and today almost every platform in the Russian-speaking internet exports it — and almost every service understands it: advertising, aggregators, marketplaces, chatbots. We look at how a feed is built, where to get its link and which mistakes most often stop it from working — using the example of how CHBT reads it.
YML in plain words
YML (Yandex Market Language) is an XML file at a permanent link, such as https://shop.ru/export/yml.xml. The store updates it itself, and services re-read it periodically. The advantage is that you do not have to type the catalog into every service by hand: change a price on the website — after a while it changes everywhere the feed is connected.
For a chatbot the feed is the source of what the bot knows about products: what is available, what it costs, what it looks like and where to send the buyer.
What a feed consists of
Inside are the store, its currencies, categories and a list of offers. One offer (offer) is one price-list item:
<offer id="1001" available="true" group_id="77">
<name>Women's down jacket, blue, 46</name>
<url>https://shop.ru/p/pukhovik-77</url>
<price>8490</price>
<oldprice>9990</oldprice>
<currencyId>RUR</currencyId>
<categoryId>12</categoryId>
<picture>https://shop.ru/img/77-1.jpg</picture>
<vendor>Northern Wind</vendor>
<description>A warm down jacket for down to −25…</description>
<param name="Color">blue</param>
<param name="Size">46</param>
</offer>- id — the unique item number.
- available — in stock or not.
- group_id — a shared number for variants of one model (colors, sizes).
- name — the name; for the
vendor.modeltype the manufacturer and model are used instead. - url, price, oldprice, currencyId — product link, price, old price, currency.
- picture — photos, there can be several.
- param — “name — value” attributes.
Where to find your feed URL
On almost every platform the feed is enabled in the export settings or in the Yandex Market section:
- 1C-Bitrix — the Yandex Market export module (a YML export profile).
- InSales, Ecwid, Tilda, OpenCart, Shop-Script, CS-Cart — a built-in export for Market or an export app.
- MoySklad, RetailCRM — catalog export by link.
- WooCommerce, Shopify — via feed plugins or apps.
If the platform exports not YML but a Google Merchant feed (XML) or CSV by link, that suits most services too. CHBT detects the format from the file contents and asks for the platform only to hint where to look for the link.
Product variants: why you need group_id
YML is flat: each size and color is a separate offer. If variants of one model share a group_id, a service understands that this is one product in different versions. In CHBT such a group becomes one product with variants — and for “down jacket 46 blue” the bot shows one card, not six similar ones.
No group_id — each offer becomes a separate product. This is not an error, the store simply does not distinguish a model from its versions.
Common feed mistakes
- No available attribute. Many exports do not set it. In that case CHBT records availability as “unknown” and does not tell the buyer “out of stock” — but the bot cannot confirm availability either.
- A foreign currency. CHBT accepts rubles, tenge and sums. An offer in another currency is skipped with a note, not converted at an exchange rate.
- A feed behind a password or available only from the admin panel — the service cannot download it. You need a public link.
- A feed that is too large. CHBT's limit is 20 MB and 60 seconds to download; gzip compression is fine.
- No price or a price of 0 — such a product ends up in the list with an error and will not be offered.
- Photos with a relative path like
/img/1.jpg— full https addresses are needed.
How to connect a feed to a bot in CHBT
- “Marketplaces” → “Online store”: choose the platform, paste the “Link to product feed” and click “Connect a store”.
- In a few minutes the products appear in “Sales” → “Catalog” as drafts. Check the “with errors” counters and open a couple of products.
- Publish the products the bot should offer.
- The AI sales assistant shows the catalog to buyers: “Sales” → “Set up sales”.
CHBT re-reads the feed when the data is more than six hours old. If you changed a price urgently, click “Update now” on the store card — no more than once every two minutes. Up to 20 photos, up to 30 attributes, a name up to 191 characters and a description up to 4,000 come from the feed.
You can connect a feed and publish products on any plan. The AI sales assistant picks products for the buyer — it is available from Basic, 650 ₽ a month per bot.
YML, Google Merchant or CSV: which to choose
| Format | When it fits | What matters |
|---|---|---|
| YML | An online store on any popular Russian-speaking platform | Photos, attributes, variants via group_id |
| Google Merchant (XML) | A store on Shopify, WooCommerce or with Google ads already set up | Also with photos and prices; CHBT parses it automatically |
| CSV by link | The catalog is kept in a spreadsheet that can be published by link | Read by the file import rules |
| CSV/TSV/JSON file | Few products, no website | Manual upload, up to 5 MB and 50,000 rows, no photos |
If a platform has both YML and Google Merchant, choose YML: it is supported more fully in the Russian-speaking market, and the exports are usually filled in more carefully.
How to check a feed before connecting it
- Open the link in a browser without logging into the admin panel. If you see XML with
<offer>tags, the feed is public. If it asks for a password or shows a login page, services will not download it. - Count the offers. Search the page for
<offer— their number should roughly match the number of products on the site. - Check a couple of products: is there a price, a currency, photos with a full https address, the available attribute.
- Look at the size. If the file is over 20 MB, ask the platform to serve it in gzip or to export only the categories you need.
How often the catalog is updated
Your platform updates the feed itself — some once an hour, others once a day or by a button in the admin panel. CHBT re-reads the feed when the data is more than six hours old, and the “Update now” button on the store card works no more than once every two minutes. So the price in the bot may lag behind the site by the feed update time plus up to six hours. If prices change often, set up frequent feed updates on the platform and click “Update now” after big changes.
When you do not need a feed
If there are a dozen products and no website, there is no point in setting up a feed: the catalog is uploaded as a CSV file from a spreadsheet — with an “article” column, a preview and no duplicates on re-upload. Photos are not uploaded with file import, so the cards will be text-only. For Wildberries sellers the catalog is taken from the marketplace cards by API key — more on the product catalog page.
Каталог товаров для чат-ботаAI sales assistantCHBT for WildberriesHTTP request from a chatbot