Сопоставление полей

Для того, чтобы данные правильно импортировались в правильное место, нужно задать правила сопоставления полей. Целевое поле это поле, в которое будет импортированы данные в системе, нажимаете добавить, выбираете в  списке нужно поле. Выражение для значения это либо номера столбцов для csv, xls, xlsx файлов, либо xpath для остальных форматов. Просто запомните, что в поле выражение для значения для csv, xls, xlsx пишутся номера столбцов цифрами, а для любых других форматов названия тегов как есть - vendor, price, производитель, картинка.

Варианты для csv\xls

  • Номера столбцов начинаются с 1
  • Текст в кавычках вставляется как есть
  • Запятые разделяют части выражения
  • Дефис в кавычках ("-") вставляет дефис
  • Для числовых полей (price) система автоматически очищает пробелы и заменяет запятую на точку
  • Для полей валют (currency) работает автоматическая нормализация
  • Для полей веса и размеров работает автоконвертация единиц измерения
  • Обязательные поля должны быть заполнены, иначе строка будет пропущена
  • Пустые значения в необязательных полях игнорируются
  • Комбинирование работает как конкатенация строк

Пример 1. Простой маппинг (прямое соответствие столбцов)

Для файла где столбцы идут по порядку: Артикул, Название, Цена, Наличие, Бренд.

Настройки: supplier_code = 1 (обязательное), name = 2 (обязательное), price = 3 (обязательное), availability = 4, brand = 5. Система просто берет значения из указанных столбцов.

Пример 2. Комбинирование нескольких столбцов

Нужно собрать полное название из бренда и модели. Столбцы: Артикул(1), Бренд(2), Модель(3), Цена(4).

Настройки: supplier_code = 1, name = 2," ",3 (результат: "Bosch GSB 13 RE"), price = 4. В кавычках можно указывать любые разделители.

Пример 3. Комбинирование с фиксированным текстом

Создание описания товара: description = "Артикул: ",1,", Наименование: ",2,", Цена: ",3," руб." Результат: "Артикул: 12345, Наименование: Дрель Bosch, Цена: 4500 руб."

Пример 4. Создание сложного названия

full_name = 2," (арт. ",1,")" — результат: "Дрель Bosch (арт. 12345)"

Пример 5. Использование дефиса как разделителя

code = 1,"-",2 — результат: "12345-Bosch"

Пример 6. Пропуск пустых столбцов

Если нужно объединить несколько столбцов с описанием, но некоторые могут быть пустыми: description = 4,"; ",5,"; ",6. Пустые столбцы просто пропускаются без создания лишних разделителей.

Пример 7. Маппинг для цен

Для поля price система автоматически очищает значение от пробелов и заменяет запятую на точку. Например "4 500,50" станет 4500.50. Но если значение "4 500,50 руб.", то " руб. " нужно вырезать через правила замены.

Пример 8. Маппинг для валют

Для поля currency система автоматически нормализует обозначения: "руб.", "р.", "RUR" преобразуются в "RUB"; "$", "доллар", "usd" в "USD"; "€", "евро", "eur" в "EUR".

Пример 9. Маппинг для веса

Для поля weight_kg система автоматически конвертирует единицы: "1.8 kg" = 1.8, "2300 g" = 2.3, "3.5 lb" = 1.59, "500 г" = 0.5.

Пример 10. Маппинг для размеров

Для полей length_mm, width_mm, height_mm система конвертирует в миллиметры: "280 mm" = 280, "28 cm" = 280, "12 in" = 304.8, "1.5 м" = 1500.

Пример 11. Комбинирование с разными разделителями

specifications = "Мощность: ",4,"; Вес: ",5,"; Обороты: ",6 — результат: "Мощность: 650 Вт; Вес: 1.8 кг; Обороты: 2800 об/мин"

Пример 12. Создание строки со скобками

full_info = 2," ",3," [",4,", ",5,", ",6,"]" — результат: "Bosch GSB 13 RE [650 Вт, 1.8 кг, 2800 об/мин]"

Пример 13. Маппинг со значениями по умолчанию

Если поле необязательное и может быть пустым, можно настроить значение по умолчанию в свойствах поля. Например для description: "Без описания".

Пример 14. Маппинг для штрихкодов

Для полей barcode_ean13, barcode_ean8, barcode_upc система автоматически очищает от нецифровых символов и проверяет длину (13, 8 и 12 цифр соответственно).

Пример 15. Комбинирование артикула производителя

manufacturer_code = 2,"-",3,"-",5 — создание сложного артикула из нескольких столбцов.

Пример 16. Текстовое описание с перечислением

features = "Характеристики: ",4,", ",5,", ",6 — если какие-то столбцы пустые, они пропускаются.

Пример 17. Универсальный шаблон для всех полей

supplier_code = 1 (обязательное), manufacturer_code = 2, brand = 3, trade_mark = 4, model = 5, name = 6 (обязательное), description = 7, price = 8 (обязательное), recommended_price = 9, currency = 10, availability = 11, stock = 12, unit = 13, pack_quantity = 14, vat = 15, min_order_quantity = 16, multiplicity_order_quantity = 17, url = 18, barcode_ean13 = 19, barcode_ean8 = 20, barcode_upc = 21, weight_kg = 22, packaged_weight_kg = 23, length_mm = 24, width_mm = 25, height_mm = 26, packaged_length_mm = 27, packaged_width_mm = 28, packaged_height_mm = 29, brand_country = 30, manufacturing_country = 31.

Варианты для XML, YML, JSON, JSONL

YML (ЯНДЕКС.МАРКЕТ)

Пример 1. Простой YML маппинг

Файл YML имеет структуру: <offer id="12345" available="true"><name>Дрель Bosch</name><price>4500</price><currencyId>RUB</currencyId><vendor>Bosch</vendor><categoryId>2</categoryId></offer>. 

Настройки: supplier_code = @id (атрибут id), name = name, price = price, currency = currencyId, brand = vendor, category_id = categoryId. Символ @ перед именем означает атрибут, без @ — тег.

Пример 2. Комбинирование в YML

Нужно собрать полное название из бренда и модели. Файл: <offer id="12345"><vendor>Bosch</vendor><model>GSB13RE</model></offer>. Настройка: name = vendor," ",model — результат "Bosch GSB13RE".

ДЛЯ XML (ОБЫЧНЫЙ XML, НЕ YML)

Пример 1. Простой XML маппинг

Файл в формате 1С: <Товар><Артикул>12345</Артикул><Наименование>Дрель Bosch</Наименование><Цена>4500</Цена><Производитель>Bosch</Производитель></Товар>.

Настройки: supplier_code = Артикул, name = Наименование, price = Цена, brand = Производитель.

Пример 2. Вложенные XML теги

Файл с вложенной структурой: <Товар><Идентификатор><Код>12345</Код><Штрихкод>460123456</Штрихкод></Идентификатор><Цена><Значение>4500</Значение><Валюта>RUB</Валюта></Цена></Товар>.

Настройки: supplier_code = Идентификатор/Код, barcode_ean13 = Идентификатор/Штрихкод, price = Цена/Значение, currency = Цена/Валюта.

Пример 3. XML атрибуты

Файл с атрибутами: <Товар Код="12345" Наличие="true"><Наименование>Дрель Bosch</Наименование><Цена Валюта="RUB">4500</Цена></Товар>.

Настройки: supplier_code = @Код, name = Наименование, price = Цена, currency = Цена/@Валюта, availability = @Наличие.

Пример 4. Комбинирование в XML

Создание полного наименования: full_name = Производитель," ",Модель,", ",Наименование — если теги идут последовательно.

Пример 5. XML с пространствами имен

Если XML содержит namespace: <ns:Товар xmlns:ns="urn:schemas-supplier"><ns:Артикул>12345</ns:Артикул></ns:Товар>. В маппинге нужно указывать полное имя с namespace: supplier_code = ns:Артикул.

ДЛЯ JSON (СТАНДАРТНЫЙ JSON)

Пример 1. Простой JSON маппинг

Файл: {"id": "12345", "name": "Дрель Bosch", "price": 4500, "currency": "RUB", "brand": "Bosch"}.

Настройки: supplier_code = id, name = name, price = price, currency = currency, brand = brand.

Пример 2. Вложенный JSON (dot notation)

Файл с вложенной структурой: {"product": {"id": "12345", "info": {"name": "Дрель Bosch", "brand": "Bosch"}, "pricing": {"value": 4500, "currency": "RUB"}}}.

Настройки через dot notation: supplier_code = product.id, name = product.info.name, brand = product.info.brand, price = product.pricing.value, currency = product.pricing.currency.

Пример 3. Массивы в JSON

Файл с массивом изображений: {"id": "12345", "images": ["http://example.com/1.jpg", "http://example.com/2.jpg"]}.

Настройка images обрабатывается автоматически, извлекается весь массив.

Пример 4. JSON с фильтрацией элементов
Файл с массивом характеристик: {"specifications": [{"name": "Мощность", "value": "650 Вт"}, {"name": "Вес", "value": "1.8 кг"}]}.

Для извлечения веса используется JSONPath выражение: specifications[?(@.name == 'Вес')].value.

Пример 5. Комбинирование в JSON

Создание полного названия из нескольких полей: name = brand," ",model — если brand и model есть как отдельные поля.

Пример 6. Числовые значения в JSON

Для поля price система автоматически обрабатывает значения независимо от типа: может быть числом 4500, строкой "4500" или "4 500.50".

ДЛЯ JSONL (JSON LINES)

Пример 1. Простой JSONL маппинг

Каждая строка отдельный JSON объект: {"id": "12345", "name": "Дрель Bosch", "price": 4500} на одной строке, на следующей такой же.

Настройки такие же как для JSON: supplier_code = id, name = name, price = price.

Пример 2. JSONL с разными структурами

В разных строках могут быть разные поля, но маппинг применяется единообразно. Если в строке нет указанного поля, оно остается пустым.

Ключевые правила для XML/YML

Атрибуты начинаются с @: @id, @available

Теги указываются без символов: name, price, vendor

Вложенные теги через слэш: category/parentId

Теги с атрибутами: param[@name="Мощность"]

Комбинирование через запятые: vendor," ",model

Ключевые правила для JSON/JSONL

Простые поля: id, name, price

Вложенные через точку: product.price.value

Массивы: images[0] для первого элемента

Фильтры: products[?(@.brand == 'Bosch')].price

Комбинирование: brand," ",model

Общие правила для всех форматов

Текст в кавычках вставляется как есть: " руб.", " - "

Запятые разделяют части выражения

Пустые значения пропускаются при комбинировании

Для числовых полей автоматическая очистка пробелов и замена запятой на точку

Для валют автоматическая нормализация кодам ISO

Для веса и размеров автоконвертация в базовые единицы (кг и мм)

Необходимо всегда добавлять поле Артикул поставщика, даже если вы используете для сравнения любое другое поле