msOptionsPrice - разные цены для опций товара
Купить msOptonsPrice в магазине дополнений Simple Dream.
--
Привет, хотел бы вам представить компонент реализующий свои цены для характеристик товара Minishop.
— В настройках выставляете поле товара к которому нужны дополнительные цены.
— Скрипт для обновления цены на фронте при выборе в селект. Цену обернуть .pr_change
например:
<span class="pr_change">[[!+price]]</span>
— Можно полностью отключить доп.цены.немного картинок
Ну и в корзине соответственно
Реализовал, по просьбе Александра
Немного допилил для работы с любым дополнительный полем товара и собрал в пакет.
Хотелось бы разместить в Simple Dream за небольшие деньги.
Будет пользоваться спросом — буду дальше развивать…
Всем спасибо за внимание.
p.s. Для импорта дополнительных цен через скрипт импорта
в строке указываем поле properties
в файле выгрузки записываем в json виде
{"msoptionsprice":{"100x50":"100","120x60":"150","20x30":"300"}}
разделитель указывайте любой отличный от ,
Поблагодарить автора
Отправить деньги
Комментарии: 89
Я бы купил!:)
После проверки компонента Василием на соответствие правилам примем решение о размещении.
После этого нужно будет подготовить документацию, оформить дополнение на сайте и начать продавать. Напиши, пожалуйста, на почту — какой ценник ты считаешь адекватным трудозатратам на создание и поддержку компонента?
P. S. На первый взгляд — отличная вещь!
После этого нужно будет подготовить документацию, оформить дополнение на сайте и начать продавать. Напиши, пожалуйста, на почту — какой ценник ты считаешь адекватным трудозатратам на создание и поддержку компонента?
P. S. На первый взгляд — отличная вещь!
Классная вещь.
Было бы год назад, облегчил бы жизнь манагерам)))
Я бы тоже купил)
Было бы год назад, облегчил бы жизнь манагерам)))
Я бы тоже купил)
Только месяц назад в прошлом проекте ломал себе голову над костылями похожего рода. Очень нужная и часто спрашиваемая вещь!
Вообще класс! год назад обсуждали эту тему, но все уперлось в реализацию. Может ли это дополнение работать с доп. расширяемыми полями товара через плагины?
да, конечно.
я смотрю и на страничке товара цена меняется в зависимости от опций, не только в корзине!
Тест как обычно тут.Сайт s6074.test.modx.pro/ больше недоступен. Где-то еще можно посмотреть наглядный пример?
Теперь уже можно пробовать на test.modx.pro
какие-то ошибки при установке
Пробуем установить пакет с подписью: msoptionsprice-0.0.1-beta
Пакет найден... сейчас идёт подготовка к его установке.
Невозможно открыть файл для чтения: msoptionsprice-0.0.1-beta.transport.zip?revolution_version=Revolution-2.2.14-pl
MODX could not download the file. You must enable allow_url_fopen, cURL or fsockopen to use remote transport packaging.
Невозможно осуществить передачу пакета msoptionsprice-0.0.1-beta.transport.zip в /var/www/s6097/www/core/packages/.
Невозможно установить пакет с подписью: msoptionsprice-0.0.1-beta
Поправил, устанавливай заново =)
Все заработало. И стало понятно почему такая низкая стоимость дополнения) кстати сразу насторожило.
Нельзя указать цену для параметров размер+цвет+остаток
примеры:
размер 120х40 цвет: синий остаток:10 — 100руб
размер 120х40 цвет: золотой остаток:10- 200руб
размер 60х40 цвет: синий остаток:10- 50руб
размер 60х40 цвет: золотой остаток:10- 100руб
размер 120х40 цвет: синий остаток:1 — 50руб
размер 120х40 цвет: золотой остаток:1- 100руб
размер 60х40 цвет: синий остаток:1- 25руб
размер 60х40 цвет: золотой остаток:1- 50руб
Нельзя указать цену для параметров размер+цвет+остаток
примеры:
размер 120х40 цвет: синий остаток:10 — 100руб
размер 120х40 цвет: золотой остаток:10- 200руб
размер 60х40 цвет: синий остаток:10- 50руб
размер 60х40 цвет: золотой остаток:10- 100руб
размер 120х40 цвет: синий остаток:1 — 50руб
размер 120х40 цвет: золотой остаток:1- 100руб
размер 60х40 цвет: синий остаток:1- 25руб
размер 60х40 цвет: золотой остаток:1- 50руб
причем тут остаток? Вы выбираете параметр товара к которому проставляете доп. цены.
У вас цена зависит и от размера и от цвета. Это пока не реализовано! Я думал еще над введением коэф. по типу цена = доп.цена.параметра * коэф.другого.парам.
Но пока не уверен что так лучше. Хотелось бы услышать больше предложений и мнений.
Спасибо за отзыв!
У вас цена зависит и от размера и от цвета. Это пока не реализовано! Я думал еще над введением коэф. по типу цена = доп.цена.параметра * коэф.другого.парам.
Но пока не уверен что так лучше. Хотелось бы услышать больше предложений и мнений.
Спасибо за отзыв!
в качестве мозгового штурма:
А если цену за параметр указывать не абсолютную, а относительно дефолтной, т.е.:
Цена товара: 100 рублей
размер 120х40: +20 рублей
размер 120х50: +25 рублей
цвет: синий: +5 рублей
цвет: золотой: +10руб
И тогда получается что:
размер 120х40 + цвет: синий = 125 рублей
размер 120х40 + цвет: золотой = 130 рублей
размер 120х50 + цвет: синий = 130рублей
размер 120х50 + цвет: золотой = 135 рублей
А если цену за параметр указывать не абсолютную, а относительно дефолтной, т.е.:
Цена товара: 100 рублей
размер 120х40: +20 рублей
размер 120х50: +25 рублей
цвет: синий: +5 рублей
цвет: золотой: +10руб
И тогда получается что:
размер 120х40 + цвет: синий = 125 рублей
размер 120х40 + цвет: золотой = 130 рублей
размер 120х50 + цвет: синий = 130рублей
размер 120х50 + цвет: золотой = 135 рублей
Тоже хотел предложить такую реализацию, virtuemart например, так и построен.
приму к рассмотрению такой вариант.
предлагайте еще варианты вашего видения…
предлагайте еще варианты вашего видения…
Ни одно дополнение не узнает, что поля расширены, потому что для него они выглядят как родные.
В этом главная крутота системы плагинов miniShop2.
В этом главная крутота системы плагинов miniShop2.
Тоже купил бы! Полезный компонент, и будет часто востребован.
Выглядит очень круто!
Я, честно говоря, и не подумал о такой простой и красивой реализации. Автор — большой молодец!
Я, честно говоря, и не подумал о такой простой и красивой реализации. Автор — большой молодец!
Володя, спасибо тебе огромное!!! Столько раз приходилось изощряться… Очень желанное дополнение для многих, уже давно!
Большой вклад в minishop2 и modx в целом!
Большой вклад в minishop2 и modx в целом!
Круто Володя! Обязательно куплю при надобности) Кстати как-раз сейчас занимаюсь проектом где не только цены разные, но и артикул у каждого цвета товара. Я сделал через связи «многие ко многим», ну а если реализуешь такое и в этом компоненте(если это реально), думаю многим такой функционал понадобится)
Рад, что моя просьба помогла решиться на такой полезный шаг к улучшению minishop и MODX в целом и очень благодарен автору.
Со своей стороны хочу задать еще один вопрос, будет ли организовано лёгкое программное добавление в новые поля ( метод аля ->set())?
Со своей стороны хочу задать еще один вопрос, будет ли организовано лёгкое программное добавление в новые поля ( метод аля ->set())?
спасибо, по вопросу — не понял что ты спросил. Объясни…
ну например чтобы через сниппет задать товару цену нужно вызвать объект товара и выполнить ->set('price', 555). Каким образом будет реализован этот механизм тут, ведь имена полей заранее не известны?
Всем спасибо за внимание. Тест как обычно тут.Не работает, хочется «пощупать».
Когда можно приобрести? нужно по зарез, прям желательно в течении этих дней, решали как организовать(у железки есть 4-5 вариантов комплектаций, естественно парт номер разный, по хорошему описание одно, добавляется несколько мелочей, заниматься копипастом и делать из одной железки 4-5 отдельных товаров, чтобы цена была разная очень плохо для СЕО, особенно что в каталоге такиех позиций будет тысячи… никакой копирайтер не спасет, тем более описывать и переписывать особо нечего) или вы его продаете магазину как встроенный компонет в minishop2, и нам нужно будет только обновится?.. ведь сам минишоп бесплатный, а это решение обычное дело в других магазинах… в общем, отпишитесь пожалуйста, очень ждем… хочется хотя бы в начале недели сказать, когда по срокам можно будет это использовать.
Привет.
Дополнение доступно для загрузки в магазине store.simpledream.ru/packages/ecommerce/msoptionsprice.html
Дополнение доступно для загрузки в магазине store.simpledream.ru/packages/ecommerce/msoptionsprice.html
Дороговато для функционала, который должен бы быть сразу в магазине :/
Ты может сразу список выложишь того, что должно быть в бесплатном магазине?
Ну, я быстренько сделаю, а то как-то неловко выходит.
Ну, я быстренько сделаю, а то как-то неловко выходит.
Вопрос не в «хочу все бесплатно», а в адекватной цене за дополнение которое по логике должно быть вшито в систему изначально
А какую цену за minishop2 вы считаете адекватной?
Учитывая, что минишоп еще разрабатывется — та, что сейчас есть. Вы ведь предоставляете не «магазин из коробки», а гибконастраиваимаю систему для разнообразных магазинов которую нужно настроить и адаптировать под свои нужды. Если бы была не бета версия, а готовые варианты для разнообразных магазинов то 5-10т.р./копия.
которое по логике должно быть вшито в систему изначальноПо какой логике? Давно люди начали работать бесплатно?
Ты не понимаешь, что разработка бесплатных дополнений оплачивается продажей платных?
Ну и лично я до сих пор не придумал, как сделать изменение цены от опций красиво, о чем тебе недавно говорил. А здесь Виктор не только придумал, но и написал, и подготовил и выложил.
Это не отдельный магазин, это дополнение для CMS, у которой есть свои правила и ограничения. miniShop2 нельзя сравнивать с Magento или CS-Cart — это разные вещи изначально.
Он не спроста называется MINI Shop2. В общем, логику твою я не понимаю.
Я прекрасно знаю уровень цен за работу и что на халяву никто не станет работать.
Вы развиваете modx и за это вам огромный плюс и поклон, но не очень правильно делать стандартные вещи платно. Да minishop2 не cms магазина, а дополнение, но такая маленькая фича есть во всех магазинах и должна быть у вас изначально. По поводу других дополнений вопросов нет, офис и прочее стоят своих денег т.к. это не совсем стандартный функионал и на базе его можно многое построить. Все кто разрабатывают свои системы показывают их плюсы, а не хотите стандартного функионала — заплатите.
Меня жаба не душит потратить 790р, но осадок немного не приятный остается.
Вы развиваете modx и за это вам огромный плюс и поклон, но не очень правильно делать стандартные вещи платно. Да minishop2 не cms магазина, а дополнение, но такая маленькая фича есть во всех магазинах и должна быть у вас изначально. По поводу других дополнений вопросов нет, офис и прочее стоят своих денег т.к. это не совсем стандартный функионал и на базе его можно многое построить. Все кто разрабатывают свои системы показывают их плюсы, а не хотите стандартного функионала — заплатите.
Меня жаба не душит потратить 790р, но осадок немного не приятный остается.
Что в лоб, что по лбу.
Спасибо за отзыв.
Спасибо за отзыв.
О чем разговор? 790 руб. — дорого? Когда читал ветку, думал цена тысяч 5. А тут за 790 рублей… Если делать магазин, то это вообще не деньги.
Цена более чем адекватная. Вот теперь думаю, переделывать свой магазин или оставить как есть.
Цена более чем адекватная. Вот теперь думаю, переделывать свой магазин или оставить как есть.
Вчитайтесь повнимательней, вопрос не в деньгах
ну, я думаю, чтобы душе было легче — считай, что minishop2 стоит 790 рублей :) Это я по поводу, что минишоп беслатный, а такая нужная фича денег стоит
Не понимаю я товарищей, которые такие слова вообще пишут.
But1head, пойми, Василий и сам store никому ничем и никак не обязаны.
Хочешь покупай, не хочешь — не покупай.
Ты приходишь в магазин, хочешь купить машину, тебе дают разные варианты, хочешь бери — не хочешь — дело твое.
Автосалоны не обязаны за стоковые деньги отдавать весь функционал предлагаемой машины. Это рыночные отношения.
А ты хочешь, за минимум получить максимальную версию.
Для таких как ты, я бы ценник поставил вообще на порядок выше.
Чтобы желанное всегда было и оставалось желанным!
But1head, пойми, Василий и сам store никому ничем и никак не обязаны.
Хочешь покупай, не хочешь — не покупай.
Ты приходишь в магазин, хочешь купить машину, тебе дают разные варианты, хочешь бери — не хочешь — дело твое.
Автосалоны не обязаны за стоковые деньги отдавать весь функционал предлагаемой машины. Это рыночные отношения.
А ты хочешь, за минимум получить максимальную версию.
Для таких как ты, я бы ценник поставил вообще на порядок выше.
Чтобы желанное всегда было и оставалось желанным!
Жаба душит?? НЕ покупайте, напишите сами. В чем проблема? Не можете? Тогда покупайте. Не хотите? тогда просто не делайте эту «по умолчанию» фишку в Вашем магазине. В чем вопрос? Человек сделал и хоть лям может запросить. Это ЕГО право. А покупать или нет это уже Ваше право.
Я думаю, что при выборе политики ценообразования, автор исходил из трудозатрат и востребованности дополнения, а не из того, что его функционал «должен бы быть сразу в магазине».
Тем не менее, спасибо за отзыв.
Тем не менее, спасибо за отзыв.
Ведь дополнение сделано по заказу, соответственно за дополнение было заплачено… вопрос: кому принадлежат авторские права, заказчику или исполнителю? =)
Был бы заказчик «компания», то тут без вариантов, когда это частное лицо — по договоренности.
На самом деле дополнение дороговатое, но если учитывать, что оно для магазина т.е. коммерческая деятельность, возможно не так уж и сильно дорого, но на мой взгляд, уместная цена (490 рублей) т.к. товар единичен (1 проект = 1 дополнение) да и с точки зрения маркетинга, новое продают со скидкой, чтоб познакомить покупателей с товаром и в дальнейшем установить цену выше, ну или заведомо высокую цену снизить и подразнить скидкой. Конверсия штука тонкая =)
— Я сам не использую шоп т.к. незачем, но и не исключая факт возможной надобности. Личное мнение.
Был бы заказчик «компания», то тут без вариантов, когда это частное лицо — по договоренности.
На самом деле дополнение дороговатое, но если учитывать, что оно для магазина т.е. коммерческая деятельность, возможно не так уж и сильно дорого, но на мой взгляд, уместная цена (490 рублей) т.к. товар единичен (1 проект = 1 дополнение) да и с точки зрения маркетинга, новое продают со скидкой, чтоб познакомить покупателей с товаром и в дальнейшем установить цену выше, ну или заведомо высокую цену снизить и подразнить скидкой. Конверсия штука тонкая =)
— Я сам не использую шоп т.к. незачем, но и не исключая факт возможной надобности. Личное мнение.
То что требовалось заказчику уже вылилось в другой пакет со своими требованиями (НДС, перерасчет цен...). То что предлагается тут — это другое решение.
По поводу дорого даже говорить ничего не буду…
По поводу дорого даже говорить ничего не буду…
шикарно, спасибо парни!
Владимир, вот лучше скажи.
Эти цены для размерностей в каком виде и где содержатся в MySql?
Импорт в них возможен?? или они только ручками заполняются?
Эти цены для размерностей в каком виде и где содержатся в MySql?
Импорт в них возможен?? или они только ручками заполняются?
все сохраняется в properties ресурса — 'msoptionsprice'
то есть можно сделать как то так:
то есть можно сделать как то так:
$res = $modx->getObject('modResource', ID);
$prop = $res->get('properties');
$prop = $prop['msoptionsprice'];
$prop[свойство_продукта_minishop] = '88888';
$res->set('properties',array('msoptionsprice' => $prop));
$res->save();
В какой таблице сохраняется этот properties ресурса — 'msoptionsprice'?
Владимир, добрый вечер! Заметил один глюк в этом компоненте. При четырехзначных ценах, указанных в размерах — цена в карточке товара сбрасывается в ноль. С трехзначными ценами этого не происходит.
возможно у вас старый js подключен на фронте. в первой версии пакета форматирование цены происходило там. Сейчас все нормально, вот только что попробовал — demo.vgrish.ru/category/tovar-3.html
Отпишите в техподдержку — решим.
Отпишите в техподдержку — решим.
вопрос решился, msOptionsPrice оперирует на фронтенде сразу с отформатированными ценами, на сайте же была последующая обработка скриптами этих цен И получалось, что для 4хзначных цен появлялся пробел, который нарушал преобразование цены в числовое значение.
ну и отлично
дополнил описание импорта дополнительных цен через скрипт от Василия
Доброго времени суток, будет ли в будущем реализована зависимость, например, не только цены от размера, но и, допустим, меняя «модель» товара меняется его «цена» и «габариты». Или она уже там есть?))) Или после покупки можно ползти в код и пытаться «улучшить» своими руками эту крутую опцию?))))
Немного поторопился написать в магазин. Сейчас объясню проблему и предлагаемое решение.
В студии «London PM» разрабатываем интернет-магазин. В магазине продаются товары разных размеров. У товара цена не заполнена, так как она зависит от размера. s311.h1.simpledream.ru/ Если товар добавить в корзину прямо из списка товаров (с главной страницы, например), то в корзине размер товара не отображается (так как он не был выбран, что логично, в общем-то), как и цена.
Вот плагин, чтобы вывести минимальную цену в списке товаров, если цены указаны только у разных размеров:
А это правки кода существующего плагина, чтобы в корзину передавались и цена, и размер:
В студии «London PM» разрабатываем интернет-магазин. В магазине продаются товары разных размеров. У товара цена не заполнена, так как она зависит от размера. s311.h1.simpledream.ru/ Если товар добавить в корзину прямо из списка товаров (с главной страницы, например), то в корзине размер товара не отображается (так как он не был выбран, что логично, в общем-то), как и цена.
Вот плагин, чтобы вывести минимальную цену в списке товаров, если цены указаны только у разных размеров:
if ($modx->event->name == 'msOnGetProductPrice') {
$values = & $modx->event->returnedValues;
if (isset($values['price'])) {
$price = $values['price'];
}
if (!$price) {
if (isset($data['properties']['msoptionsprice'])) {
$optionPrices = $data['properties']['msoptionsprice'];
} else {
$res = $modx->getObject('modResource', $product->id);
$optionPrices = $res->getProperties('msoptionsprice');
}
$optionPrices = array_filter($optionPrices, function($elem) {
return $elem;
});
$values['price'] = min($optionPrices);
}
}
А это правки кода существующего плагина, чтобы в корзину передавались и цена, и размер:
public function msOnBeforeAddToCart($scriptProperties,$product = 0) {
if (is_array($scriptProperties['options']) && !empty($scriptProperties['options'][$this->ms_op_options])) {
$size = $scriptProperties['options'][$this->ms_op_options];
} else {
$optionPrices = $product->getProperties('msoptionsprice');
$minPrice = 0;
foreach ($optionPrices as $optionsize => $price) {
if (($price > 0 && $price < $minPrice) || !$minPrice) {
$minPrice = $price;
$size = $optionsize;
}
}
}
$id = $product->get('id');
$res = $this->modx->getObject("modResource",$id);
$properties = $res->get('properties');
$new_price = $properties['msoptionsprice'][$size];
$values = & $this->modx->event->returnedValues;
if (isset($new_price)) $product->set('price', $new_price);
if (isset($size)) $values['options']['size'] = $size;
}
Да я сразу понял что ты имеешь ввиду добавление с каталога… Спасибо что высказываешь свое мнение.
Но идеально под все сразу заточить не возможно. В другом магазине будут новые требования…
Подумаю над твоими правками…
p.s.
а вообще опцию товара с каталога можно просто передать и не нужно ничего велосипедить…
Но идеально под все сразу заточить не возможно. В другом магазине будут новые требования…
Подумаю над твоими правками…
p.s.
а вообще опцию товара с каталога можно просто передать и не нужно ничего велосипедить…
в чанк добавим в форму
<input type="hidden" name="options[size]" value="[[+size.0]]">
p.p.s СПАСИБО!
Дам-с… )))
Первый магазин делаю, еще не вник целиком в логику))) Все получилось, теперь обновление и не нужно))
Первый магазин делаю, еще не вник целиком в логику))) Все получилось, теперь обновление и не нужно))
Поставил… К сожалению, работает либо только по «color», либо только по «size» — две опции выбрать нельзя. Конечно, вариант с возможностью указания значения смещения цены на фиксированное положительное\отрицательное значение или процент был бы приемлемее…
Как его можно заставить работать со сторонним свойством товара? В mysql оно как tinyint, в админке — чекбокс. Надо хранить в ms_product варианты чекбокса как [«0»,«1»]? ))
незнаю, с чекбоксом не пробовал…
вот отличный прототип, только для магенто amasty.com/color-swatches-pro.html
Не работает в корзине почему-то, хотя на карточке товаров все ок
Смена параметров товара в корзине это другой компонент — store.simpledream.ru/packages/ecommerce/msquickview.html
А, спасибо, просто сразу увидел скрин примера корзины и подумал, что и там будет работать смена, да и логично как-то.
Понимаю, что компонент для зависимости цен, но всё же спрошу совета…
В описание Msklad (http://modstore.pro/packages/integration/msklad) пишут…
Вариант 5 — импорт цен/наличия для нескольких торговых предложений одного товара
… Наличие в соответствии с характеристикой выгружается при настроенной связи с источником «Количество» в аналогичном формате — 110х120==15||200х200==2||300х300==0.
Так как всё-таки реализовать учёт остатков для каждого размера? Т.е. если кол-во товара размера S больше 0, то выводим этот размер в селекте на карточке товара, а если 0, то не выводим.
Кто-то может взяться написать такой сниппет. Работу оплачу и объясню подробно.
В описание Msklad (http://modstore.pro/packages/integration/msklad) пишут…
Вариант 5 — импорт цен/наличия для нескольких торговых предложений одного товара
… Наличие в соответствии с характеристикой выгружается при настроенной связи с источником «Количество» в аналогичном формате — 110х120==15||200х200==2||300х300==0.
Так как всё-таки реализовать учёт остатков для каждого размера? Т.е. если кол-во товара размера S больше 0, то выводим этот размер в селекте на карточке товара, а если 0, то не выводим.
Кто-то может взяться написать такой сниппет. Работу оплачу и объясню подробно.
напиши в скайп — vgrish_vgrish
Хотел узнать, удалось ли реализовать учёт остатков для каждого размера? Тоже очень надо.
в этом пакете возможно в принципе сделать — modx.pro/components/4880-msoptionsprice2-different-prices-for-the-options-of-the-goods/
Владимир, напишите, что надо что бы это сделать?
напишите в скайп vgrish_vgrish. Пообщаемся.
не подскажете как вывести все стоимости?
Например есть таблица товара, в ней вывожу:
товар и партию(сколько за раз можно купить)
Например Визитка односторонняя — до 100штук 1 цена, до 500штук вторая и так далее.
Проще говоря надо вывести цены всех свойств. Как это можно сделать?
Например есть таблица товара, в ней вывожу:
товар и партию(сколько за раз можно купить)
Например Визитка односторонняя — до 100штук 1 цена, до 500штук вторая и так далее.
Проще говоря надо вывести цены всех свойств. Как это можно сделать?
А можно как-нибудь вывести сразу все цены. Например три цены, каждая со своей опцией в столбик, и под каждой кнопка «купить»?
Добрый день!
Эта версия не работает с последним minishop2?
Эта версия не работает с последним minishop2?
Здравствуйте а как сделать вывод с выборкой цены на страницу фронтенда???? что нужно прописать в шаблоне ????
Может кто сталкивался с изменением цен у товаров в каталоге при фильтрации? Фильтруешь товары с опциями, а в каталоге у товаров даже цена не изменяется. Это как-то решено?
С данным моментом разобрался, все отлично. Но, появился другой момент, как фильтровать по ценам модификаций, а не товаров? Получается что у товара цена указана 30к, в модификации цена 35к, а в фильтре максимальное 30к и получается дикая несуразица при взгляде на фильт с выведенными данными…
Научить фильтр работать с ценами модификаций. Если у вас mFilter читать тут docs.modx.pro/components/msearch2/extension/components/msearch2/the-extension/filtering-methods
Спасибо, это дало какое-то направление размышлений, но до конца, ясности так и не появилось. По идее, если я правильно понял, нужен стандартный метод для фильтрации по цене, но только он должен обращаться к другой таблице и выбирать другое поле.
— вызов в mFilter2
Для вывода слайдера цен с учетом модификаций необходимо положить кастомный класс фильтрации в папку и указать в настройке mse2_filters_handler_class класс msopFilters
Для вывода слайдера цен с учетом модификаций необходимо положить кастомный класс фильтрации в папку и указать в настройке mse2_filters_handler_class класс msopFilters
/core/components/msearch2/custom/filters/
[[!mFilter2?
&limit=`5`
&parents=`0`
&element=`msProducts`
&setMeta=`1`
&filters=`
msop|price:number
msoption|size
`
&tpls=`tpl.msProducts.row,tpl.msProducts.row`
&class=`msProduct`
&sort=`ms|price:desc`
&tplOuter=`tpl.mFilter2.outer`
&tplFilter.outer.msop|price=`tpl.mFilter2.filter.slider`
&tplFilter.row.msop|price=`tpl.mFilter2.filter.number`
]]
Можно обновить пакет и применить вышеизложенное.
Спасибо, все хорошо работает. Но все же остался один недостаток, с которым, наверное, придется смириться или очень долго исправлять. Теперь при выборе цены в верхнем диапазоне, товары фильтруются правильно, но отображаются с базовыми ценами, цены меняются только при выборе какой-либо из опций…
феном приходит на помощь… В чанке продукта вверху добавить
{if $tmp = $.request['msop|price']|split}
{var $m = '!msOptionsPrice.modification'|snippet:[
'product' => $id,
'limit' => 1,
'return' => 'data',
'where' => ["msopModification.price >= "~$tmp[0]~" AND msopModification.price <= "~$tmp[1]],
]}
{set $m = $m[0]}
{if $m.price?}{set $price = $m.price}{/if}
{/if}
Только попробовал, выводит с учетом фильтра по ценам и потом сразу затирает, т.к. цены зависят не от одно параметра. Выше просто изменили цену на ближайшую подходящую, но при этом остальные параметры не изменили и не учитывали.
Выше просто изменили цену на ближайшую подходящую, но при этом остальные параметры не изменили и не учитывали.да, взяли цену подходящую под запрос.
Если вам нужно учитывать еще и опции — вы можете это дописать в вызов сниппета.
Я правильно понимаю, что, для учета других свойств модификации требуется дописать в вызове сниппета следующее
{if $.request['msoption|size']}
{var $m = '!msOptionsPrice.modification'|snippet:[
'product' => $id,
'limit' => 1,
'return' => 'data',
'where' => ["msopModification.price >= "~$tmp[0]~" AND msopModification.price <= "~$tmp[1]~" AND msop_modification_options.value <= "~$.request['msoption|size']~" AND msop_modification_options.key =='size' "]],
]}
{/if}
Добрый день. Столкнулся с такой же задачей. Подскажите, как вы сделали работу с 2 и более опциями?
Требовалась работа только с 2-я параметрами. Делал по указаниям выше, только там сначала пришлось учитывать активные параметры и для конкретного набора параметров править запрос к базе. Не самое гибкое решение.
Мне сейчас тоже нужно 2 параметра учесть (но они оба НЕ цена), можете поделиться вашим кодом, чтобы я сделал?
К сожалению, пример уже не смогу дать, исходников не осталось. Могу сказать, что код выше будет рабочим при небольшой допилке (переработать запрос к базе и добавить условие на параметр).
{if $.request['msoption|size']}
{var $m = '!msOptionsPrice.modification'|snippet:[
'product' => $id,
'limit' => 1,
'return' => 'data',
'where' => ["msopModification.price >= "~$tmp[0]~" AND msopModification.price <= "~$tmp[1]~" AND msop_modification_options.value <= "~$.request['msoption|size']~" AND msop_modification_options.key =='size' "]],
] /*Это условие чуть исправить, оставить только присутствующие запросе поля*/
}
{/if}
Привет! Не осталось кастомного класса для фильтрации по ценам модификаций? Думаю, многим будет полезен.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.