![]() ![]() |
taxpert.ru — Блог — Модуль автофильтра на торговом сайтеМодуль автофильтра на торговом сайте10.12.2024 в 21:30 Секция: Сайтостроение и WEB-разработка Просмотров: 58 Комментариев нет — ваш комментарий может стать первым Попалась мне тут на днях занятная задачка: на одном из служебных сайтов (это интернет-магазин садового и строительного инвентаря) необходимо было добавить для посетителей возможность фильтрации товаров. Казалось бы, что необычного? На самом деле проблема тут заключается в неоднородности товарного ассортимента: товары самые разные (тачки, тележки, колёса, лестницы, стремянки и пр.), соответственно, и свойства у них самые разнообразные, совпадающие между собой лишь в пределах категорий, а городить под это дело десять отдельных алгоритмов, на мой взгляд, как-то не совсем правильно. Пришлось немножко поломать себе голову над задачей. В результате на свет появилась (и была реализована за пару дней) идея автофильтра – модуля, который анализирует свойства товаров в каждой категории и на основе сходства этих свойств (при условии, что значения этих свойств будут разными, но однотипными – в моём случае это должны быть только цифры) формирует возможность фильтрации. Проще говоря, если в категории имеются две тачки, у каждой из которых есть свойство «объём корыта» и значение этого свойства у тачек разное – модуль автоматически добавляет в фильтр возможность указания минимального и максимального объёма. Если в категории имеется десять лестниц-стремянок, но у всех у них свойство «шаг ступеньки» имеет одно и то же значение 24 см – фильтрацию по этому свойству модуль автоматически исключает, так как смысл фильтровать по параметру, у которого отсутствуют варианты в категории? Тем же модулем исключаются из фильтра сложные параметры, вроде внешних габаритов, так как значения этих параметров указаны в формате вида «128х256х1024», предназначенном для отображения на странице товаров, и менять эти значения пользователю было бы не очень удобно – возникла бы путаница в синтаксисе. Ну а сконструировать соответствующий MySQL-запрос оставалось уже делом техники. Пользоваться фильтром, как только он появился на сайте, начали сразу же – уже в день запуска. Работает не слишком шустро – на фильтрацию требуется от 0,1 до 0,5 сек., – но задачу свою выполняет. Комментариидобавить комментарийкомментариев не найдено — ваш может стать первым! |
© Taxpert. Интернет-мастерская М. Ю. Уткина. |