Задача
В XML-фиде поставщик передает срок поставки текстом: 3-5 дней, 14 дней, иногда на заказ. Для каталога нужен числовой lead time, чтобы фильтровать и сортировать товары.
Короткий ответ
Откройте настройки значения delivery_time и добавьте правило: условие Регулярное выражение со значением \d+ (находит одну или несколько цифр подряд), действие Удалить все, кроме.
Как сделать в Eofferix
Откройте настройки значения
delivery_timeв XML-редакторе.
Анимация показывает открытие настроек именно значения XML-узла, а не всего offer.Добавьте правило: условие
Регулярное выражение, значение\d+(находит одну или несколько цифр подряд), действиеУдалить все, кроме.
Правило оставляет первое найденное число и убирает текстовую единицу измерения. Сохраните настройки и проверьте строки с диапазоном, одним числом и текстом без числа.
Было / стало
Было
исходные данные<catalog>
<offers>
<offer id="4001"><sku>SKU-4001</sku><name>Лампа Ладога</name><delivery_time>3-5 дней</delivery_time><stock>12</stock></offer>
<offer id="4002"><sku>SKU-4002</sku><name>Кресло Волга</name><delivery_time>14 дней</delivery_time><stock>4</stock></offer>
</offers>
</catalog>Стало
результат<catalog>
<offers>
<offer id="4001"><sku>SKU-4001</sku><name>Лампа Ладога</name><delivery_time>3</delivery_time><stock>12</stock></offer>
<offer id="4002"><sku>SKU-4002</sku><name>Кресло Волга</name><delivery_time>14</delivery_time><stock>4</stock></offer>
</offers>
</catalog>Что важно помнить
- Для диапазона
3-5 днейправило оставит первое число:3. Если нужен максимальный срок, используйте отдельное выражение для числа после дефиса. - Для значений без числа, например
на заказ, добавьте отдельное правило замены или условие выгрузки. - Такой прием подходит для больших XML-фидов, где срок поставки нужен как числовое поле каталога.