
Отношения между значениями параметра при фильтрации списка товаров (И/ИЛИ)
Здравствуйте.
При работе с товарами, которые имеют сложный состав, требуется иметь возможность менять отношения между значениями параметра.
Чтобы было понятно объясню на примере:
Есть, например, рубашки или футболки. У них есть параметр "Состав", который содержит значения "шерсть", "хлопок", "акрил", "лён" и т.п. У каждого товара может быть задано одно или несколько значений данного параметра, что понятно, поскольку изделие может быть изготовлено из разных нитей, в т.ч. и из нескольких видов.
При отображении в фильтре списка товаров категории, мы видим все значения этого параметра. И когда выбираем значение "шерсть" то будут показаны все товары содержащие шерсть в своем составе. Теперь, если добавить отметку у значения "хлопок", то будут показаны изделия которые содержат в себе шерсть, хлопок и шерсть и хлопок одновременно. При этом, ожидалось, что при выборе двух значений будут показаны только товары содержащие оба материала в своем составе.
Вывод: это происходит по причине того, что отношения в фильтре товаров между значениями одного параметра производится по ИЛИ. Т.е. или шерсть или хлопок. Хотя в данном случае требуется отношение по И.
Решение: в диалоге добавления параметра сделали радио-кнопку с двумя значениями параметра: (*) По ИЛИ ( ) По И, который определяет отношение между значениями при фильтрации списка товаров.
Сервис поддержки клиентов работает на платформе UserEcho
в теории можно воспользоваться этой конструкцией при выборе параметра "шерсть"
$.post('/collection/all.json', {
characteristics: [12911178, 12911180]
})
.done(function (products) {
console.log(products);
})
при выборе параметра "хлопок" опять использовать эту конструкцию
у нас будут 2 массива с данными, найти совпадения в них - не проблема, после этого всего вывести повторяющиеся товары из двух массивов
сложно - но можно
Это да, но это костыль. :) Т.е. принципиально это не решает имеющуюся проблему.
всяко будет быстрее, чем это реализуется в insales;)