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

Для того, чтобы данные правильно импортировались в правильное место, нужно задать правила сопоставления полей. Целевое поле это поле, в которое будет импортированы данные в системе, нажимаете добавить, выбираете в списке нужно поле. Выражение для значения это либо номера столбцов для 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
Для веса и размеров автоконвертация в базовые единицы (кг и мм)
Необходимо всегда добавлять поле Артикул поставщика, даже если вы используете для сравнения любое другое поле