Парсер каталога металлопроката + разработка магазина

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5
Загрузка...

На сегодняшний день сайт переехал на движок OPENCART.

Поступил заказ на парсер каталога металлопроката. В каталоге примерно 20 000 позиций, и 3-ёх уровневый каталог разделов. Разрабатывался сайт на движке WordPress.

Каталог-источник содержит ни только названия товара, но есть и его дополнительные характеристики (Размер,марка , длина,регион).


В карточке товара есть вариации, которые так же необходимо добавить в базу данных.

Прежде чем разрабатывать парсер каталога, я создал две таблицы в базе данных, по моему мнению импортировать данные » на лету» в бд WordPress совершенно не правильно. Лучше сделать несколько таблиц, и хранить спарсенные позиции именно в ней. Если пойдёт что-то ни так, всегда можно подчистить таблицу, и запустить скрипт парсера по новой.

Парсер выполнил свою работу очень быстро, в итоге получилось примерно 7000 чистых товаров, и 16000 вариаций.


Зачем я создаю подобные таблицы, и что делаю дальше?

Данную таблицу как я писал в своей статье можно экспортировать в формат CSV, а затем импортировать в какой-нибудь плагин, в последнее время я использую Wp All Import. Но есть множество плагинов, которые позволяют делать импорт CSV абсолютно бесплатно.

Svg формат изображений

Во время разработки скрипта, на сайте-источнике было обнаружено, что все картинки хранятся в svg формате. Такой формат конечно можно скачать на сервер, но лучше картинки хранить в формате png и jpg.

Для решения данной задачи, на сервер была установлена библиотека Imagick, и так как я ни разу не работал с форматом svg в интернете нашёл скрипт для конвертации svg в png, который подключил к своему парсеру.

Категории товаров

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

Дополнительные задачи

Разработка фильтра  над таблицей

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

Ivacms Woocommerce Table

Отображение фильтра

Калькулятор тонн в метры

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

Сама же таблица в бд была изначальна создана в CSV формате, а затем импортирована через phpmyadmin.

Дополнительные поля с ценами

В админ.панели WordPress, на вкладке вариации при редактировании товара были добавлены два новых поля, которые играют важную роль во время перерасчёта цены товара в корзине.

В зависимости от выбранного кол-ва товара меняется и его цена. Например до 1т одна цена, а от 5т уже совсем другая. Типы цен хранятся на отдельной вкладке продукта.

Ajax перечёт цен в зависимости от количества выбранных товаров

Насколько известно по умолчанию данная функция отсутствует в плагине Woocommerce.  Общая сумма заказа так же должна зависеть от кол-ва выбранных товаров и дополнительных цен.

Вариации в виде таблицы

Для этой задачи был установлен готовый плагин, который работал не правильно.  Поэтому был разработан полноценный плагин, который получил название Ivacms Woocommerce Variations To Table. Мой плагин отображает вариации в виде таблицы в карточке товара.

Так же была разработана функция которая отображает popup окно при нажатие на кнопку «Добавить в корзину» в категориях товара.

Разработка плагина, отображающий категории в алфавитном порядке

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

Плагин доставки с Yandex картой

Разработку данного функционала я оставил на ДЕСЕРТ, так как в первую очередь нужно было заниматься отображением каталога. Во время оформления заказа необходимо отображать карту, на которой покупатель выбирает зону доставки, в зависимости от зоны меняется и цена доставки. Так же плагин считает расстояние от МКАД.

Чтобы клиент мог самостоятельно менять цены для каждой зоны, был разработан новый метод доставки «Транспорт». Всего 4 зоны.

Так же плагин автоматически пересчитывает цены в вариантах доставки и при клике на карте.

 

Административные настройки не разрабатывались, так как в ТЗ не было подобных требований. Да и вообще как оказалось подобной задачи в ТЗ не было, нужно было сделать обычную карту с помощью конструктора Yandex, и показывать цены при клике на зоне. Как это сделано на других сайтах.

Разработка функции для показа карты на любой странице сайта

При разработке данного сайта, задач было очень много, всех их расписать довольно проблематично, и нет никакого смысла.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*