Каталоги поставщиков

Как оставить в YML-фиде только товары с рабочей ссылкой url

2026-06-29
Задача

В YML-прайсе поставщика часть url уже абсолютная, часть приходит как /catalog/sku-6002, а иногда поле пустое или содержит только базовый домен https://supplier.example. В импорт должны попасть только товары с полноценной ссылкой.

Короткий ответ

Настройте преобразование на значении url: если текущее значение не содержит https://supplier.example, добавьте этот домен в начало. Затем если результат ровно равен https://supplier.example, замените его на пусто. В условиях выгрузки оставьте только url, где текущее значение после преобразований не пустое.

Как сделать в Eofferix

  1. В XML/YML-снапшоте выберите значение url внутри повторяющегося offer.

  2. Откройте настройки значения url.

    Открытие настроек url
    Настройки применяются к значению ссылки, а не к узлу offer целиком.
  3. Добавьте правило преобразования: текущее значение Не содержит подстроку https://supplier.example, действие Добавить в начало, результат https://supplier.example.

    Правило добавления домена к url
    Правило достраивает относительные пути вроде /catalog/sku-6002 до абсолютной ссылки.
  4. Добавьте второе правило: текущее значение Равно https://supplier.example, действие Заменить на, результат оставьте пустым.

    Правило очистки базового домена без пути
    Так пустые ссылки и ссылки без пути превращаются в пустое значение.
  5. В условиях выгрузки поставьте: текущее значение После преобразований Не пустое. Область условия — для элемента целиком, чтобы исключался весь offer.

    Условие после преобразований для url
    После двух правил в результат попадают только товары с непустой рабочей ссылкой.

Было / стало

Было

исходные данные
<yml_catalog date="2026-06-29 10:00">
  <shop>
    <offers>
      <offer id="YML-6001" available="true">
        <name>Лампа Ладога</name>
        <url>https://supplier.example/catalog/sku-6001</url>
        <currencyId>RUB</currencyId>
        <price>1290.00</price>
      </offer>
      <offer id="YML-6002" available="true">
        <name>Кресло Волга</name>
        <url>/catalog/sku-6002</url>
        <currencyId>RUB</currencyId>
        <price>8400.00</price>
      </offer>
      <offer id="YML-6003" available="true">
        <name>Полка Нева</name>
        <url>
        </url>
        <currencyId>RUB</currencyId>
        <price>990.00</price>
      </offer>
      <offer id="YML-6004" available="true">
        <name>Полка Нева</name>
        <url>https://supplier.example</url>
        <currencyId>RUB</currencyId>
        <price>990.00</price>
      </offer>
    </offers>
  </shop>
</yml_catalog>

Стало

результат
<yml_catalog date="2026-06-29 10:00">
  <shop>
    <offers>
      <offer id="YML-6001" available="true">
        <name>Лампа Ладога</name>
        <url>https://supplier.example/catalog/sku-6001</url>
        <currencyId>RUB</currencyId>
        <price>1290.00</price>
      </offer>
      <offer id="YML-6002" available="true">
        <name>Кресло Волга</name>
        <url>https://supplier.example/catalog/sku-6002</url>
        <currencyId>RUB</currencyId>
        <price>8400.00</price>
      </offer>
    </offers>
  </shop>
</yml_catalog>

Обрабатывайте данные быстрее с Eofferix

Создайте бесплатный аккаунт, чтобы автоматизировать каталоги и прайс-листы под ваши правила.

Зарегистрироваться