How to convert a catalog to YML

A practical guide to converting XML, JSON, CSV, XLS, and XLSX to YML: marketplace presets, XML snapshot, guide panel, categories, and final checks.

YML is an XML-based product feed format. The input format does not matter: Eofferix can use XML, YML, JSON, CSV, XLS, XLSX, a file available by URL or FTP/SFTP, an email attachment, an archive, or an export prepared by another service as the source. After you select YML, Eofferix creates a working XML snapshot where you configure the final structure and transformation rules. For a specialized scenario, the guide panel also helps check the selected platform’s requirements.

How to set up a YML export

  1. Open “Interpreter” and click “New profile”.
    New profile button in Eofferix Interpreter
    The red frame highlights New profile.
  2. Select the data source: upload a new file or choose an existing source.
    Selecting a data source for a profile in Eofferix
    The red frame highlights the data-source options.
  3. Choose YML as the export format.
    Selecting YML as the export format in Eofferix
    The red frame highlights the YML format.
  4. If you need a specialized file, choose a marketplace or scenario. Universal YML is selected by default.
    Selecting a marketplace or YML scenario in Eofferix
    The red frame highlights the marketplace or YML scenario field.
  5. Scroll to the bottom of the profile and click Continue. The service saves the profile and opens the XML snapshot with the source nodes and the generated YML structure. The ! mark identifies nodes required by the selected platform.
    Continue button in the bottom action bar of an Eofferix profile
    The Continue button is in the bottom-right corner of the profile page.
  6. Click guide-panel suggestions to apply detected renames or create missing nodes. Complex rules must be configured manually.
  7. Save the template and start the export.

How to update YML automatically

For a recurring feed, you do not need to upload the source file and start the conversion manually every time. Connect a source that Eofferix can check automatically: a direct URL, FTP/FTPS, an email attachment, Google Sheets or Yandex Tables, or cloud storage. To create and test the profile, see First Profile Run; to receive new source versions, see Source Load Schedule.

  1. The source receives a fresh price list or catalog on its own schedule.
  2. After a successful update, the profile starts on the event and applies the saved mappings, transformations, and selected YML preset.
  3. The finished file is published at a permanent URL that you can give to the target platform. Every successful run updates the file at the same URL.

Configure the “update source → generate YML” sequence as described in Profile and Source Scheduler. The permanent URL and result delivery settings are covered in Result delivery after transformations.

How to use the guide panel

The editor checks the current template against the selected platform and shows the results on the right. Requirements are grouped into structure, required, conditionally required, recommended, unsupported, and processed properties. A green check means the item is satisfied; ! requires attention; an information icon explains a recommendation and does not change anything by itself.

The panel never applies a suggested fix silently. Action buttons run only after a click. Hover over an icon to see its tooltip.

What to do with properties the platform does not support

This section lists source-catalog properties that are not part of the selected platform's requirements. Each simple property offers:

  • Delete — omit the property from the export;
  • Convert — turn it into <param name="property_name">value</param>. The icon appears only for platforms whose format supports param.

After deletion or conversion, the row leaves the attention list and moves to the collapsed “Processed fields” section. Every processed property has its own Undo icon, so you can revert that action without resetting other settings.

Delete or convert a property that the platform does not support into a YML parameter
The red circle highlights the wand that converts the property to param. The trash icon next to it omits the property from the export.

Working with categories

Not every platform requires categories. If the selected scenario does not use them, you can skip category setup. When it does, the editor supports several source-data layouts:

  • the catalog already contains category IDs and a separate category dictionary — keep the relationship between categories/category/@id and offer/categoryId, and the panel will check it;
  • each product contains only a category name or path — select that property under “Product categories”; Eofferix will generate numeric IDs, build categories, and fill categoryId automatically;
  • categories are stored elsewhere, nested differently, or the platform expects another structure — create, move, or select the required nodes manually.

A category may be stored inside each product or separately in the source. The selected platform's requirements determine the output structure.

A full check does not run after every edit. Click “Check all products” when setup is ready. After changes, use “Recheck”; if a long check was interrupted, use “Continue check”. Even a very large catalog therefore does not need to be rechecked after every action.

Category setup scenarios and a manual full category check in the YML editor
The red circle highlights the category-check button. The full check runs only when you request it.

YML presets

A preset does not replace official marketplace rules. It gives you a starting structure and highlights what is missing in the current profile. Always check the current parameter list in the documentation of the service that will receive the feed.

YML preparation for Yandex Market

This scenario targets the Market seller cabinet. The panel checks yml_catalog, date, shop, currencies, categories, offers, and the single product node offer. Field requirements depend on the file purpose: product cards, prices, stock, or placement management. In Eofferix, url is not treated as unconditionally required for this preset; it is shown as conditionally important. See Yandex Market YML documentation.

YML preparation for Yandex Products / Search

This scenario prepares a product feed for Yandex Search-related product surfaces. The panel requires id, name, url, price, currencyId, categoryId, picture, and description inside every offer. See Yandex Products feed documentation.

YML preparation for Yandex Direct

This scenario is for advertising feeds. Product URL, price, currency, category, and image are important. If you use the available attribute, pass true or false, not a number. For vendor.model offers, vendor and model are checked as well. See Yandex Direct YML feed requirements.

YML preparation for Yandex Business products and services

This scenario is for a company price list in Yandex Business: products and services can appear in a company card. In this preset, shop/url is not required as a product-card link; section, name, price, currency, category, and vendor or brand data are more important when your price list needs them. See Yandex Business price list documentation.

YML preparation for 2GIS

2GIS accepts goods and services from a file or URL in YML/CSV format. The preset builds a typical YML structure with products, prices, currency, and categories, and recommends URL, image, and description. Public 2GIS help explains the upload method; verify the exact template in the 2GIS business cabinet. See 2GIS help for goods and prices.

YML preparation for Ozon: prices and stock

This scenario does not replace the Ozon Seller API. Use it when you need to provide a file for updating prices and stock by product identifier. Categories are not required here; id, price, currencyId, and stock matter most. See Ozon feed update article.

Universal YML

Use Universal YML when the receiver simply asks for a YML file without its own requirement set. In this mode, the specialized guide panel is not shown: you define the structure, node names, attributes, and transformation rules yourself.

What to check before launch

  • the root is yml_catalog when the receiver expects it;
  • the catalog date is in RFC 3339 with a timezone when the scenario requires it;
  • shop, currencies, categories, offers, and offer are at the expected nesting levels;
  • offer/@id is unique and not empty;
  • price is numeric, and currencyId matches the currency in currencies;
  • if the recipient requires categories, categoryId must be numeric and reference an existing categories/category/@id;
  • url and picture links are externally accessible when the marketplace requires them;
  • available is true or false if used;
  • the test file passes the target-service uploader without critical errors.
Important
External service requirements change. Eofferix helps assemble the file and highlight common problems, but the final validation always happens in the cabinet of the service that receives the YML feed.