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

Как убрать из YML товары без нормального barcode

2026-06-29
Задача

В YML часть товаров пришла с пустым barcode или текстом вместо штрихкода. В импорт должны попасть только позиции с нормальным кодом.

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

Поставьте условие экспорта на offer: barcode должен соответствовать регулярному выражению ^(?:[0-9]{8}|[0-9]{12,14})$ (находит строку только из цифр длиной 8, 12, 13 или 14 символов; контрольную сумму не проверяет).

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

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

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

    Открытие настроек offer
    Анимация показывает открытие настроек повторяющегося товарного узла.
  3. Добавьте условие экспорта для barcode: barcode ^(?:[0-9]{8}|[0-9]{12,14})$.

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

Было / стало

Было

исходные данные
<yml_catalog date="2026-06-29 10:00">
  <shop>
    <offers>
      <offer id="YML-27001"><name>Лампа Ладога</name><vendorCode>LA-27001</vendorCode><barcode>4601234567890</barcode><price>1290.00</price></offer>
      <offer id="YML-27002"><name>Кресло Волга</name><vendorCode>KR-27002</vendorCode><barcode></barcode><price>8400.00</price></offer>
      <offer id="YML-27003"><name>Полка Нева</name><vendorCode>PN-27003</vendorCode><barcode>bad-code</barcode><price>990.00</price></offer>
    </offers>
  </shop>
</yml_catalog>

Стало

результат
<yml_catalog date="2026-06-29 10:00">
  <shop>
    <offers>
      <offer id="YML-27001"><name>Лампа Ладога</name><vendorCode>LA-27001</vendorCode><barcode>4601234567890</barcode><price>1290.00</price></offer>
    </offers>
  </shop>
</yml_catalog>

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

  • Если нужно только убрать пустые значения, используйте условие не пустое без регулярного выражения.
  • Регулярное выражение проверяет формат, но не контрольную сумму штрихкода.

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

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

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