Полный разбор компонента CSVI

Комментариев: 18

Первую свою статью на эту тему я написал несколько лет назад. С этого времени много воды утекло и CSVI изменился не только визуально, но и появились некоторые технические особенности, да и мой опыт использования этого компонента для решения самых разнообразных задач стал намного шире, и я подумал, что самое время поделиться им. Встречайте, полный разбор компонента CSVI на реальных примерах и типовых задачах. 

Вводные данные о компоненте

Поддерживаемые стандартные компоненты

Начнем наш познавательный рассказ о CSVI с перечисления основных его возможностей, для того, что бы у Вас сложилось понимание,  сможет ли данный компонент решить именно вашу задачу.

к содержанию ↑

Поддерживаемые компоненты с помощью дополнительных расширений

  • Joomla Категории материалов
  • Joomla Материалы
  • Joomla Меню
  • Joomla Пользователи
  • Akeeba Subscriptions
  • AwoCoupon
  • Custom Filters Pro
  • EZ Realty
  • Fast Seller
  • HikaShop
  • K2
  • Virtuemart Product Builder
  • RSform
  • Virtuemart
  • Custom Fields For All
  • Stockable Custom Fields
  • J2Store

Как видите, список того, с чем работает CSVI самый разнообразный, а следовательно можно автоматизировать или просто ускорить почти любую задачу по наполнению и редактированию сайта.

к содержанию ↑

Какие типовые задачи может решить CSVI?

  • Импорт/Экспорт материалов и категорий в Joomla (очень удобно создать один раз демо-контент, а затем просто импортировать его в вновь создаваемые сайты, это значительно ускоряет разработку).
  • Импорт/Экспорт навигационного меню Joomla (вы можете создать несколько вариантов меню, а затем быстро импортировать их в разрабатываемые сайты, кроме этого, конечно можете ускорить процесс создания большего количества пунктов меню).
  • Импорт/Экспорт пользователей Joomla (может пригодится при миграции с одной версии Joomla на другую, для того, что бы сохранить накопившихся пользователей, к тому же лично я часто использую для того, что бы скопировать E-mail ящики для проведения рассылки).
  • Импорт/Экспорт товаров/заказов/статистики из компонентов интернет-магазинов Virtuemart, HikaShop и J2Store.
  • Синхронизация остатков/товаров/заказов с 1С Предприятие
  • Экспорт товаров в Яндекс.Маркет и Google Ads.

Пожалуй это наиболее распространенные задачи, которые приходится решать при разработке и контентной поддержке сайта на Joomla.

к содержанию ↑

Импорт/Экспорт материалов и категорий в Joomla

Экспорт материалов

Что бы лучше понять как работает CSVI, первым делом лучше всего сделать экспорт данных. После этого, вы можете понять какие данные могут быть выгружены, в каком виде и следовательно будет понятнее как делать импорт.

Создаем шаблон экспорта материалов

Переходим в компоненты CSVI -> Templates (Шаблоны) и нажимаем кнопку "Создать". Заполняем появившуюся форму:

Нажимаем Next (Далее) и указываем желаемый способ получения файла. В нашем случае это будет Download (скачать файл после экспорта данных). Как вы понимаете, можно выбрать и другие способы, например сохранить на сервер, отправить на почту и даже выгрузить в другую базу данных, а можно всё сразу.

Заполняем поле с именем будущего файла. Обязательно указываем расширение .csv, а также указываем разделитель полей (Field Delimiter) - запятая, а разделитель текста (Text Enclosure) - кавычка. Также можно изменить формат вывода даты, ограничить или задать диапазон записей которые необходимо экспортировать.

Теперь необходимо выбрать поля, которые нужно экспортировать. Поля - это данные материала, которые мы будем выгружать, например: наименование, текст, категория и т.д.

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

Теперь у нас всё готово для экспорта и мы можем к нему приступить. Переходим в CSVI->Экспорт (Export), выбираем созданный нами шаблон "Экспорт материалов" и нажимаем кнопку Export. После небольшого ожидания, файл автоматически сохранится вам в загрузки.

Импорт материалов

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

Создаем шаблон импорта материалов

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

Переходим в CSVI - Templates -> Создать и заполняем поля:

Затем переходим к следующему шагу и в поле Source выбираем источник загрузки файла. Обычно это загрузка файла с вашего ПК (Load drom your computer), но вы можете загружать файл с другого сервера, удаленной базы данных и т.д.

Нажимаем ещё несколько раз Next и наш шаблон готов. Никаких дополнительных настроек можно не вносить, всё будет и так прекрасно работать.

Импорт материалов

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

Переходим в CSVI -> Import -> Choose Template -> Импорт материалов и нажимаем кнопку Select File. Выбираем наш подготовленный для загрузки файл и нажимаем кнопку Import. Ждем несколько секунд и проверяем результат.

к содержанию ↑

Экспорт Email пользователей Joomla

Достаточно часто бывает необходимость выгрузить все E-mail ящики зарегистрированных пользователей, для того, что сделать рассылку с помощью специализированных сервисов. Более опытные пользователи могут использовать phpMyadmin и просто сделать экспорт таблицы Users, но для тех, у кого опыта не достаточно, можно использовать компонент CSVI.

Создание шаблона экспорта пользователей

Переходим в CSVI -> Templates -> Создать и заполняем форму следующим образом:

Нажимаем Next, затем оставляем в поле Destination значение Download для того, что бы по итогам экспорта скачать файл с данными, жмём Next и заполняем форму.

Нажимаем Next и нажимаем кнопку "Edit Template fields". В открывшемся окне, нам необходимо выбрать поля, которые мы будем выгружать. Для этого нажимаем кнопку "Quick add" и отмечаем галочками поля: Email и для большей информативности можно отметить поле Name и любые другие, необходимые поля. Нажимаем кнопку "Add Fileds" и всё готово к экспорту.

Экспорт E-mail пользователей

Переходим в CSVI -> Export -> Select template -> Экспорт пользователей нажимаем несколько раз Next и скачиваем файл с нужными нам данными. На этом всё.

к содержанию ↑

Импорт/Экспорт товаров Virtuemart

Наиболее часто использовать CSVI приходится при работе с товарами интернет-магазина. Загрузить новые товары, отредактировать старые, массово изменить цены, картинки и многое другое - это повседневные задачи администратора интернет-магазина и CSVI здесь очень кстати. Давайте разберемся с этим.

Экспорт товаров

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

Создаем шаблон экспорта товаров

Переходим в CSVI -> Templates -> Создать и заполняем форму следующим образом:

Если у Вас в разделе "Component" не отображается Virtuemart, Вам требуется установить дополнение, которое идет в поставке с компонентом (plg_virtuemart).

Раздел "Operation" содержит в себе список операций, который может выполнять CSVI с вашим магазином. Чаще всего приходится использовать "Product" для работы с товарами и "Category" для работы с категориями товаров.

Нажимаем Next (Далее) и указываем желаемый способ получения файла. В нашем случае это будет Download (скачать файл после экспорта данных). Как вы понимаете, можно выбрать и другие способы, например сохранить на сервер, отправить на почту и даже выгрузить в другую базу данных, а можно всё сразу.

Указываем в поле Text Enclosure - символ ". Также можете указать разрядность цен в поле Number of decimals. По-умолчанию этот показатель 2 и цены будут выглядеть так: 1000.00, если установить значение 0, будет так: 1000.

Теперь переходим к следующему шагу и нажимаем на кнопку "Edit template fields"

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

  • basepricewithtax - базовая цена с налогом
  • category_name - название категории товаров, например "Автокресла"
  • category_path - путь категории товаров, например: Автомобили/Автокресла. По-умолчанию разделитель "/", но его можно менять
  • created_by - пользователь создавший товар
  • created_on - дата создания
  • file_url - название изображения или путь до изображения в папке images/stories/virtuemart/products. Удобно назвать изображения артикулом, что бы потом просто скопировать колонку артикулов в это поле и дописать в ним расширение файла .jpg или .png.
  • hits - количество просмотров товара
  • layout - шаблон карточки товара
  • manufacturer_name - производитель
  • max_order_level - максимальное количество для заказа
  • metaauthor - мета-тег author
  • metadesc - мета-тег description
  • metakey - мета-тег keywords
  • metarobot - мета-тег robots
  • min_order_level - минимальное количество для заказа
  • modified_by - пользователь сделавший последнее изменение товара
  • modified_on -дата последнего изменения
  • product_currency - валюта
  • product_desc - детальное описание товара
  • product_gtin - штрих-код
  • product_height - габариты: высота
  • product_in_stock - остаток на складе
  • product_mpn - уникальный складкой номер
  • product_name - наименование товара
  • product_parent_sku - артикул родительского товара
  • product_price - цена
  • product_sales - количество продаж товара
  • product_sku - артикул
  • product_special - специальное предложение, принимает два значения 1 и 0. product_stockhandle
  • product_s_desc - краткое описание товара
  • product_weight - габариты: вес товара
  • published - статус публикации на сайте, принимает два значения 1 и 0.
  • related_categories - сопутствующие категории
  • related_products - сопутствующие товары, артикулы сопутствующих товаров
  • salesprice - цена продажи
  • shopper_group_name - имя группы пользователей
  • slug - слаг отображаемый в URL товара
  • step_order_level - шаг количества для заказа

После того, как вы выбрали необходимые для выгрузки и последующей загрузки поля, можно выгрузить наши товары. Для этого переходим в CSVI -> Export и выбираем созданный нами шаблон "Экспорт товаров". Затем жмём Next и получаем наш файл. Откройте файл, ознакомьтесь с ним и теперь на его основе можно готовить файл для импорта товаров.

Импорт товаров

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

Создаем шаблон импорта

Переходим в CSVI -> Templates -> Создать и заполняем форму следующим образом:

Если у Вас в разделе "Component" не отображается Virtuemart, Вам требуется установить дополнение, которое идет в поставке с компонентом (plg_virtuemart).

Нажимаем "Next" выбираем откуда мы будем загружать файл для импорта товаров. Обычно это "Load from yout computer", но вы также можете загружать файл с удаленного сервера (например напрямую с сайта поставщика, можно настроить расписание, когда каждый заданный интервал времени файл автоматически будет импортироваться).

Теперь опять нажимаем "Next" и разбираемся с этой формой:

Здесь нас нас интересует поле "Use file for configaration". Если выставлено значение "Да", то при импорте CSVI будет брать заголовки столбцов загружаемого файла и сопоставлять их с аналогичными в базе данных. Другими словами, если ваши колонки в файле называются так: product_name, product_sku и т.д - это будет самый лучший вариант. А если в файле, у вас вместо product_name указано что-то вроде "Наименование товара", тогда необходимо будет добавлять все необходимые поля в нужном порядке и выставлять значение Skip first line в положение "Да". Если не поняли о чем я, тогда просто используйте название столбцов, которые получились при экспорте и никаких проблем не будет, на этом создание шаблона будет закончено и можно приступать к загрузке.

Импорт товаров

Импортировать готовый файл очень просто. Достаточно перейти в раздел: Компоненты -> CSVI -> Import, выбрать шаблон "Импорт товаров" и сверху нажать кнопку "Select file". Теперь выбираем файл и нажимаем кнопку "Preview", получится что-то вроде этого.

Убедитесь в том, что всё отображается корректно. Например часто бывает ошибка с кодировкой кириллических символов. Эта проблема связана с тем, что при сохранение файла, он должен быть сохранен в кодировке UTF-8. О том как правильно сохранить файл, читайте ниже.

После того как убедились в корректном отображении данных, нажимайте на кнопку "Start Import", ожидайте завершение процедуры импорта и идите проверяйте, что получилось.

к содержанию ↑

Часто задаваемые вопросы, проблемы и решения

Мы постараемся пополнять данный список вопросов и ответов, по мере их поступления в комментариях.

к содержанию ↑

Как правильно сохранять файл для импорта?

CSVI работает с файлами в кодировке UTF-8. Сохранять в этой кодировке на данный момент может только OpenOffice, LibreOffice. Да-да, не получится здесь использовать Excel (хотя может что-то и поменялось в этом смысле, надо читать актуальную инфу на дату прочтения этой статьи). Поэтому, идите на официальный сайт OpenOffice , загружайте и устанавливаете офисный пакет (можно ограничиться только программой Calc).

Открывайте свой файл в этой программе, вносите необходимые изменения, а сохраняйте следующим образом:

Файл -> Сохранить как, тип файла Текст CSV и обязательно установите флажок "Изменение настроек фильтра".

На следующем шаге, Вам будет предложено указать разделители и кодировку. Разделители можно оставить без изменений, а кодировку указать UTF-8.

На этом всё, файл можно теперь импортировать на сайт. Проблем с кодировкой быть не должно.

к содержанию ↑

Как запускать импорт/экспорт по расписанию?

В CSVI есть очень удобный механизм запуска импорта/экспорта через планировщик CRON. Работать с ним очень просто.

Для начала, определите шаблон, который вы хотите запускать по расписанию, перейдите в его редактирование и заполните поле Secret key, включите работу через cron, а также запомните ID Template - всё это потребуется для запуска импорта/экспорта.

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

/usr/local/bin/php /home/domain/public_html/administrator/components/com_csvi/helper/cron.php --key="dsfj546456kfgkh"
 --template_id="1" --file="/home/domain/public_html/example.csv"

Эта команда будет запускать шаблон с ID = 1. Если ввести неверный ключ - шаблон не будет запущен.

Теперь осталось добавить эту команду в планировщик. Обычно, это делается в панели управления хостингом (ищите раздел CRON). Там вы сможете выставить когда нужно запускать эту команду.

Дополнительные параметры

При редактировании шаблона, вверху есть кнопка CRON, нажав на которую вы сможете увидеть названия дополнительных атрибутов, которые можно использовать в командах. Расписывать всё нет смысла, обычно это и не нужно, но вот несколько примеров команд с дополнительными параметрами:

Запуск шаблона с явным указанием языка:

/usr/local/bin/php /home/domain/public_html/administrator/components/com_csvi/helper/cron.php --key="mysecretword"
 --template_id="124" --form.language="en-EN"

CSVI PRO

Версия расширения:7.17.0
Дата обновления:13.11.2018
Уведомлять о новых комментариях
Уведомлять
guest
18 Комментарий
Inline Feedbacks
View all comments
Владимир
Владимир
7 месяцев назад

Роман, спасибо большое за Ваш труд — всё очень подробно и понятно.
У меня на сайте стоит CSVI Pro 7.11.0 и внешне отличается от картинок в статье . Что хотел уточнить — у меня при выборе Экспорта происходит переход на страницу, на которой есть только неактивная надпись красным COM_CSVI_CONFIGURE_MYSQLI_EXPORT (может нет какого-то компонента?). Здесь нет возможности прикрепить скрин, но хотелось бы с этим разобраться. Если возможно — дайте ответ на электронку poisk12345(a)gmail.com
Буду очень признателен.

Владимир
Владимир
7 месяцев назад

Роман, я «накрыл» свой CSVI Pro 7.11.0 вашим 7.14.0 и … он пропал из выбора Расширений, хотя в списке установленных есть и расширения версии 7.11 и 7.14 (т.е. 2 комплекта) … Но при этом у всех расширений в графе ID стоит 0 … как можно это исправить, подскажите?
Я изменил тип базы данных на mysqli в общих настройках системы, но теперь CSVI просит внести домен сайта в Глобальных настройках. Но при сохранении внесенного домена вылетает ошибка «Не удалось сохранить данные. Ошибка: Расширение должно иметь название». Что надо делать дальше ?

Владимир
Владимир
7 месяцев назад

Роман, у Вас на скринах какой версии компонент? И какие ещё нужны для VM3 плагины ?

Владимир
Владимир
7 месяцев назад

Роман, при запуске Экспорта CSVI просит внести домен сайта в Глобальных настройках. Но при сохранении внесенного домена вылетает ошибка «Не удалось сохранить данные. Ошибка: Расширение должно иметь название». Можете подсказать, как это вылечить?

Владимир
Владимир
7 месяцев назад

Очень жаль , что автор блога отвечает только на один вопрос…

Владимир
Владимир
7 месяцев назад

Спасибо, что уделили мне внимание, Роман. Проблема в том, что я обычный пользователь без специального образования по РНР или базам MySQL. И у меня с этим компонентом постоянно какие-то проблемы — то он не хочет импортировать цены (так было в 5-й версии), то теперь не получается их экспортировать (это уже в 7-й версии) и выглядит она у меня почему-то по-другому… Поэтому я и обратился к Вам (как к профи, который выложил столь подробную инструкцию по применению CSVI — до этого более системной информации я не встречал ) , так как решение моих проблем для Вас могли бы быть простыми и… Читать далее »

Гарик
Гарик
6 месяцев назад

Здравствуйте, не подскажете, как настроить «ЗАПУСК ПО РАСПИСАНИЮ».нигде не нашел инструкцию, при нажатии на кнопку, ничего не происходит.
Спасибо!
Версия PHP 5.6.40
Версия Joomla 2.5.9
Name: CSVI Free
Version: 5.11

Оксана
Оксана
6 месяцев назад

Добрый день! Могли бы Вы подробнее рассказать про настройку импорта данных напрямую с сайта поставщика? Например, обновление остатков или цен. Заранее благодарю!

Илья
Илья
4 месяцев назад

долго мучился, пока не использовал Rons Editor, Open office упорно при всех верных настройках не создавал правильный файл для импорта.
Но вот наконец файл от Rons Editor был принят, проанализирован и одобрен данным компонентом. Загрузка произошла… и что? В Virtuemart новые товары, хоть и произошла загрузка таблицы с ними, не отображаются. База данных тоже пуста. Какие причины?
 

Last edited 4 месяцев назад by Илья
Илья
Илья
4 месяцев назад

В общем, созданные в редакторах дополнительные строки в базу не добавляются. Можно только редактировать созданные в самом Virtuemart значения. Приходится создавать кучу дублей товаров, выгружать, редактировать их, и снова загружать.
 
И ещё не могу добавить в выгрузку название или пач Категории товара — только ID, — при попытке экспорта выдаёт ошибку:
ОшибкаColumn ‘category_parent_id’ in field list is ambiguous

ирина
ирина
1 месяц назад

Роман, скажите пожалуйста , а на джумшоппинге можно с помощью него экспорт и импорт сделать на новый сайт?..