Содержание

Формат файла

CSV файл импорт товаров должен иметь определенное название - products-xxxxxx.csv. Часть -xxxxxx.csv может быть любой, или ее можно совсем убрать.

Примеры верных названий CSV файлов импорта товаров:

  • products.csv;
  • products-13-01-01.csv;
  • products-from-my-provider.csv

CSV файл с товарами должен сдержать как минимум два поля:

  1. sku - уникальный идентификатор товара;
  2. name - название товара.

Пример простейшего CSV файла импорта товаров:

1.jpg

Описание полей файла

В CSV файл с товарами можно включить множество полей:

Поле в CSV файле Что описывает поле Тип значения**
Поля в ядре X-Cart
sku* Уникальный идентификатор товара.

Текст,
Максимум 32 знака

name* Название товара. Текст,
Мультиязычный 
price Обычная цена товара. Число с плавающей запятой (пример: 1,00)
memberships

Группы покупателей, которым доступен товар. Не заполняйте это поле, если товар должен быть доступен всем покупателям.

Текст,
Несколько значений 
description Полное описание товара.

Текст,
Мультиязычный,
Допустим HTML 

briefDescription Краткое описание товара, которое отображается на страницах каталога. Текст,
Мультиязычный,
Допустим HTML 
enabled Активирован товар или нет. Да/Нет
weight Вес товара. Число с плавающей запятой (пример: 8,00)
shippable Доставляется товар или нет. Да/Нет
images

Для каждого изображения, которое нужно импортировать, должно быть указано его расположение. Это может быть:

  • URL (может быть на одном сервере с X-Cart)
  • путь к изображению на сервере относительно директории <XCART-DIRECTORY>; например, images/product/image1.png

Обратите внимание, что импорт изображений проходит значительно быстрее, если изображения хранятся на том же сервере, где установлен X-Cart. Не важно, указано ли расположение файла как URL или как путь, X-Cart попытается определить, находится ли изображение на одном с ним сервере. Если вам нужно импортировать большое количество изображений по URL, вы ускорите процесс, сохранив изображения на одном сервере с магазином в директории <XCART-DIRECTORY>/images.


Также, можно выбрать несколько изображений для импорта, разделив пути к файлам символами '&&'; например, images/product/image1.png&&images/product/images2.png.

Текст,
Несколько значений 
imagesAlt

Альтернативный текст для изображения, устанавливаемый атрибутом alt. Этот текст будет отображаться, если изображение не загрузилось.

Если у товара несколько изображений, можно импортировать несколько альтернативных текстов. Эти тексты должны быть разделены символами '&&'.

Примеры:

  • Альтернативный текст для первого изображения (1 alt текст)
  • Альтернативный текст для первого изображения&&(2 alt текста)
Текст,
Несколько значений,
Максимум 255 знака 
arrivalDate Дата, когда товар появится на распродаже. Дата (пример: 1 января 2018)
date Дата создания товара в панели управления магазина. Дата (пример: 1 января 2018)
updateDate Дата последнего обновления товара. Дата (пример: 1 января 2018)
inventoryTrackingEnabled Отслеживание запасов включено или отключено. Да/Нет
stockLevel Текущий размер запаса. Целое число
lowLimitLevel Когда размер запаса товара достигнет этого количества, администратор магазина получит уведомление об уменьшении количества товара. Целое число (например, 10)
lowLimitEnabled Уведомление об уменьшении запаса товаров включено или отключено Да/Нет
categories

Определяет, в какие категории входит товар. Категории разделяются символами >>> .

Можно указать несколько категорий, разделив их символами && .

Примеры:

  • Игрушки (товар входит в корневую категорию Игрушки)
  • Игрушки>>>Умные игрушки (товар входит в категорию второго уровня Игрушки/Умные игрушки)
  • Игрушки&&Игрушки>>>Умные игрушки (товар входит в две категории: Игрушки и Игрушки/Умные игрушки)
Текст,
Несколько значений 
cleanURL

SEO-оптимизированная ссылка на страницу товара.

Пример: ewok-ladies-hooded-tank-top.html

Текст
useSeparateBox Отправка в отдельной коробке - требуется или не требуется Да/Нет
boxWidth Если значение useSeparateBox - Yes, в этом поле указывается ширина коробки для этого товара Число с плавающей запятой (пример: 1,00)
boxLength Если значение useSeparateBox - Yes, в этом поле указывается длина коробки для этого товара Число с плавающей запятой (пример: 1,00)
boxHeight Если значение useSeparateBox - Yes, в этом поле указывается высота коробки для этого товара Число с плавающей запятой (пример: 1,00)
itemsPerBox Если значение useSeparateBox - Yes, в этом поле указывается, какое количество товара может быть отправлено в одной коробке. Целое число (например, 3)
metaTags Определяет содержание мета тэга <meta name="keywords" content="%value%"> Текст,
Мультиязычный,
Максимум 255 знаков 
metaDesc Определяет содержание мета тэга <meta name="description" content="%value%"> Текст,
Мультиязычный 
metaDescType

Определяет тип содержимого мета описания. Может быть A или C, где:

  • A означает автоматический режим, когда мета описание автоматически создается из описания товара;
  • C означает специфический режим, когда мета описание берется из поля metaDesc_* соответствующей языковой версии магазина*;
    *если язык магазина русский мета описание будет взято из поля metaDesc_ru.
Текст,
Максимум 1 знак 
metaTitle Определяет содержание мета тэга <meta name="title" content="%value%"> Текст,
Мультиязычный,
Максимум 255 знаков 
productClass

Определяет класс атрибута товара. Дополнительная информация:

Текст
taxClass Определяет класс налога для товара Текст
Поля, добавленные модулем Go Social
useCustomOpenGraphMeta Определяет, какие мета тэги использовать для товара - пользовательские Open Graph мета тэги или стандартные мета тэги Да/Нет
openGraphMeta Если в поле useCustomOpenGraphMeta стоит Yes, значит, в этом поле указываются Open Graph мета тэги

Текст,
Допустим HTML,
Допустимо выполнение скриптов 

Поля, добавленные модулем File attachments
attachments

Определяет, какие файлы прилагаются к товару.

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

  • URL файла
  • путь к файлу на сервере.

Во втором случае (путь к файлу на сервере), файлы должны находиться:

  • В директории <XCART-DIRECTORY>/files/attachments или ее поддиректориях. В этом случае, путь в CSV файле должен быть указан относительно директории <XCART-DIRECTORY>; например, files/attachments/user-manual.pdf или files/attachments/test/user-manual.pdf
  • В директории <XCART-DIRECTORY>/var/import или ее поддиректориях. В этом случае, путь в CSV файле должен быть указан относительно директории <XCART-DIRECTORY>; например, var/import/user-manual.pdf или var/import/test/user-manual.pdf. Обратите внимание, что в результате импорта файлы из директории <XCART-DIRECTORY>/var/import будут скопированы в директорию <XCART-DIRECTORY>/files/attachments/[product_id].

Можно импортировать несколько файлов, они должны быть разделены символами && .

Примеры:

  • path/to/my/files/user-manual.pdf (1 файл)
  • path/to/my/files/user-manual.pdf&&path/to/my/files/spec.pdf (2 файла)

Обратите внимание, что импорт приложенных файлов проходит быстрее, если файлы находятся на одном сервере с X-Cart и их расположение указано как относительный путь, чем если файлы находятся где-то еще и их расположение указано как URL. Если необходимо импортировать множество файлов по URL, можно значительно ускорить процесс, сохранив файлы на сервере, где находится магазин, и заменив в CSV файле расположение файлов с URL на относительнй путь.

Текст,
Несколько значений 

attachmentsTitle

Определяет заголовки приложенных файлов.

Можно указать названия множества файлов, они должны быть разделены символами &&.

Пример:

  • Руководство пользователя (название 1 файла)
  • Руководство пользователя&&Техническая документация (названия 2 файлов)

Текст,
Несколько значений,
Мультиязычный,
Максимум 128 знаков 

attachmentsDescription

Определяет описание приложенных файлов.

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

Пример:

  • Это руководство пользователя по товару (описание 1 файла)
  • Это руководство пользователя по товару&&Это техническая документация по товару (описания 2 файлов)
Текст,
Несколько значений,
Мультиязычный 
Поля, добавленные модулем E-Goods
attachmentsPrivate

Определяет, какие файлы доступны для скачивания только после оплаты заказа (для скачиваемых товаров), и какие файлы доступны для скачивания прямо на странице товара (модули Product Attachments и E-Goods должны быть включены)

Если импортируется несколько файлов, одни из них можно пометить как недоступные, а другие - как доступные для скачивания. Записи должны быть разделены символами &&.

Пример:

  • Yes (у товара один файл и он доступен только после оплаты)
  • Yes&&No (у товара два файла, первый доступен для скачивания только после оплаты, второй - в открытом доступе)
Да/Нет,
Несколько значений 
Поля, добавленные модулем Market Price
marketPrice

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

Число с плавающей запятой (пример: 5,00)
Поля, добавленные модулем Sale
sale

Определяет скидку на товар.

Возможно два типа значений (абсолютная скидка и в процентах):

  • 100,00 означает, что на товар действует скидка RUB 100
  • 10% означает, что на товар действует скидка 10%
Текст
Поля, добавленные модулем Multivendor
vendor Логин продавца товара Текст
Поля, добавленные модулем Product Variants
(X-Cart 5.3.3+) variantID Автоматически сгенерированный идентификатор варианта товара Текст,
Генерируется автоматически,
Несколько строк 
variantSKU Артикул варианта товара (если не указан, берется артикул товара) Текст,
Максимум 32 знака,
Несколько строк 
variantPrice Цена варианта товара (если не указана, берется цена товара) Число с плавающей запятой,
Несколько строк 
variantQuantity Количество варианта товара (если не указано, берется количество товара) Целое число,
Несколько строк 
variantWeight Вес варианта товара (если не указан, берется вес товара) Число с плавающей запятой,
Несколько строк 
variantImage Расположение изображения варианта товара Текст,
Несколько строк 
variantImageAlt Альтернативный текст для изображения варианта товара Текст,
Максимум 32 знака,
Несколько строк 
Поля, добавленные модулем Wholesale
wholesalePrices

Определяет оптовые цены на товар.

Примеры:

  1. Необходимо задать диапазон цен:
    При покупке 1-5 единиц, цена за единицу - RUB 300
    При покупке 6 и более единиц, цена за единицу - RUB 250

    В CSV файле эти условия должны быть записаны таким образом:
    1-5=300&&6=250 

  2. Необходимо задать диапазон цен:
    При покупке 1-5 единиц, цена за единицу - RUB 300
    При покупке 6 и более единиц, цена за единицу - RUB 250
    При покупке 3 и более единиц оптовым покупателем, цена за единицу - RUB 200 

    В CSV файле эти условия должны быть записаны таким образом:
     1-5=300&&6=250&&3(оптовый покупатель)=200
Текст,
Несколько значений 
variantWholesalePrices

Определяет оптовые цены на варианты товаров.

Модуль Product Variants должен быть включен.

Текст,
Несколько значений,
Несколько строк 
Поля, добавленные модулем System Fields
upcIsbn Универсальный товарный код / Международный стандартный книжный номер Текст,
Максимум 32 знака 
mnfVendor Производитель товара Текст,
Максимум 64 знака 

variantupcIsbn

Универсальный товарный код / Международный стандартный книжный номер варианта товара.

 Модуль Product Variants должен быть включен.

Текст,
Максимум 32 знака
Несколько строк 
variantmnfVendor

Производитель варианта товара.

Модуль Product Variants должен быть включен.

Текст,
Максимум 64 знака
Несколько строк 
Поля, добавленные модулем Upselling Product
relatedProducts

Артикулы сопутствующих товаров. Можно указать несколько артикулов с разделителем '&&'.

Пример:

  • Артикул 1 (1 товар)
  • Артикул 1&&Артикул 2 (2 товара)
Текст,
Несколько значений 

* Обязательное поле

** Дополнительная информация Атрибуты полей CSV файла.

Рекомендации:

  • Если вы собираетесь импортировать данные в X-Cart и не хотите обновлять определенные поля во время импорта, эти поля не нужно вносить в CSV файл импорта. Просто удалите соответствующие столбцы из файла.

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

    Эта функциональность работает для следующих полей товаров::

    • memberships;
    • categories;
    • images;
    • imagesAlt;
    • attributeValue;
    • variantImage (Product Variants module).

Обновление вариантов товаров

Чтобы сослаться на определенный вариант товара, нужно указать значения всех его атрибутов. Столбец со значениями атрибутов имеет следующий формат: <Attribute name> (field:<class or global>). Пример:

2.jpg

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

Не следует путать поля variantID и variantSKU. Это абсолютно разные поля. Поле variantID служит только для идентификации вариантов.

Пример: с помощью такого файла можно обновить цены вариантов товаров: 3.jpg

При импорте вариантов товаров, значения полей, не связанных с вариантами (т.е. всех полей кроме тех, которые добавлены модулем Product Variants), не должны повторяться для каждого варианта. Это значит, что такие поля, как memberships, productClass, taxClass, enabled, shippable, categories, inventoryTracking, name, description и т.п., нужно заполнять только один раз для набора вариантов товара. Если указать все эти значения для каждого артикула варианта, значения могут дублироваться или перезаписываться последующими значениями.

Пример, импорт вариантов товара 100ewl Майка-безрукавка с капюшоном Эвок с помощью такого файла:

4.jpg

товар 100ewl будет переименован с “Майка-безрукавка с капюшоном Эвок” на “МайкабезрукавкаскапюшономЭвок” (т.е. после импорта в магазине больше не будет товара “Майка-безрукавка с капюшоном Эвок”). Также, все 3 варианта (101ewl, 102ewl и 103ewl) станут доступны оптовым и VIP покупателей.

Обратите внимание, что таблица на скриншоте не полная. Внесите все значения атрибутов, характеризующие вариант. Чтобы сослаться на определенный вариант, используйте поле variantID.