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

Как очистить цену с валютой в JSON-каталоге поставщика

2026-06-29
Задача

В JSON-каталоге цена лежит в price.amount как 1490 RUB. Для импорта поле должно содержать только число, а валюта остается в отдельном price.currency.

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

Для разных валютных строк используйте регулярное выражение [0-9]+(?:[,.][0-9]+)? (находит целое или дробное число: одну или несколько цифр и необязательную дробную часть через точку или запятую). Если формат всегда 1490 RUB, можно удалить подстроку RUB.

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

Способ 1: как сделать в Eofferix через регулярные выражения

  1. В JSON-снапшоте выберите значение amount внутри price.

    JSON-поле price amount
    Выбранное значение будет очищаться перед выгрузкой.
  2. Откройте настройки значения.

    Открытие amount в JSON
    Анимация показывает открытие настроек JSON-значения.
  3. Добавьте правило: условие Регулярное выражение, значение [0-9]+(?:[,.][0-9]+)? (находит целое или дробное число: одну или несколько цифр и необязательную дробную часть через точку или запятую), действие Удалить все, кроме.

    Правило очистки amount
    Правило оставляет только число из строки с валютой.

Способ 2: как сделать в Eofferix через поиск подстроки

  1. Если валюта всегда записана одинаково, используйте правило подстроки: удалите RUB или другой стабильный фрагмент из amount.

Было / стало

Было

исходные данные
{
    "supplier": "Север",
    "products": [
        {
            "sku": "SKU-3001",
            "name": "Лампа Ладога",
            "price": {
                "amount": "1490 RUB",
                "currency": "RUB"
            }
        },
        {
            "sku": "SKU-3002",
            "name": "Кресло Волга",
            "price": {
                "amount": "8420 RUB",
                "currency": "RUB"
            }
        }
    ]
}

Стало

результат
{
    "supplier": "Север",
    "products": [
        {
            "sku": "SKU-3001",
            "name": "Лампа Ладога",
            "price": {
                "amount": "1490",
                "currency": "RUB"
            }
        },
        {
            "sku": "SKU-3002",
            "name": "Кресло Волга",
            "price": {
                "amount": "8420",
                "currency": "RUB"
            }
        }
    ]
}

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

  • Не удаляйте поле currency, если оно нужно для дальнейшего импорта или проверки.
  • Для США в английском примере используется USD, для Испании и Франции - EUR, для России - RUB.
  • Если поставщик меняет разделитель дробной части, регулярное выражение надежнее подстроки.

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

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

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