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

Как убрать из YML-фида товары с available="false"

2026-06-29
Задача

В YML часть товаров отмечена атрибутом available="false". Эти позиции должны исчезнуть из результата, а доступные товары остаться.

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

Поставьте условие экспорта на offer: атрибут @available должен соответствовать регулярному выражению ^(true|1|yes)$ (находит значение, которое целиком равно true, 1 или yes).

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

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

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

    Открытие настроек offer
    Анимация показывает открытие настроек повторяющегося товарного узла.
  3. Добавьте условие экспорта для @available: @available ^(true|1|yes)$.

    Условие экспорта на offer
    Условие применяется к товару целиком.

Было / стало

Было

исходные данные
<yml_catalog date="2026-06-29 10:00">
  <shop>
    <offers>
      <offer id="YML-2001" available="true"><name>Лампа Ладога</name><categoryId>101</categoryId><price>24.90</price></offer>
      <offer id="YML-2002" available="false"><name>Кресло Волга</name><categoryId>205</categoryId><price>139.00</price></offer>
      <offer id="YML-2003" available="true"><name>Полка Нева</name><categoryId>101</categoryId><price>16.40</price></offer>
    </offers>
  </shop>
</yml_catalog>

Стало

результат
<yml_catalog date="2026-06-29 10:00">
  <shop>
    <offers>
      <offer id="YML-2001" available="true"><name>Лампа Ладога</name><categoryId>101</categoryId><price>24.90</price></offer>
      <offer id="YML-2003" available="true"><name>Полка Нева</name><categoryId>101</categoryId><price>16.40</price></offer>
    </offers>
  </shop>
</yml_catalog>

Что важно помнить

  • В YML available обычно атрибут, поэтому в условии используйте путь с @available.
  • Если поставщик использует in_stock или on, расширьте регулярное выражение только после проверки входных значений.

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

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

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