Файл импорта

Файл импорта представляет собой текстовый файл в формате CSV, который должен соответствовать следующим критериям:

  • Кодировка UTF-8;
  • В качестве разделителя должен использоваться символ: ,;
  • Для обрамления значений, содержащих зарезервированные символы должен использоваться символ: ".
  • Количество столбцов в строках должно соответствовать количеству столбцов в заголовке (первой строке).

В случае не соблюдения перечисленных требований корректность импорта не гарантируется.

Прежде чем начать более подробно разбираться с внутренним устройством файла импорта, предлагаем загрузить и бегло ознакомиться с примером файла импорта.

Содержание #

Значения ячеек #

По умолчанию значение каждой ячейки в файле формата CSV представляет собой обычную строку. Для целей импорта мы ввели несколько дополнительных специальных значений. Давайте рассмотрим каждое из них в отдельности:

  • Пустое значение — это когда значение ячейки вообще не задано, то есть значение представляет собой пустую строку. Ячейки с этим значением полностью игнорируются инструментом импорта.
  • EMPTY — специальное значение, означающее, в зависимости от столбца, пустую строку или пустой массив. Необходимо, поскольку Пустое значение игнорируется инструментом импорта.
  • TRUE — истинное значение для полей, ожидающих логическое значение.
  • FALSE — ложное значение для полей, ожидающих логическое значение.
  • NULL — специальное значение, означающее отсутствие какого-либо значения.
  • Полезное значение — любое другое значение, например, строка или число в строковом представлении.

Описание столбцов #

Первой строкой в файле импорта идет заголовок, в котором перечислены столбцы, использующиеся при импорте. Необязательно, чтобы в файле присутствовали все описанные ниже столбцы, вы можете использовать только те, что нужны вам в данный момент, при этом наличие неизвестных столбцов не допускается. Порядок столбцов не имеет значения.

Рассмотрим каждый столбец в отдельности:

  • id — идентификатор товара в базе данных магазина. Целое число. Допускается отрицательное значение.
  • slug — буквенно-цифровая метка товара, используемая, например, в URL адресе товара. Значение должно состоять только из символов “-”, “_”, цифр, заглавных и прописных букв латинского алфавита и не может состоять только из цифр. Максимальная длина 160 символов. Должно быть уникальным в рамках одного магазина. Может принимать значение NULL.
  • name — название товара. Максимальная длина 255 символов. Обязательно при добавлении нового товара.
  • description — описание товара. Содержит отформатированный текст в HTML формате. Может принимать значение EMPTY. Максимальная длина 65535 символов (с учетом HTML разметки).
  • tax — ставка НДС. Может принимать одно из следующих значений:
    • inherit — специальное значение, позволяющее указать, что фактическое значение ставки нужно брать из настроек магазина.
    • none — без НДС.
    • vat0 — ставка 0%.
    • vat10 — ставка 10%.
    • vat20 — ставка 20%.
  • need_marking — логическое значение (TRUE или FALSE), указывающее, подлежит ли данный товар маркировке «Честный знак». Подробнее о маркировке читайте в одноименной статье «Маркировка».
  • seo_title — используется в качестве значения для HTML тега <title>. Поисковые системы могут использовать данное значение для формирования заголовка страницы в результатах поиска. Может принимать значение EMPTY. Максимальная длина 70 символов.
  • seo_description — мета-описание страницы товара. Поисковые системы могут использовать данное значение для формирования описания страницы в результатах поиска. Может принимать значение EMPTY. Максимальная длина 160 символов.
  • image — URL адрес изображения товара. Подробнее читайте в разделе «Изображения товара».
  • attribute_name, attribute_value — название и значение атрибута соответственно. Подробнее читайте в разделе «Атрибуты товара».
  • category — название категории. Подробнее читайте в разделе «Категории товара».
  • variant_id — идентификатор варианта товара в базе данных магазина. Целое число. Допускается отрицательное значение.
  • variant_sku — артикул (SKU) варианта товара. Используется как правило в целях внутреннего учета и для поиска товаров в магазине и в панели администратора. Максимальная длина 48 символов. Должно быть уникальным в рамках одного магазина. Может принимать значение NULL.
  • variant_option_name, variant_option_value — название и значение атрибута, используемого в качестве опции, соответственно. Подробнее читайте в разделе «Опции варианта товара».
  • variant_price — стоимость товара. Число с точностью до двух знаков после запятой. Не может иметь отрицательное значение.
  • variant_previous_price — укажите значение для данного столбца, если хотите дать покупателю понять что данный вариант товара продается со скидкой. В данном поле следует указать предыдущую цену (до применения скидки), а в столбце variant_price актуальную цену. Число с точностью до двух знаков после запятой. Не может иметь отрицательное значение. Может принимать значение NULL.
  • variant_manage_stock — логическое значение (TRUE или FALSE), указывающее, следует ли вести учет остатков для данного варианта товара. Если указать значение TRUE, покупатель не сможет заказать больше товаров, чем указано в столбце variant_stock_quantity.
  • variant_stock_quantity — текущее количество товаров на складе доступных для заказа. Целое число. Допускается отрицательное значение. Не используется, если variant_manage_stock имеет значение FALSE.
  • variant_negative_stock — логическое значение (TRUE или FALSE), указывающее, может ли покупатель заказать больше товаров чем указано в поле variant_stock_quantity. Не используется, если variant_manage_stock имеет значение FALSE.
  • variant_weight — масса варианта товара в килограммах. Можно задать значение с точностью до грамма (0.001 м). Не может иметь отрицательное значение. Может принимать значение NULL.
  • variant_length, variant_width, variant_height — длина, ширина и высота варианта товара соответственно. Значение указывается в метрах с точностью до миллиметра (0.001 м). Не может иметь отрицательное значение. Может принимать значение NULL.

Группировка строк #

Группировка строк — это специальный механизм позволяющий сообщить инструменту импорта, что несколько подряд идущих строк относятся к одному и тому же товару и/или варианту товара. Это полезно, например, когда нам нужно указать несколько изображений для одного и того же товара, поскольку в одной строке может быть указано только одно изображение.

В целях группировки используются столбцы:

  • id, slug — для группировки товаров.
  • variant_id, variant_sku — для группировки вариантов товаров.

Для группировки будет использован первый столбец имеющий не Пустое значение. Столбцы используются последовательно в указанном порядке. Строки, идущие друг за другом и имеющие одинаковое значение в столбце, использующимся для группировки, рассматриваются как одна группа.

В приведенном выше примере инструмент импорта распознает следующие группы товаров и вариантов:

  • Строка 1-6: Группа товара по id со значением 57;
    • Строка 1-2: Группа варианта по variant_id со значением 242;
    • Строка 3-4: Группа варианта по variant_sku со значением SNEAK-700-XL;
    • Строка 5-6: Группа варианта по variant_id со значением 607;
  • Строка 7-8: Группа товара по slug со значением slippers;
    • Строка 7: Группа варианта по variant_id со значением 298;
  • Строка 9: Группа товара;

Если в строках отсутствуют все столбцы, использующиеся для группировки, или если они имеют Пустое значение, то данные из этих строк будут относиться к разным товарам.

Идентификация товаров и вариантов #

Идентификация товаров и их вариантов необходима, для того чтобы сопоставить импортируемые товары с товарами уже присутствующими в базе данных магазина. Это позволяет, при импорте вносить изменения в уже существующие товары или пропускать их во избежание создания дубликатов. Для идентификации используются те же столбцы, что и для группировки, в том же порядке и по тем же правилам.

В приведенном выше примере инструмент импорта идентифицирует и попытается сопоставить следующие товары и варианты:

  • Товар по id со значением 57;
    • Вариант по variant_id со значением 242;
    • Вариант по variant_sku со значением SNEAK-700-XL;
    • Вариант по variant_id со значением 607;
  • Товар по slug со значением slippers;
    • Вариант по variant_id со значением 298;

Также инструмент импорта создаст один товар с именем Носки, так как значения полей, используемых для идентификации, для этого товара не заданы.

Создание товара #

Для создания товара достаточно указать лишь название товара (столбец name), все остальные столбы необязательны.

Редактирование товара #

Чтобы отредактировать уже существующий товар, необходимо указать значение для одного из столбцов, идентифицирующих товар.

Обратите внимание, что если вы попытаетесь отредактировать несуществующий товар, то в этом случае будет создан новый товар. Например, попробуем изменить название товара с идентификатором 57. Данный товар отсутствует в базе данных магазина, следовательно, при импорте будет создан новый товар с именем «Кожаная куртка» причем его идентификатор будет отличаться от указанного в файле импорта.

Изображения товара #

Чтобы добавить изображения товара, укажите URL-адреса изображений в столбце image, по одному в строке. Для одного товара можно указать максимум 25 изображений. Размер каждого изображения не должен превышать 512 КБ. Поддерживаемые форматы: JPEG и PNG.

Если указать изображения для уже существующего товара, то изображения добавленные ранее будут удалены.

Чтобы удалить все изображения уже существующего товара, укажите значение EMPTY в первой строке группы товара.

Если в первой строке группы указано значение EMPTY, то остальные строки группы должны иметь Пустое значение. Например, так делать нельзя:

Атрибуты товара #

Для добавления атрибутов предусмотрены столбцы: attribute_name и attribute_value — название и значение атрибута соответственно. Максимальная длина значения каждого столбца составляет 255 символов. Чтобы добавить несколько атрибутов или несколько значений одного атрибута, воспользуйтесь механизмом группировки строк.

Чтобы удалить все атрибуты существующего товара, укажите значение EMPTY в столбцах attribute_name и attribute_value в первой строке группы товара.

Значения столбцов attribute_name и attribute_value должны удовлетворять следующим условиям:

  • Если столбец attribute_name имеет Пустое значение, Полезное значение или значение EMPTY, тогда и столбец attribute_value, в той же строке, должен иметь значение того же типа.
  • Если в первой строке группы товара указано значение EMPTY, тогда соответствующие столбцы в остальных строках той же группы должны иметь Пустое значение. Значение EMPTY можно указать только в первой строке группы товара.

В приведенном ниже примере неправильно указаны товары:

  • slippers, sneakers, boots — так как тип столбца attribute_value не соответствует типу столбца attribute_name в той же строке.
  • leather-jacket — так как во второй и последующих строка группы товара столбцы attribute_name и attribute_value имеют не Пустое значение, в то время как в первой строке в соответствующих столбцах указано значение EMPTY.
  • shirt — так как значение EMPTY в столбцах attribute_name и attribute_value указано не только в первой строке группы товара.

Категории товара #

Категории в которые необходимо поместить товар указываются в столбце category. Максимальная длина 255 символов. Если указанную категорию не удастся найти в базе данных магазина, то будет создана новая категория с указанным именем. Для того что бы добавить товар в несколько категорий воспользуйтесь механизмом группировки строк.

Чтобы добавить товар во вложенную категорию, используйте конструкцию вида: «Корневая категория / Дочерняя категория / Целевая категория», где « / » является разделителем категорий. Обратите внимание, что перед и после косой черты стоит пробел, он обязателен.

Если вы хотите добавить товар помимо «Целевой категории» еще и в «Дочернею категорию» и/или «Корневую категорию», то вам необходимо перечислить все эти категории.

Если название категории должно содержать символ /, просто продублируйте его //. Например: Название // категории будет воспринято инструментом импорта как Название / категории.

Чтобы удалить из всех категорий товар, который уже существует в базе данных магазина, укажите значение EMPTY в первой строке группы этого товара.

Если в первой строке группы указано значение EMPTY, то остальные строки группы должны иметь Пустое значение. Например, так делать нельзя:

Опции варианта товара #

Опции варианта товара указываются в столбцах: variant_option_name и variant_option_value — название и значение атрибута, используемого в качестве опции, соответственно. Максимальная длина значения каждого столбца составляет 255 символов. Чтобы добавить несколько опций, воспользуйтесь механизмом группировки строк.

Если мы добавляем или изменяем простой товар (с одним вариантом без опций) или хотим превратить уже существующий вариативный товар (с опциями и несколькими вариантами) в простой товар, тогда нам нужно в первой строке группы товара в столбцах variant_option_name и variant_option_value указать значение EMPTY.

Значения столбцов variant_option_name и variant_option_value должны удовлетворять следующим условиям:

  • Если столбец variant_option_name имеет Пустое значение, Полезное значение или значение EMPTY, тогда и столбец variant_option_value, в той же строке, должен иметь значение того же типа.
  • Если в первой строке группы товара указано значение EMPTY, тогда соответствующие столбцы в остальных строках той же группы должны иметь Пустое значение. Значение EMPTY можно указать только в первой строке группы товара.

В приведенном ниже примере неправильно указаны товары:

  • SLIP-032, SNEAK-ST8, HL-2BOOTS — так как тип столбца variant_option_value не соответствует типу столбца variant_option_name в той же строке.
  • LJ-BROWN-M — так как во второй и последующих строка группы товара столбцы variant_option_name и variant_option_value имеют не Пустое значение, в то время как в первой строке в соответствующих столбцах указано значение EMPTY.
  • SHIRT-40 — так как значение EMPTY в столбцах variant_option_name и variant_option_value указано не только в первой строке группы товара.

Каждый вариант должен иметь одинаковый набор опций с уникальной комбинацией значений. В приведенном ниже примере неправильно указан вариант:

  • LJ-BROWN-XL — так как набор опций отличается от набора опций первого варианта. [Цвет, Материал] != [Цвет, Размер].
  • LJ-BLUE-L — так как отсутствует опция Размер.
  • LJ-BROWN-2M — так как значения опций идентичны значениям варианта LJ-BROWN-M.