Импорт-Экспорт CSV/XLS
Обзор
Модуль "Импорт-экспорт в CSV/XLS" доступен в сборках ImageCMS Shop Pro и Premium, а также в облачном решении Premmerce. Модуль не требует каких-либо предварительных и дополнительных настроек. После запуска магазина он готов к использованию.
Изначально модуль разрабатывался как простой функционал с интуитивно-понятным интерфейсом. В процессе развития системы ImageCMS эта простота была сохранена. Но, в зависимости от используемой версии системы, модуль может иметь некоторую функциональную специфику, а также различия по расположению или оформлению элементов в административном профиле.
При работе с модулем не стоит забывать, что он функционирует исключительно по заложенной в нем логике и имеет определенные требования к загружаемым данным, а также свои ограничения по выгружаемым.
Соответственно, вам необходимо:
- при импорте: предварительно уделять внимание соответствию загружаемых файлов их содержимому и синтаксису (особенно если вы загружаете прайсы из разных источников);
- при экспорте: четко понимать, что данный функционал делает только копию части контента, относящегося к товарам (смотрите пункт 2.2.2. Все столбцы), но не затрагивает остальные данные (изображения, контент статических страниц, описания категорий, брендов и т. д.).
1.1. Предназначение Модуля "Импорт-экспорт в CSV/XLS"
Задачей модуля является упрощение работы администратора с товарами магазина посредством:
- импорта данных - автоматизации наполнения магазина большими объемами контента (внесение данных в магазин);
- экспорта данных - получения содержимого контента из магазина (извлечение данных из магазина).
1.2. Местоположение и структура модуля
Информация из данного раздела может быть полезной при знакомстве с функционалом магазина.
1.2.1. В админ профиле
Чтобы открыть меню обмена данными, необходимо выбрать пункт главного меню пользователя: "Модули", а в нем подпункт: "Импорт-экспорт CSV/XLS":
В некоторых версиях системы доступ к модулю может немного отличаться (если вы пользуетесь данным сервисом впервые). Выберите пункт главного меню пользователя: "Модули", а в нем - подпункт: "Все модули". Далее из открывшегося списка надо выбрать: "Импорт-экспорт в CSV/XLS".
Чтобы вывести модуль в список меню, нужно перевести графические переключатели напротив данного модуля в положение: "Активно" (колонка: "Показывать в меню").
1.2.2. Папка на сервере
Информация из данного раздела может быть полезной как для доработки модуля собственными силами, так и потенциальным разработчикам.
Открыть папку с файлами модуля можно с помощью FTP клиента (модуль: "Редактор шаблонов" позволяет получить доступ к файлам на несколько уровней ниже) или непосредственно через файловый менеджер в панели управления хостингом.
Модуль находится по пути: \application\modules\import_export
По умолчанию папка import_export содержит:
- папку assets
- папку admin
- файл export.tpl - админская страница модуля, отвечающая за экспорт;
- файл import.tpl - админская страница модуля, отвечающая за импорт;
- файл import_attributes.tpl - файл, на который идет вся информация при импорте данных (он позволяет структурировано вывести все поля, которые присутствуют в импортируемом файле);
- файл index.html - пустой html-файл, который создавался для того, чтобы папка была видна на git`е;
- файл list.tpl - вывод в админке модуля информации про архивы фотографий;
- файл settings.tpl - пустой файл, который не выполняет никаких функций.
- папку css
- файл index.html - пустой html-файл, который создавался для того, чтобы папка была видна на git`е;
- папку js
- файл importAdmin.js - скрипты, отвечающие за правильную работу модуля на стороне фронта. В основном содержат функции для импорта;
- файл importExportAdmin.js - скрипты, отвечающие за правильную работу модуля на стороне фронта. В основном служат для экспорта, но есть еще старые функции с импорта, которые не используются;
- файл index.html - пустой html-файл, который создавался для того, чтобы папка была видна на git`е;
- файл index.html - пустой html-файл, который создавался для того, чтобы папка была видна на git`е;
- jsLangs.tpl - вспомогательные файлы для переводчика, с помощью которых распознаются langs.
- папку classes
- файл BaseImport.php - отвечает за валидацию файла импорта. В нем задаются также поля, которые будет видеть импорт;
- файл CategoryImport.php - отвечает за распознание категории, создание новых категорий;
- файл Export.php - отвечает за экспорт, основные запросы при экспорте в базу, основные поля, свойства;
- файл Factor.php - содержит в себе перечень ошибок, которые могут возникнуть;
- файл ImportBootstrap.php - контроллер, с помощью которого импорт разделяется на валидацию и на сам процесс импорта;
- файл Logger.php - содержит информацию об ошибках;
- файл ProductsImport.php - отвечает за создание или обновление товаров и их вариантов, а также за выгрузку картинок. Присваивает им категории;
- файл PropertiesImport.php - отвечает за заполнение свойств в товаре и значений самих свойств.
- файл Punycode.php - ранее использовался для перекодировки кириллических доменов при импорте картинок со сторонних ресурсов. Сейчас переведено в общие классы в папке third_party.
- папку language
- папку en_US
- папку LC_MESSAGES
- файл import_export.po - отвечает за перевод слов в админке (файл переводчика);
- файл import_export_ХХХХХХХХХХ.mo (где ХХХХХХХХХХ - числовой код) - отвечает за перевод слов в админке (файл переводчика).
- папку ru_RU
- папку LC_MESSAGES
- файл import_export.po - отвечает за перевод слов в админке (файл переводчика).
- файл import_export_ХХХХХХХХХХ.mo (где ХХХХХХХХХХ - числовой код) отвечает за перевод слов в админке (файл переводчика).
- папку uk_UA
- папку LC_MESSAGES
- файл import_export.po - отвечает за перевод слов в админке (файл переводчика).
- файл import_export_ХХХХХХХХХХ.mo (где ХХХХХХХХХХ - числовой код) отвечает за перевод слов в админке (файл переводчика).
- папку model
- файл admin.php - главный контроллер админки, распределяет страницы на импорт, экспорт, архивы фотографий. Позволяет грузить файлы и выгружать архивы фотографий;
- файл import.php - ответвление от admin.php при импорте, позволяющее разделять импорт на отдельные шаги по 10 товаров;
- файл import_export.php не используется. Он важен для структуры модуля;
- файл index.html - пустой html-файл, который создавался для того, чтобы папка была видна на git`е
- файл module_info.php - описание модуля в перечне модулей в админке.
2.1. Формат и конвертация
Модуль работает с файлами следующих форматов: CSV, XLS и XLSX. Данные форматы файлов доступны как для импорта, так и для экспорта.
Основным форматом модуля является CSV. Если ваш модуль импорта не работает с файлами XLS и XLSX, обратитесь к хостеру. Возможно, настройками хостинга не предусмотрена поддержка данных форматов. Проверить, поддерживает ли ваш хостинг работу с XLS и XLSX, можно с помощью тестового экспорта демо-товаров, указав при этом соответствующий формат файла. Если вы используете наш хостинг http://imagecmshost.com, то проблем со стороны хостинга при обмене данными возникнуть не должно.
Если вам более удобно использовать, к примеру XLS, но у вас есть только файл CSV, конвертируйте файл. Сделать это можно с помощью как онлайн-сервисов, так и соответствующего программного обеспечения.
Обязательно проверьте содержимое файла после проведения конвертации. Убедитесь, что все данные корректно конвертированы и нет проблем с кодировкой (см.ниже ).
Внимание! Кодировка файла обязательно должна быть UTF-8 без BOM, независимо от формата файла.
Файл импорта не должен содержать форматирование содержимого (никаких заливок полей, цветных и/или стилистических выделений текста и т. д.), а также стороннего кода в ячейках, кроме простых HTML-тегов.
2.2. Все столбцы
В целом, колонки, содержимые в файле импорта/экспорта, можно разделить на 2 типа:
- основные. Их наличие и содержание необходимо для осуществления импорта системой. Данные колонки необходимы для всех версий системы. Их ни в коем случае нельзя удалять и переименовывать.
- дополнительные. Их наличие необязательно для работы системы. В основном содержат дополнительные данные о товаре.
2.2.1. Обязательные столбцы
Содержат основную информацию о товаре, необходимую как для работы системы ImageCMS Shop и Premmerce, так и для осуществления обмена данными в любой другой системе.
К обязательным колонкам относятся:
- name (название товара). При формировании файла импорта не рекомендуется дублировать названия товаров (делать их полностью одинаковыми, кроме тех случаев, когда необходимо создавать варианты товаров). Они должны быть максимально уникальными. Например: "Товар", "Товар 120 х 40", "Товар (красный)" и т. п.
- prc (цена). Необходимо указывать только числовое значение. Ввод дробовой стоимости (цены с копейками) следует писать через запятую. Например: 9,99.
Если в файле импорта не задана валюта для товара колонкой cur, тогда она будет задаваться такой, которая является основной в настройках в административном профиле на момент осуществления импорта.
- cat (категория). Если категория не будет указана, она создастся самостоятельно без названия.
Вложение товара в определенную категорию прописывается по принципу: МР3-плееры/MP3-MP4 плееры/Apple iPod. Apple iPod - это подкатегория 3-го уровня вложенности, куда будет импортирован товар. Если же товар относится к категории высшего уровня, в таком случае следует прописать только название родительской категории, например, МР3-плееры.
Категорию следует прописывать точно так же, как она создана на сайте: если у вас есть категория "Мебель", то в колонке просто прописываете просто слово "Мебель" (без пробелов, форматирования и т. д.). При этом: если название категории на сайте будет чем-то отличаться от названия, указанного в колонке, (например, будет допущена грамматическая ошибка), то после импорта создастся новая категория.
- num (артикул). Его наличие обязательно при осуществлении импорта. При условии пустых значений в колонке num товары будут не добавляться, а перезаписываться (именно первый товар в таблице, у которого нет артикула, будет перезаписан множество раз до завершения загрузки всего файла), так же, как и при совпадении артикулов.
Артикул не должен повторяться, поэтому важно использовать номера, которые раньше не использовались в системе. Например: 0000a1, 0000a2, 0000a3. Для формирования артикула можно использовать цифры и латинские символы.
Eсли товары в файле импорта имеют одинаковое название (name), но разные артикулы (num), то создаются варианты товара.
Если товары в файле импорта имеют одинаковый артикул (num), товары перезапишутся.
Избегайте пробелов, прочерков и нижних подчеркиваний в артикулах товаров - это может привести к тому, что товары не будут импортированы (никаких ошибок при этом отображено не будет)
2.2.2. Дополнительные колонки
К дополнительным колонкам относятся колонки, содержащие дополнительные данные, целью которых в основном является оформление товара. В целом, эти колонки необходимы только для системы ImageCMS Shop и Premmerce. При обмене данными с другими системами они могут требовать редактирования админом под требования другого движка.
К таковым относятся:
- URL - колонка, содержащая исключительно последний сегмент URL, принадлежащий именно конкретному товару.
Например, если полный URL товара имеет вид: http://ваш-домен/shop/product/sumka-krasnaya, то вам необходим только последний сегмент после слеша: sumka-krasnaya (без слеша).
При импорте наличие колонки необязательно. В таком случае URL генерируется автоподбором.
- oldprc (старая цена). Содержит значение старой (зачеркнутой) цены, которую часто используют в маркетинговых целях. Ячейка должна содержать точное цисловое значение.
- stk (количество). Содержит количество товаров в наличии. Значение должно быть исключительно числовым: только целые числа без дробовых значений.
0 - товара нет в наличии. В таком случае импортированный товар будет отображаться как недоступный для покупки
1 и более - товар есть в наличии. В таком случае импортированный товар будет отображаться как доступный для покупки, и клиенты смогут положить в корзину и приобрести заданное количество единиц.
Содержимое колонки stk также указывает системе, можно приобрести конкретный товар или нет.
- var (название варианта). Содержит название варианта товара, если таковой имеется.
- act (наличие). Это активность товара. Здесь может быть 2 значения:
0 - Товар неактивен. В таком случае импортированный товар не будет отображаться на сайте (только в списке товаров в админпанели сайта).
1 - Товар активен. В таком случае импортированный товар будет отображаться на сайте в штатном режиме.
Содержимое колонки act указывает системе, следует ли отображать товар на страницах магазина. Неактивный товар невозможно купить.
- hit (хит). Статус товара, используемый в маркетинговых целях для обозначения популярных товаров меткой "Хит" (или аналогичной, в зависимости от шаблона). Также используется для подбора товара в определенный виджет.
- hot (новинка). Статус товара, используемый в маркетинговых целях для обозначения новых товаров на рынке/ассортименте магазина меткой "Новинка" (или аналогичной, в зависимости от шаблона). Также используется для подбора товара в определенный виджет.
- action (акция). Статус товара, используемый в маркетинговых целях для привлечения внимания к товарам со скидкой, а также их обозначения меткой "Акция" (или аналогичной, в зависимости от шаблона). Также используется для подбора товара в определенный виджет.
Колонки hit, hot, action - могут иметь 2 значения:
- 0 - значение статуса товару не присваивается;
- 1 - значение статуса товару присваивается.
Любые другие значения полей не допускаются.
- brd (бренд). Колонка, содержащая название бренда. Допустимые значения: кириллические и латинские символы, пробелы и цифры.
- addcats (дополнительные категории). Колонка, содержащая данные о дополнительных категориях, в которых отображается/должен отображаться товар. Дополнительная категория указывается по аналогии с главной категорией товара (смотрите выше в пункте 2.2.1. Обязательные колонки cat (категория)).
Если дополнительных категорий больше, чем одна, прописывать их следует через разделитель: вертикальный слеш | . Например: Компьютеры|Электроника/Компьютеры, где:
- "Компьютеры" - первая дополнительная категория 1-го уровня;
- "Электроника/Компьютеры" - вторая дополнительная категория 2-го уровня.
До версии системы 4.9 дополнительные категории можно было импортировать в товар колонкой addcats при условии, что URL дополнительной категорий создан автоподбором (в настройках этих категорий).
Начиная с версии 4.9 URL дополнительных категорий при импорте не учитывается.
- relp (аксессуары). Колонка, которая содержит данные о дополнительных товарах относительно основной товарной позиции. Колонка должна содержать ID дополнительных товаров (аксессуаров). В качестве разделителя используется запятая. Например: 17233,17259,17261 (без пробелов).
- vimg (основное изображение варианта). Колонка, содержащая главное изображение товара или варианта товара.
Колонка должна содержать имя изображения и его формат (например: beae55.jpg) или URL изображения (при импорте фото с облачных серверов, например, импорт фото через https, не поддерживается). Главное изображение может быть только одно для каждого варианта товара.
Подробнее об импорте изображений смотрите в пункте: "3.2. Импорт изображений"
- imgs (дополнительные изображения). Колонка, содержащая дополнительные изображения товаров.
Колонка должна содержать названия изображений и формат (например: beae55.jpg) или его URL. В качестве разделителя используйте вертикальный слеш | . К примеру: add-Image-name1.jpg|add-Image-name2.jpg|add-Image-name3.jpg
Подробнее о импорте изображений смотрите в пункте "3.2. Импорт изображений"
- cur (валюта). Колонка, указывающая ID валюты, в которой установлена цена (в колонке prc). ID валюты можно узнать в списке валют.
- shdesc (краткое описание). Колонка, в которой содержится короткое текстовое описание товара.
- desc (полное описание). Колонка, в которой содержится полное текстовое описание товара.
Как правило, 3 следующих колонки содержат мета-данные товара: тайтл, описание и ключевые слова. Но если мета-данные не прописаны напрямую в форме редактирования товара, а генерируются автоматически при помощи отдельного функционала и настроек (например, модуль СЕО-эксперт), то данные колонки могут быть пустыми.
Допустимое содержимое для колонок, отведенных под мета-данные, - символы кириллического и латинского алфавита, цифры (например: "фотокамера Сanon powershot sx400" ). HTML-форматирование не допускается.
- mett (meta-title). Колонка, в которой содержится мета-тайтл товара.
- metd - Meta Description - колонка, в которой содержится мета-описание товара.
- metk (meta-keywords). Колонка, в которой содержатся ключевые слова для товара.
Синтаксис
Раздел, который посвящен подробному рассмотрению синтаксиса, допустимого при осуществлении импорта. При экспорте (при условии, что магазин заполнялся вручную через администраторскую часть) система сама генерирует файл с использованием приемлемого синтаксиса.
Это обстоятельство можно использовать с определенной пользой. Например, если у вас не получается самостоятельно создать корректный файл импорта для заполнения магазина большим количеством товаров (например, возникают дубли или "лишние" варианты товара) и/или надлежащим образом оформить товары (не получается прописать дополнительные категории, добавить дополнительные изображения и т. д.), то вы можете создать в админке несколько тестовых товаров и экспортировать их.
Подобное действие позволит вам получить четкий образец оформления файла согласно своим требованиям.
2.1 Разделитель
Файл импорта содержит ряд колонок, в которых возможно множественное значение. Это такие колонки как:
- relp - связанные продукты - аксессуары (наборы товаров не подлежат импорту/экспорту);
- imgs - дополнительные изображения товара;
- addcats - дополнительные категории для товара.
(Подробнее о колонках - пункт 2.2.2. Дополнительные колонки)
+ Колонки свойств, при условии, что свойство может иметь множественное значение.
В качестве знака-разделителя между множественными значениями в данных колонках используются следующие символы:
Для колонок addcats и imgs, а также для свойств, - вертикальный слеш без пробела. Например: 0001.jpg|0002.jpg|0003.jpg|0004.jpg
Для колонки relp - запятая без пробела. Например: 17238,17236
2.2 Названия изображений
Изображения играют существенную роль в оформлении магазина. Поэтому в целях избежания ошибок и обеспечения корректной работы функционала обмена данными, следует придерживаться следующих рекомендаций:
- Названия изображений не должны содержать кириллических символов и пробелов, а также каких-либо других символов, которые могут быть некорректно интерпретированы во время загрузки на сервер. В изначальных названиях допускается только латинские символы, цифры, дефис и нижнее подчеркивание. Например: img_00-1.png. На некоторых хостингах не допускаются символы верхнего регистра (заглавные).
- Не изменяйте имена файлов. Имена изображений, указанные в файле импорта, должны полностью совпадать с именами изображений, загруженных на сервер.
При экспорте
- Учтите, что используемые в системе изображения имеют уже измененные имена. Система автоматически меняет изначальное название на автоматически сгенерированный уникальный код вида 25b5a7fb84267366a59bd90b2ffaec4e.png, так как все загруженные изображения находятся в одной папке. Восстановить изначальные названия файлов невозможно.
(Подробнее об импорте изображений - пункт 3.2. "Импорт изображений")
2.3 HTML форматирование
Для оформления отображения полного описания товаров допустимо некоторое HTML-форматирование. А именно:
Теги для оформления текста:
<p>,<em>,<strong>,<ul>,<ol>,<li>,<span>,<а>,
(+ style, например, <span style="color: #ff0000;">) и т. д.
Для вставки медиа-файлов допустимы конструкции вида:
- Изображений в текст полного описания -
<p><img src="/uploads/images/ХХХ.png" alt=" width="ХХХ" height="ХХХ" /></p>
- Видео в текст полного описания -
<p><iframe width="ХХХ"" height="ХХХ" src="//www.youtube.com/embed/ХХХХХХХХ" allowfullscreen=" "></iframe></p>
Медиа-файлы, указанные в описании, должны быть или предварительно загружены на сервер по указанным в файле путям, или же находиться на сторонних ресурсах (например, на Youtube) без последующей загрузки на ваш хостинг.
- Теги и символы в тексте могут быть интерпретированы в html-коды (например: пробел в html-код тире в html-код – и т. д.).
- Если HTML-форматирование прописано неверно (например, не закрыт какой-то тег), то, скорее всего, импорт этого элемента произойдет некорректно.
- Любое форматирование файла импорта (например, выделение текста жирным или заливка ячеек таблицы цветом) недопустимо.
Импорт
С помощью импорта можно быстро заполнить магазин товарами при условии наличия предварительно созданного соответствующего файла CSV, XLS или XLSX. Осуществить импорт можно при помощи вкладки: "Импорт-экспорт CSV/XLS".
Перед импортом новичкам желательно создать бэкап базы данных. Если вы используете импорт впервые, рекомендуем проводить его на основе очищенного файла экспорта.
Файл импорта может быть только на одном языке. Если у вас мультиязычный магазин, то вам необходимо создавать отдельные файлы импорта под каждую языковую версию.
3.1. Импорт изображений
Изображения необходимо загружать на хостинг отдельно через FTP.
В последней версии основные фото товаров надо помещать в папку \uploads\shop\products\origin, а дополнительные фото - в \uploads\shop\products\origin\additional. Для версии ImageCMS Shop 4.8 и 4.8.1 при импорте обязательно должна присутствовать колонка вариантов товаров var, хоть заполнять ее необязательно.
Имена изображений, загруженных на сервер, должны полностью совпадать с именами изображений, указанных в файле импорта.
Рекомендации для изображений:
- Формат: jpg или png;
- "Вес" изображения: 600 - 800 КБ;
- Размер (в пикселях): 1000 - 1300 в ширину;
В качестве дополнительного фото для товара желательно добавлять не более 4-6 изображений (хотя максимально можно добавить 17 картинок: 1 главное изображение + 16 дополнительных (в сборке ImageCMS Shop версии 4.10 это ограничение снято)). Большее количество дополнительных картинок может повлиять на скорость загрузки страницы товара.
До версии 4.8 фотографии для импорта надо было загружать в папку: /uploads/temp/ (и основные, и дополнительные вместе).
Внимание! Права на папку uploads и все ее вложения должны быть 777 на запись/чтение рекурсивно (CHMOD). В названиях картинок не рекомендуется использовать кириллицу и пробелы.
Заливка изображений по FTP доступна только пользователям "коробочной" версии ImageCMS Shop. Пользователям облачного решения Premmerce доступ по FTP не предоставляется. Поэтому если вы - пользователь Premmerce и желаете заполнить магазин импортом, выложите фото в облачном хранилище и пропишите в файле импорта ссылки на них (импорт фото по https не поддерживается).
3.2. Импорт файла
- Шаг 1: Открыть модуль обмена данными:
Необходимо выбрать пункт главного меню пользователя: "Модули", а в нем подпункт: "Импорт-экспорт CSV/XLS":
Если в вашей админпанели в меню пункта "Модули" такого модуля нет, то "Импорт-экспорт CSV/XLS" находится в списке модулей, и его необходимо установить и/или вывести в меню пункта "Модули". Как это сделать, описано ниже.
Установка модуля. Перейдите к списку модулей, выбрав подпункт "Все модули" (1). Далее в открывшемся окне выберите вкладку: "Установить модули" (2). В списке найдите модуль: "Импорт-экспорт CSV/XLS" и кликните по ссылке: "Установка" (3):
Вывести в меню пункта "Модули". В списке: "Все модули" напротив модуля: "Импорт-экспорт CSV/XLS" необходимо перевести в активное положение ползунки, в частности, ползунок в колонке "Показывать в меню":

- Шаг 2: Выбор файла и предварительная загрузка в слот
Загрузите предварительно созданный файл импорта в один из трех слотов, доступных на вкладке импорт. Выбрать файл на локальном компьютере можно после клика по кнопке: "Выберите файл":
- Шаг 3: Просмотр и настройка файла
После загрузки файла в систему для импорта данных из него, система предоставляет администратору краткий обзор колонок, которые она идентифицировала из файла.
На данном этапе следует проверить, все ли отображаемые в форме колонки совпадают с содержимым файла. Если есть различия или происходит сбой, значит в файле допущены ошибки в названиях колонок или их структуре.
Также при необходимости можно задать дополнительные настройки импорта в блоке ниже:
- Обновлять пустые поля. Функция, позволяющая массово редактировать (удалять) данные определенного типа (содержание конкретной колонки), которые уже размещены на сайте, путем их затирания пустым значением в колонке. Используется в случаях необходимости массового удаления уже имеющихся данных через импорт (например, если вам необходимо разом удалить все мета-данные или описания товаров).
- Сделать снимок базы данных до начала импорта. Функция, которая позволяет сделать бэкап базы данных, если вы не сделали его ранее.
- Начать изменение размера изображения после импорта. Функция, которая позволяет осуществить автоматический ресайз изображений после импорта (при импорте фото).
- Обновлять цены после импорта. Функция, которая позволяет пересчитать цены после импорта. Она работает при условии, что цены на товары уже созданы в системе до импорта, конвертированы, обновляются посредством импорта и/или указываются в нескольких валютах.
Если файл считан системой верно и настройки осуществлены, можно начинать импорт товаров кликом по кнопке: "Начать импорт".
- Шаг 4: Завершение импорта.
После завершения процесса импорта необходимо очистить кэш через админпанель.
Также в целях экономии места на сервере после импорта и исключительно только после ресайза новых картинок вы можете очистить папки /uploads/origin и /uploads/origin/additional, в которые были помещены главные и дополнительные изображения товаров.
Копии изображений, созданные ресайзом, которые в последующем будут использоваться в системе для иллюстрирования товаров, находятся в папках: \uploads\shop\products\additional, large, main, medium, origin, small . Их удалять категорически не рекомендуется.
Если демо-данные не были установлены при инсталляции системы, то надо вручную создать папки: uploads/shop/products/additional, /uploads/shop/products/large, uploads/shop/products/main, uploads/shop/products/medium, uploads/shop/products/origin, uploads/shop/products/origin/additional, uploads/shop/products/small, uploads/shop/products/watermarks.
Также если вы планируете в последующем использовать водяные знаки и/или изменять размеры шаблонов изображений, файлы в папках uploads/shop/products/origin и uploads/shop/products/origin/additional являются обязательными.
3.3. Очистка слотов
Для работы с файлами импорта и их последующего хранения в системе предусмотрено 3 слота на вкладке "Импорт"
Также данные слоты могут использоваться в качестве основы при индивидуальных доработках стандартного функционала.
Загруженный в слот файл будет храниться в нем до тех пор, пока не будет удален или перезаписан другим файлом импорта (но обязательно с другим именем или форматом).
Очистить слоты можно можно через FTP. Файлы импорта хранятся в папке \application\backups\application\backups (рекурсивные права 777 (CHMOD) на данную папку обязательны)
3.4. Импорт в мультиязычном магазине
Пользователи ImageCMS Shop в редакции Premium могут создавать мультиязычные магазины, имеющие 2 и более языка. Обмен данными в подобных магазинах имеет свои небольшие нюансы, ведь администратору необходимо правильно указать системе, в какую именно языковую версию магазина нужно загрузить данные.
Чтобы переключить языковую версию:
- Пользователям ImageCMS Shop от версии 4.8 необходимо выбрать нужный язык из выпадающего списка на вкладке "Импорт".
- Для пользователей ImageCMS Shop более ранних версий необходимо перейти: "Система" - "Языки" и временно определить нужный язык как основной. Затем можно приступать к импорту.
После осуществления импорта настройки языков следует вернуть обратно.
Экспорт
Экспорт позволяет осуществить выгрузку данных о товарах, имеющихся в вашем магазине, в файл формата CSV, XLSX, XLS.
Файл экспорта содержит только основные данные о товарах и не является альтернативой или аналогом бэкапа базы данных. При экспорте изображения необходимо выгружать на локальный ПК, например, отдельно.
4.1. Экспорт файла
- Шаг 1: Открыть модуль обмена данными:
Подробнее об открытии функционала смотрите в разделе "3.2. Импорт файла".
- Шаг 2: Выбор данных для выгрузки
Используя блок с ячейками, отметьте все колонки, содержимое которых должно быть выгружено (подробнее о содержимом колонок смотрите в пунктах 2.2, 2.2.1 и 2.2.2).
Минимальный набор данных (колонок) необходимых для экспорта - это:
- Название товара;
- Цена;
- Артикул;
- Категория.
Остальные данные вы можете выгружать произвольно, в соответствии со своими пожеланиями и задачами.
- Шаг 3: Выбор категории для выгрузки
Из выпадающего списка в поле "Категории" выберите категорию товаров, данные из которой следует выгрузить.
Вы можете выбрать несколько категорий, зажав и удерживая кнопку Ctrl.
Если в поле оставить пустое значение, то будут выгружены данные из всех созданных в магазине категорий товаров.
- Шаг 4: Выбор свойств для выгрузки.
Если вы желаете выгрузить свойства, привязанные к выбранным в предыдущем шаге категориям и выгружаемым товарам, кликните по кнопке: "Посмотреть свойства выбранной категории". После этого будет сгенерирована и отображена выборка свойств.
Свойства, которые необходимо выгрузить в файл, нужно отметить в ячейках выбора.
- Шаг 5: Выбор формата файла выгрузки.
В строке: "Тип файла" вам необходимо выбрать тип файла: CSV, XLSX или XLS
- Шаг 6: Если вы хотите создать резервную копию изображений, отметьте значение в поле: "Сделать резервную копию фотографий". Копия картинок создается архивом в папке /application/backups/.
Подробнее в пункте 4.2
- Шаг 7: Начало экспорта - клик по кнопке: "Начать экспорт".
Файл экспорта должен автоматически загрузиться на ваш компьютер.
4.2. Экспорт изображений
Если вам необходимо создать копию используемых в магазине изображений, можете использовать опцию экспорта: "Сделать резервную копию фотографий" (пункт 4.1, шаг 6)
В процессе экспорта в папке \application\backups буден создан .zip-архив (имя архива будет сгенерировано автоматически с привязкой к точной дате и времени экспорта. Его вид будет примерно такой: archive_ММ(месяц)_ДД(число, день)_ГГ(год)_ЧЧ(час)_ММ(минуты)_СС(секунды).zip. Например: archive_05_06_16_17_50_04.zip )
Данный архив будет содержать только те изображения, которые подлежат выгрузке и, соответственно, выбраны в шаге № 2 пункта 4.1 (Основные и/или Дополнительные).
В отличие от файла экспорта, экспортируемый архив с картинками не загружается автоматически на ваш компьютер. Его необходимо скачивать отдельно из папки \application\backups через FTP или через встроенный файловый менеджер в панели управления хостингом.
Экспортировать можно только основные и дополнительные изображения товаров. Миниатюры и изображения, которые используются при зуме не экспортируются и не импортируются.
Осуществить отдельный экспорт изображений без создания файла невозможно.
Также экспортировать изображения можно без участия модуля, просто через FTP.
По умолчанию все изображения в системе загружаются в папку /uploads:
/uploads/origin и /uploads/origin/additional - папки, в которые помещаются главные и дополнительные изображения новых товаров перед импортом (в них содержатся неотформатированные оригиналы изображений без водяных знаков).
Папки, которые содержат созданные ресайзом копии (используемые в системе):
- \uploads\shop\products\additional
- \uploads\shop\products\large
- \uploads\shop\products\main
- \uploads\shop\products\medium
- \uploads\shop\products\small
При необходимости просто выгрузите нужную папку.
4.3. Экспорт в мультиязычном магазине
Если вы хотите осуществить экспорт содержимого из мультиязычного сайта, то, прежде всего, вам следует учесть, что делать это необходимо отдельно для каждой языковой версии магазина.
Чтобы произвести экспорт товаров на определенном языке, вам следует в настройках магазина указать выгружаемый язык как основной (переход в админпрофиле: "Настройки" - "Языки") и очистить кэш. Только после этого следует приступать к импорту.
После импорта можно вернуть назад настройки языка по умолчанию и еще раз очистить кэш, чтобы изменения вступили в силу незамедлительно.
Экспорт картинок достаточно осуществить только единожды, так как используются одни и те же изображения во всех языковых версиях.
5. Частые проблемы и их решения
Товары импортируются, есть в админке, есть в категории, однако при переходе на страницу товара выдает 404 ошибку.
Проверьте колонки файла импорта url и num. Скорее всего, эти колонки пустые. В таком случае исправьте ошибку и повторите импорт.
Слитие разных товаров в варианты.
Скорее всего, товары в файле импорта имеют одинаковое название в name, но разные артикулы. Проблему можно решить уникализацией значения в колонке name.
После удаления товаров и последующего импорта товары есть в админпанели, но на сайте при переходе на товар открывается категория данного товара.
После удаления товаров система автоматически создает редиректы на категорию, чтобы товар не потерял позиции в поисковых системах. Удалите ненужный редирект в Администраторская панель - Модули - Модуль редиректов и очистите кэш.
Не происходит обмен данными с файлами XLS и XLSX.
Основным форматом модуля является CSV. Если у вас модуль импорта не работает с файлами XLS и XLSX, обратитесь к хостеру. Возможно, настройками хостинга не предусмотрена поддержка данных форматов (проверить, поддерживает ли ваш хостинг работу с XLS и XLSX, можно, осуществив тестовый экспорт демо-товаров в файл XLS или XLSX).
Не отображаются картинки новых товаров после импорта.
В первую очередь, вам необходимо проверить загружены ли физически необходимые изображения на сервер в папку /uploads/origin (основные фото) и в /uploads/origin/additional (все дополнительные). Также проверьте, совпадают ли их имена с теми, что указаны в файле импорта.
При передаче файлов на сервер некоторые файлы могут остаться непереданными или поврежденными. В таком случае необходимо выборочно повторить их загрузку. Проверьте также, чтобы на папку uploads и все ее вложения были выставлены права на запись/чтение 777.
Если со стороны сервера проблема не обнаружена, осуществите отдельный ресайз всех изображений ("Настройки" - "Настройки магазина" - "Изображения" - клик по кнопке: "Ресайз", после предварительного выбора ячейки: "В том числе дополнительные изображения").
После завершения ресайза очистите кэш.
На "чистой" 4.11 не импортируются свойства товаров
В файле \application\modules\import_export\classes\BaseImport.php надо закомментировать строки 470 - 490
$propery = $this->db->query(
'
SELECT `id`, `data`
FROM `shop_product_properties_i18n`
WHERE id = ? AND locale = ?',
[
$properyAlias[$nodeKey],
$this->languages,
]
)->row();
$data = (!empty($propery->data)) ? unserialize($propery->data) : [];
$changed = false;
foreach ($values as $v) {
if (!in_array($v, $data, true)) {
$changed = true;
$data[] = $v;
}
}
if ($changed) {
$this->db->update('shop_product_properties_i18n', ['data' => serialize($data)], ['id' => $properyAlias[$nodeKey], 'locale' => $this->languages]);
}
На "чистой" 4.12 импорт не передает/не перезаписывает фото:
в файле \application\modules\import_export\classes\ProductsImport.php попробуйте закомментировать строки
$idna = new Punycode();
$idna->decode($param);
При импорте товара с измененными свойствами происходит не замена а добавление свойств
В файле \application\modules\import_export\classes\BaseImport.php закомментируйте 485-ю строку 'locale' => $this->languages
, И проверьте импорт свойств.
Если решение не поможет - проверьте свои действия и код:
public function runProperties() {
if (ImportBootstrap::hasErrors()) {
return FALSE;
}
$properties = $this->db->query('SELECT id, csv_name FROM shop_product_properties')->result();
foreach ($properties as $property) {
$properyAlias[$property->csv_name] = $property->id;
}
foreach ($this->content as $node) {
foreach ($node as $nodeKey => $nodeElement) {
if (array_key_exists($nodeKey, $properyAlias)) {
$result = $this->db->query('SELECT * FROM shop_product_properties_data WHERE product_id = ? AND property_id = ?', [$node['ProductId'], $properyAlias[$nodeKey]])->row();
if ($result instanceof \stdClass) {
$this->db->delete(
'shop_product_properties_data',
[
'product_id' => $node['ProductId'],
'property_id' => $properyAlias[$nodeKey],
//'locale' => $this->languages,
]
);
}
$values = array_map('trim', explode('|', $nodeElement));
foreach ($values as $v) {
$v = htmlspecialchars($v);
if ($v !== '') {
$property_value = SPropertyValueQuery::create()
->useSPropertyValueI18nQuery()
->filterByLocale($this->languages)
runProperties
'shop_product_properties_data',
[
'product_id' => $node['ProductId'],
'property_id' => $properyAlias[$nodeKey],
//'locale' => $this->languages,
]
сделать //'locale' => $this->languages
,
/application/modules/import_export/classes/BaseImport.php
Обмен данными - это один из важнейших функционалов интернет-магазина, так как он позволяет администратору осуществлять перенос больших объемов информации без больших затрат времени и труда. В ImageCMS Shop как импорт, так и экспорт данных осуществляется при помощи одного простого функционального окна.
- 1. Открыть окно обмена данными
- 2. Элементы функционального окна "Импорт-экспорт CSV/XLS"
- 3. Осуществить экспорт
- 4. Осуществить импорт
- 5. Обзор импортируемого файла
- 6. Возможные ошибки
Форматы файлов, поддерживаемые системой ImageCMS Shop, - CSV, XLS или XLSХ.
1. Открыть окно обмена данными
- можно, выбрав пункт главного меню пользователя "Настройки", а в нем подпункт "Импорт-экспорт CSV/XLS":
2. Элементы функционального окна "Импорт-экспорт CSV/XLS"
- данное окно содержит две вкладки: "Импорт" и "Экспорт". Следовательно, функциональные элементы, доступные пользователю на той или иной вкладке, отличаются друг от друга:
2.1 Функциональные элементы вкладки "Экспорт":
- Блок ячеек "Колонки" - предоставляет возможность осуществить выбор данных о товарах, подлежащих экспортированию. Каждая ячейка, имеющая значение "Выбрано", будет отображена в создаваемом файле отдельной колонкой, содержащей соответствующие данные.
- Список категорий - предоставляет возможность осуществить выбор категорий, подлежащих экспортированию. Из данного списка можно осуществить выбор всех необходимых категорий при помощи зажатой клавиши Ctrl.
- Кнопка "Показать свойства выбранных категорий" - функциональный элемент, запускающий процесс вывода блока свойств (параметров) товаров выбранных категорий в окне "Импорт-экспорт CSV/XLS".
- Блок свойств (параметров) - это блок ячеек, определяющий параметры товаров, содержимых в выбранной категории и подлежащих экспортированию. Ячейки отображают те параметры, которые были созданы и присвоены администратором при помощи пункта меню "Свойства товаров".
- Группа ячеек "Тип файла" - предоставляет возможность выбрать формат создаваемого файла экспорта.
- Кнопка "Начать экспорт" - функциональный элемент, запускающий процесс экспорта данных из ImageCMS Shop.
2.2 Функциональные элементы вкладки "Импорт":
- Кнопка "Выбрать файл" - предоставляет администратору возможность осуществить выбор файла, содержащего данные, подлежащие импортированию.
- Блок слотов для файлов - предоставляет возможность администратору загрузить до 3 файлов и импортировать их в нужное время.
- Блок ячеек выбора - предоставляет возможность администратору опционально осуществить ряд вспомогательных импорту действий, таких как: сделать бекап базы данных, пересчитать цены и осуществить ресайз импортированных изображений.
- Кнопка "Начать импорт" - функциональный элемент, непосредственно запускающий процесс импорта данных в систему:
Данные базы данных будут храниться в папке название_сайта/application/backups/.
Для импортированных изображений будет произведен ресайз - этот может занимать больше времени.
Цены на продукцию будут пересчитаны в соответствии с валютой по умолчанию.
3. Осуществить экспорт
- можно при помощи соответствующей вкладки окна "Импорт-экспорт CSV/XLS". Для этого следует осуществить следующее:
- Указать данные, подлежащие экспорту, в разделе вкладки "Колонки" (смотрите пункт 2.1 - элемент 1).
- Указать категории товаров, подлежащие экспорту, выбрав их из списка "Категории" (смотрите пункт 2.1 - элемент 2).
- Открыть список свойств (параметров) товаров, содержимых в категориях, подлежащих экспорту, при помощи кнопки "Показать свойства выбранных категорий" (смотрите пункт 2.1 - элемент 3). Далее следует указать свойства (параметры) товаров, которые вы желаете экспортировать, осуществляя их выбор в сгенерированном блоке ячеек "Свойства продукта" (смотрите пункт 2.1 - элемент 4).
- Указать тип (расширение) создаваемого файла экспорта по средствам осуществления выбора из предлагаемых системой ImageCMS Shop вариантов в разделе "Тип файла": CSV, XLSX или XLS (смотрите пункт 2.1 - элемент 5).
- Осуществив клик по кнопке "Начать экспорт", которая находится в нижней части окна "Импорт-экспорт CSV/XLS" (смотрите пункт 2.1 - элемент 6).
4. Осуществить импорт
- можно при помощи соответствующей вкладки окна "Импорт-экспорт CSV/XLS". Однако, если вы желаете, чтобы для представления товаров использовались старые изображения (то есть те же, которые используются на площадке, с которой был осуществлен экспорт), в таком случае, прежде чем приступать непосредственно к импорту, сперва следует осуществить некоторые действия, связанные с импортом изображений. Так как непосредственно сами изображения не подлежат вигрузке в файл експорта.
4.1. Произвести импорт изображений - можно, осуществив следующее:
- создать директорию имя_сайта\uploads\temp и применить к ней права доступа chmod 0777;
- далее в эту директорию необходимо загрузить изображения, которые использовались для товаров ранее (по одному для каждого товара и для вариантов товара. Следует загружать изображения, используемые в качестве основных, дополнительные иконки и миниатюры будут сгенерированы системой автоматически, если вы зададите значение "Выбрано" ячейке "Начать ресайз изображений после импорта" (смотрите пункт 2.2 - элемент 3)).
Hе рекомендуется изменять имена изображений в промежутке между экспортом и импортом без осуществления соответствующих изменений в файле, подлежащему импорту.
В данном случае необходимо использовать изображения, исполнявшие роль главных изображений товара.
Далее на вкладке "Импорт", которая находится в окне "Импорт-экспорт CSV/XLS", следует осуществить следующее:
- Осуществить выбор файла в формате CSV, XLS или XLSХ, подлежащего импорту, при помощи кнопки "Виберите файл".
- При помощи блока "Файлы" осуществить выбор слота, в который будет загружен данный файл.
- Задать дополнительные настройки импорта при помощи блока ячеек выбора. Данное действие является опциональным и не является обязательным для осуществления импорта. Однако при осуществлении импорта товаров вместе с изображениями необходимо изменить значение ячейки "Начать ресайз изображений после импорта" (смотрите пункт 2.1 - элемент 3) на "Выбрано". По умолчанию данные ячейки имеют значение "Не выбрано".
- Осуществить клик по кнопке "Начать импорт":
После успешного осуществления вышеуказанных действий процесс импорта происходит автоматически и не требует никакого участия администратора.
4.2. Импорт изображений при помощи URL
В системе ImageCMS Shop также предусмотрена возможность импорта изображений через URL-адрес изображения. Данный способ будет весьма полезным и удобным при осуществлении импорта небольшого количества товаров.
Для того, чтобы осуществить импорт изображений при помощи URL, вам необходимо открыть предварительно созданный файл экспорта.
Если вы осуществляете экспорт из магазина, созданного на ImageCMS или Premmerce, о создании соответствующего файла можете узнать из пунктов 3 и 2.1 данной статьи.
файл экспорта должен содержать колонки:
- vimg - колонка для данных о главном изображении;
- imgs - колонка для данных о дополнительных изображениях.
Если созданный файл не имеет данных колонок - вы можете добавить их вручную в уже созданный файл.
Далее в файле экспорта необходимо указать:
- URL главного изображения товара в колонке vimg;
- URL дополнительного изображения товара в колонке imgs. Если дополнительных изображений несколько, вам необходимо в одной ячейке колонки указать их URL отдельно для каждого изображения, используя как знак разделения вертикальный слеш:
http://example.com/image/path/01.jpg|http://example.com/image/path/02.jpg|http://example.com/image/path/03.jpg|...
Узнать URL нужного вам изображения можно при помощи функции вашего браузера "Просмотр элемента", обычно доступной при нажатии клавиши F12.
После внесения всех необходимых URL-адресов изображений сохраните файл.
осуществляя импорт, обязательно выберите ячейку "Начать ресайз изображений после импорта", находящуюся на вкладке "Импорт". В противном случае изображения товаров отображаться не будут.
5. Обзор импортируемого файла
- можно осуществить, просто открыв файл, подлежащий импорту, в одном из трех слотов. После чего в окне "Импорт-экспорт CSV/XLS" будет автоматически сгенерирован краткий обзор свойств товаров, содержимых в файле:
5.1. Обязательные параметры для импорта товарных позиций:
Для корректного импорта товаров файл импорта должен обязательно содержать следующие поля и их значения для каждой товарной позиции:
- name - имя товара. Если не указать имя - создастся товар без названия, если названия товара дублируются при разных артикулах - создастся вариант товара;
- num - артикул. Должен быть для каждого товара и варианта товара уникальный. В случае отсутствия артикула товар не создастся или не обновится. В случае дублирования артикулов - товар каждый раз будет перезаписываться.
- cat - категория. Если категория не будет указана - создастся категория без названия.
Для импорта вариантов товара файл импорта обязательно должен содержать следующие поля:
- name - имя товара. Если не указать имя - создастся товар без названия, если названия товара дублируются при разных артикулах - создастся вариант товара;
- num - артикул. Должен быть для каждого товара и варианта товара уникальный. В случае отсутствия артикула - товар не создастся или не обновится. В случае дублирования артикулов - товар каждый раз будет перезаписываться.
- cat - категория. Если категория не будет указана - создастся категория без названия.
- var - имя варианта.
- url - URL товара и варианта.
6. Возможные ошибки
при осуществлении импорта/экспорта приблизительно следующие:
- Ошибка EIx004
"Ошибка доступа к целевой папке. Продолжение невозможно".
Ошибка доступа к папке /application/backups.
Решение: проверьте наличие папки на сервере, а также установите права доступа "777" рекурсивно (на эту папку и на все вложенные файлы и папки).
- Ошибка EIx005
"Ошибка чтения файла-источника. Продолжение невозможно".
Ошибка чтения файла импорта или файл не загружен.
Решение: проверьте наличие файла на сервере или попробуйте добавить его наново.
- Ошибка EIx008
"Атрибут 'Категория' не указан. Уточните данные импорта".
Атрибут 'Категория' обязателен для импорта.
- Ошибка EIx009
"Атрибут 'Артикул' не указан. Уточните данные импорта".
Атрибут 'Артикул' обязателен для импорта.
Больше информации об осуществлении обмена данными в ImageCMS Shop вы можете найти в статье "Инструкция по наполнению магазинов при помощи импорта".