Различная цена для групп покупателей в minishop2

Реализовал вывод разной цены для различных групп покупателей. Дополнительные цены выводятся как свойства товара, то есть если пользователь относится к «Группа 1», то выводим «Цена 1» вместо основной цены. Но проблема в том, что если добавить товар в корзину, то он добавляется со стандартной ценой и в miniCart так же отображается стандартная цена. Подскажите пожалуйста, где находится скрипт, который выбирает цену товара по клику Купить. Или как через обработчик можно реализовать?
Максим
25 июля 2017, 14:07
modx.pro
2 093
0

Комментарии: 7

Максим
25 июля 2017, 20:51
0
Добавил в карточку товара сниппет с таким кодом
if ($modx->event->name == 'msOnBeforeAddToCart') {
    $product->set('price', $price);
}
в соответствии с документацией, событие 'msOnBeforeAddToCart' срабатывает перед тем, как добавить товар, но у меня оно никак не срабатывает.
    Максим
    26 июля 2017, 22:57
    0
    мда, данное сообщество как всегда готово «помочь»
      Андрей
      26 июля 2017, 23:55
      1
      +1
      Вот все сразу всё бросили, и начали помогать =)

      Добавил в карточку товара сниппет с таким кодом
      События обрабатываются не в сниппете а в плагине, надо внимательно документацию читать.

      Вот пример рабочего плагина:

      <?php
      if ($modx->event->name == 'msOnBeforeAddToCart' && $modx->user->isAuthenticated() && $modx->user->isMember('group')) {
      	$newprice = $product->get('newprice');
      	if (!empty($newprice)) {
      		$product->set('price', $newprice);
      	}	
      }
        Максим
        27 июля 2017, 01:12
        0
        Вот все сразу всё бросили, и начали помогать =)
        Так я о том же:)

        Вот пример рабочего плагина:
        Спасибо
          Андрей
          25 июня 2020, 10:21
          0
          Добрый день. А если групп пользователей несколько, то просто добавить для каждой проверку?
          if (!empty($newprice1)) {
          		$product->set('price', $newprice1);
          	}
          if (!empty($newprice2)) {
          		$product->set('price', $newprice2);
          	}
            Андрей
            25 июня 2020, 13:31
            0
            Добрый день. А если групп пользователей несколько, то просто добавить для каждой проверку?
            Да, проверка $modx->user->isMember к какой группе принадлежит пользователь, и отдаёшь разные им разные цены.
              Андрей
              25 июня 2020, 13:32
              0
              Спасибо большое!
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7