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

Как убрать из YML-фида товары с нулевой ценой

2026-06-29
Задача

Поставщик оставляет в YML товары с price равным 0 или пустым значением. Эти позиции не должны попасть в импорт.

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

Поставьте условия экспорта на offer: price не пустой и price больше 0. Если нужен вариант без числового сравнения, используйте price не пустой и price не равно 0. Регулярное выражение ^(?:[1-9][0-9]*(?:[,.][0-9]+)?|0[,.][0-9]*[1-9][0-9]*)$ находит положительное число и нужно только для строгой проверки формата.

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

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

  2. Откройте настройки узла.

    Открытие настроек offer
    Анимация показывает открытие настроек повторяющегося товарного узла.
  3. Способ 1, первая строка: добавьте условие price Не пустое.

    Условие экспорта
    Это один из вариантов настройки условия; остальные варианты добавлять не нужно.
  4. Способ 1, вторая строка: добавьте условие price Больше 0.

    Условие экспорта
    Это один из вариантов настройки условия; остальные варианты добавлять не нужно.
  5. Способ 2: если без числового сравнения, используйте price Не равно 0 вместе с проверкой Не пустое.

    Условие экспорта
    Это один из вариантов настройки условия; остальные варианты добавлять не нужно.
  6. Способ 3: регулярное выражение ^(?:[1-9][0-9]*(?:[,.][0-9]+)?|0[,.][0-9]*[1-9][0-9]*)$ (находит положительное число: целую часть больше нуля или дробь 0.xx с ненулевой дробной частью) используйте для строгой проверки формата.

    Условие экспорта
    Это один из вариантов настройки условия; остальные варианты добавлять не нужно.

Было / стало

Было

исходные данные
<yml_catalog date="2026-06-29 10:00">
  <shop>
    <offers>
      <offer id="YML-12001" available="true">
        <name>Лампа Ладога</name>
        <price>1290.00</price>
        <currencyId>RUB</currencyId>
      </offer>
      <offer id="YML-12002" available="true">
        <name>Кресло Волга</name>
        <price>0</price>
        <currencyId>RUB</currencyId>
      </offer>
      <offer id="YML-12003" available="true">
        <name>Полка Нева</name>
        <price>
        </price>
        <currencyId>RUB</currencyId>
      </offer>
    </offers>
  </shop>
</yml_catalog>

Стало

результат
<yml_catalog date="2026-06-29 10:00">
  <shop>
    <offers>
      <offer id="YML-12001" available="true">
        <name>Лампа Ладога</name>
        <price>1290.00</price>
        <currencyId>RUB</currencyId>
      </offer>
    </offers>
  </shop>
</yml_catalog>

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

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

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