Различная цена для групп покупателей в minishop2
Реализовал вывод разной цены для различных групп покупателей. Дополнительные цены выводятся как свойства товара, то есть если пользователь относится к «Группа 1», то выводим «Цена 1» вместо основной цены. Но проблема в том, что если добавить товар в корзину, то он добавляется со стандартной ценой и в miniCart так же отображается стандартная цена. Подскажите пожалуйста, где находится скрипт, который выбирает цену товара по клику Купить. Или как через обработчик можно реализовать?
Комментарии: 7
Добавил в карточку товара сниппет с таким кодом
if ($modx->event->name == 'msOnBeforeAddToCart') {
$product->set('price', $price);
}
в соответствии с документацией, событие 'msOnBeforeAddToCart' срабатывает перед тем, как добавить товар, но у меня оно никак не срабатывает.
мда, данное сообщество как всегда готово «помочь»
Вот все сразу всё бросили, и начали помогать =)
Вот пример рабочего плагина:
Добавил в карточку товара сниппет с таким кодомСобытия обрабатываются не в сниппете а в плагине, надо внимательно документацию читать.
Вот пример рабочего плагина:
<?php
if ($modx->event->name == 'msOnBeforeAddToCart' && $modx->user->isAuthenticated() && $modx->user->isMember('group')) {
$newprice = $product->get('newprice');
if (!empty($newprice)) {
$product->set('price', $newprice);
}
}
Вот все сразу всё бросили, и начали помогать =)Так я о том же:)
Вот пример рабочего плагина:Спасибо
Добрый день. А если групп пользователей несколько, то просто добавить для каждой проверку?
if (!empty($newprice1)) {
$product->set('price', $newprice1);
}
if (!empty($newprice2)) {
$product->set('price', $newprice2);
}
Добрый день. А если групп пользователей несколько, то просто добавить для каждой проверку?Да, проверка $modx->user->isMember к какой группе принадлежит пользователь, и отдаёшь разные им разные цены.
Спасибо большое!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.