Улучшаем поиск интернет-магазина с мультискладом


Когда в первую очередь нужно продавать товар в определенной локации склада интернет-магазина, можно отметить приоритет складов для поисковой выдачи. В это случае посетитель сперва получить выдачу по складу своего региона, а потом остальные.


Стандартная поисковая выдача в темах InSales сделана на liquid и позволяет использовать стандартные виды сортировки. Чтобы привязать поиск к параметрам "метка", необходимо переделать всю поисковую страницу на js. При необходимости можно сделать поля во внешнем редакторе, для управления, что первое выводить.

Но при больших объёмах данных слишком медленно загружается поисковая страница что плохо для мобильных пользователей. Почему это происходит на страницы поиска?

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

С учетом указанных нюансов есть варианты решения.

  • Можно избавиться от пагинации на странице поиска и подгружать товары постепенно. Так обычно происходит в каталогах с ajax запросам клиентов (пример) Товары подгружаются постепенно по мере прокрутки страницы. Это позволит одним запросом получать все товары и сортировать их. Хороший вариант, но при большом количестве товаров всё равно первая загрузка после ввода поисковой фразы может быть с задержкой по времени.
  • InSales облачная платформа и нет возможности работать с серверной частью напрямую, но можно обратится к скрипту на стороннем сервере. Отправленные данные и сортировка ложится на сторонний сервер и получаем обратно. Запросы к API InSales позволяют быстро получать товары по нужным параметрам.
  • Сделать свою пагинацию и переключение между страницами будет происходить почти мгновенно без перезагрузки страницы. Перезагрузка будет происходить только если клиент выбрал сортировку из списка.

Мы отправляем запросы к API InSales и получаем массив с товарами,  сортируем данные (разбиваем на другие массивы и выводим в нужном нам порядке) по параметру "метка". Вся верстка страницы меняется, "воссоздаем дизайн"  с выводом через js.

Пример сайта с реализованным функционалом на странице поиска. Работает со стандартными и индивидуальными темами InSales.

 

Нужны доработки интернет-магазина?

Получите оценку стоимости в течение 30 минут!