Найти в Дзене
Мультипарсер

03. Установка плагина импорта на Opencart и небольшие доработки

Долго думал, стоит ли в начале этой главы описывать процесс установки Opencart, в результате решил, что нет. Детальное описание процесса установки Вы можете почитать (или посмотреть на видео) в массе других источников. Если у вас уже есть хостинг, можно установить прямо на него и тестировать сайт "в полевых условиях", а если нет, самым лучшим средством на сегодняшний день является пакет программ под названием Open Server. Скачать его можно здесь, и заметьте, что умные люди рекомендуют (и я с этом полностью согласен) бесплатные программы скачивать на их родном сайте. Во-первых, там гарантировано будет самая свежая версия. А, во-вторых, если Вы скачаете какую-нибудь авторскую сборку, есть вероятность, что в неё будет вставлена какая-то "супер приблуда" для специфических задач, которая новичкам будет только мешать. Короче, господа, скачайте нормальный софт без выпендрёжа, так будет лучше. Итак, будем считать, что хостинг (настоящий или локальный) у Вас уже есть, и на нём запущен демо-сайт
Оглавление

Долго думал, стоит ли в начале этой главы описывать процесс установки Opencart, в результате решил, что нет. Детальное описание процесса установки Вы можете почитать (или посмотреть на видео) в массе других источников. Если у вас уже есть хостинг, можно установить прямо на него и тестировать сайт "в полевых условиях", а если нет, самым лучшим средством на сегодняшний день является пакет программ под названием Open Server. Скачать его можно здесь, и заметьте, что умные люди рекомендуют (и я с этом полностью согласен) бесплатные программы скачивать на их родном сайте. Во-первых, там гарантировано будет самая свежая версия. А, во-вторых, если Вы скачаете какую-нибудь авторскую сборку, есть вероятность, что в неё будет вставлена какая-то "супер приблуда" для специфических задач, которая новичкам будет только мешать. Короче, господа, скачайте нормальный софт без выпендрёжа, так будет лучше.

Итак, будем считать, что хостинг (настоящий или локальный) у Вас уже есть, и на нём запущен демо-сайт Opencart. Да-да, тот самый с синеньким меню вверху и несколькими товарами: компьютером смартфоном, фотоаппаратом и... что-то там ещё есть. Ладно, не важно. Демонстрационные товары можно пока не удалять - они не мешают.

Сейчас нам нужно скачать плагин Export/Import Tool, бесплатный модуль, который позволяет грузить товар как полностью, так и по частям. Вот именно эта, простая казалось бы опция, и заставила меня остановить свой выбор именно на нём. Я видел более навороченные плагины, которые могли номенклатуру только с нуля создавать (стирая всё что до этого было в базе), а при работе с большими объёмами данных это неприемлемо. Поэтому мы сейчас должны скачать и установить именно этот плагин, а потом перенести в него некоторый недостающий функционал.

Скачиваем и устанавливаем

Кстати замечу, что когда я недавно скачивал этот плагин, там почему-то было много ссылок для разных версий движка Opencart. На момент написания статьи у меня стоит русская сборка ocStore 3.0.2.0, и мне пришлось внимательно читать все описания, чтобы скачать именно ту версию, которая мне подходит. А теперь там одна единственная зелёная кнопка скачивания. Ну, наверное, в плагине что-то оптимизировали.

Чтобы установить расширение, идём в админпанеле по ссылке Расширения > Установка расширений и в диалоге загрузки выбираем скаченный нами архив.

-2

А чтобы установленный плагин заработал, ещё надо зайти Система > Пользователи > Группы пользователей и поставить для Админа все галочки для разрешения внесения изменений. Кстати, ещё один баг, который здесь был (может его уже убрали), при выставлении нужной галочки руками, система не реагировала, нужно было именно кликнуть по ссылке "Выделить всё" под элементом списка.

-3

Когда будут проделаны все эти операции, в разделе админпанели Система > Обслуживание появится подраздел "Export / Import".

Обзор плагина

Самое время изучить плагин и понять, что же нам досталось. Интерфейс плагина содержит три вкладки, первые две из них предсказуемо называются Export и Import соответственно, а вот третья, Settings, даёт возможность настроить ключевые поля, которые будут использоваться в файлах таблиц.

Вкладка Экспорта - первая вкладка
Вкладка Экспорта - первая вкладка

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

Вкладка импорта - вторая вкладка
Вкладка импорта - вторая вкладка

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

Вкладка опций - третья вкладка
Вкладка опций - третья вкладка

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

Небольшая доработка плагина

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

-7

Эту функцию нужно вставить в файл модели плагина export_import.php, который расположен в папке admin\model\extension. И вызывать её в двух местах: при сохранении главной картинки, ссылка на которую находится непосредственно в таблице товаров, и при сохранении дополнительных изображений, список которых находится на второй вкладке файла импорта.

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

-8

Для второго нужно отредактировать функцию uploadAdditionalImages, где мы при вызове добавляем ещё и порядковый номер картинки.

-9

Теперь достанем наш файл с экспортом товаров и подправим пути к картинкам, например, у айфона: вместо файлов на диске укажем URL'ы картинок с какого-нибудь сайта. Затем импортируем файл и посмотрим, что получилось.

-10

М-да, получился какой-то мутант. Написано "iPhone", а выглядит как компрессор (шутка, если кто не понял). В следующих главах мы это исправим: спарсим информацию с нужных нам сайтов, и текст станет соответствовать изображениям.

Кстати, дополненный файл модели данных для плагина можете скачать здесь, до встречи!

Глава 02 - Карта канала - Глава 04