Ускоренный импорт и обновление товаров PrestaShop или минусы стандартного импорта

Импорт товаров из прайсов в PrestaShop

Ускоренный импорт и обновление товаров или минусы стандартного импорта в PrestaShop.

На этот раз в статье речь пойдет о том на сколько именно стандартный (обычный) импорт товаров престашоп хуже чем Модули импорта и обновлений товаров by Web2Step.Ru

В одном из последних заказов ко мне обратились с просьбой разработать модуль импорта товаров через xls-прайс (также мы разрабатываем и под такие форматы файлов как CSV, HTML, XML-файлы прайсов товаров)  с большим количеством товаров и изображений. В описании заказчик пишет что через стандартный импорт, загрузка прайса проходит порядка 4-5 часов, что естественно плохо. При всём этом товаров было не более 4.000 позиций, в то время привычные мне объёмы обработки прайсов заказчиков обычно измерялись десятками тысяч и доходили до 70.000-80.000 товаров а время обработки измерялось минутами.

Задача:

Импорт продукции нужен вместе импортом категорий товаров и с обновлением товаров на предмет наличия (если товар из прайсов уже отсутствует то на сайте не должен отображаться), с изменением количества товаров и изменением цены на товар + товар должен быть с рисунками, где каждому артикулу товара соответствует своё изображение. При этом скрипт должен учитывать какие размеры preview-файлов (превьюшек) требовалось создать товару для корректного отображения в соответствии с заведенными в настройках админки престашоп макетов превью-файлов (тоесть каждому товару создать группу изображений различных размеров исходя из исходной картинки товара и настроек престашоп).

 

Для оптимизации работы модуля и скорости обработки каждый товар заносится в интернет-магазин единожды. То-есть каждый товар имея свой уникальный артикул (вместо артикула можно сделать обработку по ID-товара либо по имени товара) обрабатывается один раз и заносится в базу разово. Если товар в админ-центре престашоп удалить, то при следующей обработке прайса (если товар присутствует в прайсе) товар снова импортируется, с полным описанием, мета-тегами, изображениями. Обновление товаров в престашоп происходит только для тех товаров что присутствуют в данном текущем прайсе, остальные товары требуется скрыть от покупателя (так как у поставщика их более нет).

 

Кроме этого нужно учесть что прайсы могут быть с новыми категориями и подкатегориями и должны постоянно пополняться в престашоп. И  каждый товар требуется определить к соответствующим категориям и подкатегориям + во время импорта сгенерировать необходимые превью-картинки товаров.

 

Структура XLS-прайса (взято для примера!) была следущая:
родительская категория; категория; артикул; название; цена;остатки; минимальное количество
+ ссылка на рисунок которая формируется из названия артикула.

 

Итак что мы имеем?
Прайс с 4.000 товаров, 4.000 исходных изображений (для оптимизации обработки эти изображения предварительно закачиваются по FTP в специальную подпапку скрипта). Вариант 2 — автозакачка изображений с прайсов или сайтов источников (внимание — замедлит обработку товаров).

 

Что требуется?
Создать импорт новых товаров с изображениями (thumbs-файлов различных форматов размеров в зависимости от настроек престашопа) по артикулу товара, импорт новых категорий и подкатегорий, скрывать товар который уже отсутствует у поставщика/производителя + создать обновление товаров исходя из последнего прайса на предмет наличия товара, новой цены и текущего количества (остатков).

 

А теперь, имея данный скрипт посмотрим сколько же времени занимает обработка данных таким скриптом (с перечисленными ранее задачами) вместо стандартного импорта от престашоп?

 

Полный импорт прайса товаров с изображениями из 4.000 позиций занял около 7 минут. Это вместе с генерацией новых категорий и подкатегорий товаров и генерацией групп изображений под каждый товар из источника изображений товаров (в моём случае для каждого товара создавалось по 7 изображений разных размеров — исходя из выставленных настроек престашоп). Далее, все последущие запуски обработки таких прайсов будут проходить  в разы быстрее (кратно в несколько раз).
* Надпомню все исходные картинки уже были загружены на фтп в папку скрипта (при надобности можно создать чтобы исходные изображения брались из URL-ссылок или предварительно загружались на обработку пачкой).
 Если уменьшить число ненужных макетов размеров preview-изображений например с 7 до 3 то обработка такого объёма данных заняла бы менее 4 минут. А полный импорт товаров без изображений занял бы не более 1-2 минут.

 

Далее мне было интересно сколько займет обновление товаров такого объёма прайсов.

 

Обновление товаров всего прайса (4.000 позиций) на предмет наличия (показать/скрыть), количества и цены занял менее 2 минут.

 

Как известно товары в прайсах обычно разом все не появляются и таким образом последущие импорты/обновления интернет-магазина престашоп с таким объёмом товаров прайса будет происходить грубо говоря в пределах 2-3 минут.

 

Анализ:

Причины столь долгого импорта товаров стандартными средствами престашоп? Дело в том что престашоп представляет собой CMS, обладатель которой в зависимости от своих потребностей проводит те или иные настройки и импорт своей продукции/комбинаций продукции/атрибутов продукции.  А любая универсальность движков хранит в себе обратную сторону монеты — увеличенное время обработки. В следствии чего, стандартными средствами разработчики престашоп хотел предугадать основной набор задач для импорта товаров. Отсюда вытекает куча минусов в связи с тем что задачи и возможности владельца интернет-магазина в плане импорта товаров поставщиков или производителей не укладываются в готовые решения преставленных разработчиками CMS. Не менее весомым минусом является и то что пытаясь сделать стандартный импорт хоть как-то универсальным, модуль проделывает зачастую массу ненужных(в конкретных случаях) обработок и проверок существенно затягивая процесс импорта и обновления продукции.

 

Отсюда и вывод:

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

 

Итоги:

 Обычное время работы скрипта импорта + синхронизации товаров в штатной ситуации с учётом обработки изображений и созданием иерархии новых категорий прайса с объёмами ~4.000 позиций займет 4-5 часов   ~2 минуты!   (* первый раз до 7 минут).

 

Заказать?

Аналогичный скрипт импорта/обновления товаров,  либо скрипт с учётом особенностей ваших задач, а также различные скрипты обработки какой-либо информации для PrestaShop и других CMS вы можете заказать у нас. Также можете заказать у нас различные модули, вёрстку и редактировавание/создание шаблонов CMS PrestaShop.

 

Что стоит учитывать при организации работы интернет-магазина?

Многие владельцы интернет-магазинов зачастую при создании своего сайта пренебрегают выбором хостинга и не уделяют этому особого внимания. А между тем, имея существенный объём товаров рано или позно владельцы своих интернет-магазинов сталкиваются с проблемой когда их сайт начинает дико тормазить, кеш не помогает и любая оптимизация никакого существенного эффекта не дает. Что же делать? Меняйте хостинг! Вот вам пример надежного, а главное производительного хостинга под PrestaShop (и не только), к тому же приятно дешевого. Большинство хостингов слабо оптимизированы под работу тяжелых CMS (а при большом количестве товаров, атрибутов и комбинаций товаров PrestaShop превращается в медлительного слона). Выполняя десятки заказов я сильно удивился что большинство топовых, распространенных и зарекомендовавших себя хостинг-провайдеров предоставляют недостаточно оптимизированные хостинги с низкой производительностью под PrestaShop (хотя в их числе были даже выделенные сервера VPS с высокими характеристикам) . Кому интересно, есть соответствующая статья на этот счёт.
Вы можете оставить комментарий, или ссылку на Ваш сайт.

4 комментария к записи “Ускоренный импорт и обновление товаров PrestaShop или минусы стандартного импорта”

  1. Анна:

    Здравствуйте!
    заинтересовал ваш импорт.
    у нас как раз такая проблема. очень долго происходит импорт.
    сейчас 3000 товаров грузиться почти пол часа.
    Скажите, сколько будет стоить ускорить работу импорта товаров?
    и можно ли с кем-то из представителей Вашей компании поговорить по телефону и проконсультироваться.
    мой контактній номер 0506181108

  2. web2step:

    Здравствуйте! За более подробной информацией обращайтесь через e-mail.

  3. Здравствуйте! Вы сейчас продолжаете разрабатывать модули под prestashop?
    Сейчас нужно реализовать менюшку выбора города, при выборе должен меняться поддомена.
    Также интересует услуга импорта из csv/xml поставщиков

    • web2step:

      Здравствуйте.

      Вы можете связаться с нами по интересующему вас вопросу через раздел КОНТАКТЫ

      И мы с вами всё обсудим.

Оставить комментарий

Яндекс.Метрика