OpenCart уроки, Seo, ZennoPoster, Блог

Парсинг сайтов и заливка данных на CMS OpenCart через MYSQL

CMS OpenCart

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

Итак, у нас есть 3 источника с текстом, изображениями (заголовками, описаниями, характеристиками и т.п.), которые нужно обработать нужным способом. Например, все текстовые данные необходимо изменить перед запросом к MYSQL базе, т.к. она не поддерживает спец. символы и т.п.

OpenCart

Структура CMS OpenCart такова, что необходимо не только вставить информацию построчно в базу, но и привязать пункты к требуемому элементу. Поэтому сначала я загружал категории, а лишь потом сами товары, с привязкой к нужной рубрике. Для этого просто воспользовался транслитерацией (seo url страницы) и инструментом замены специальных символов на пустые. Также я столкнулся с проблемой загрузки таких символов в категориях, пришлось экранировать их перед внедрением.
Так как все действия производились через программу :ZennoPoster:, нужно каждый раз проверять правильность их ввода, ведь в случае ошибки можно повредить весь сайт. Благо для этого существует внутренняя отладка всех производимых действий и можно всегда отследить процесс остановки экшена.

Совет: делайте резервную копию сайта каждый день!

Исправление

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

Какой софт использовать

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

Итоги парсинга и заливки данных на OpenCart

Итогом парсинга сайтов стало:

Сначала в EXCEL таблицу для каждого из проектов вносились данные типа url товара, его название, описание, характеристики и т.д. Далее выбрав их в отдельные переменные можно устанавливать в базу MYSQL и привязывать к разным элементам. После этого обязательным требованием является проверка на корректность введенных данных, а также исправление возможных недочетов. Например, у меня возникла проблема при привязке id категории к конкретному товару, т.к. id категории находилось в MYSQL по названию рубрики, а название категории в свою очередь зависит от того как правильно экранируются спец.символы. Также были ошибки при парсинге необходимых изображений в качестве главного фото товара.
Выводом и главным итогом лично для меня стало то, что универсальность загрузки данных в любом случае намного лучше, чем обычный их ввод через административную панель сайта, или танцы с бубнами с помощью нескольких программ.
К сожалению, клиент отказался ждать именно внедрения в систему по причине окончания сроков и вылезающих то тут, то там постоянных ошибок. Тем не менее, именно загрузка через базу данных напрямую ускоряет процесс, а не долгий путь через административную панель сайта…