miniShop2 — работа с оптовыми ценами
Подскажите, пожалуйста, каким образом в miniShop2 можно работать с оптовой ценой (которая будет вводится к примеру в tv [[*opt_price]])? Задача, чтобы для простого юзера в каталоге и в корзине цена была розничная, а для авторизованного (через HybridAuth) — оптовая.Заранее благодарю!
Комментарии: 28
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Главная цель — положить товар в корзину с нужной ценой, этого можно добиться написанием плагина на событие корзины msOnBeforeAddToCart.
Плагин должен проверять авторизацию и получать нужную цену, а затем менять её в объекте product (но не сохранять!).
Пример плагина, меняющего нормальный price на old_price, если юзер авторизован:
Скрипт нужно вызывать на странице с продуктом или в корзине? У меня в любом случае ничего не работает, поэтому прошу внести ясность в мою не компетентность в этом вопросе…
Юзер авторизован, при авторизации, человек заполняет в личном кабинете строку объем закупки, там 3 разных цифры, она записывается в комментарий у пользователя, чтобы манагер мог увидеть ее в админке.
соответственно надо сделать так, чтобы цены авторизованным выдавались как в плагине выше, но и еще проверялось условие по комментарию, на соновании которого выставляется одна из 4 возможных цен.
розница, мелкий опт, опт, крупный опт.
Как в плагин вписать эту проверку?
все операции с корзиной проходят по цене [[+price]] в $
мне нужно отображение цены по курсу везде рядом с основной ценой
курс задан как [[++kurs_usd]]
сделал такое:
[[+price:mpy=`[[++kurs_usd]]`]]
но срабатывает только при начальной загрузке каталога, но как только делаешь сортировку(mFilter2) — везде 0. при изменении количества и формы оплаты тоже естественно не срабатывает ибо там ajax.
подскажите есть событие или функция JS к которой можно повесить такой «пересчёт» цен?
или если есть мысль как сделать лучше/проще прошу пните в правильном направлении
а как быть с изменяемой стоимостью total_cost в корзине?
таким сниппетом:
это работает корректно везде кроме msCart(при изменении количества) msOrder(при изменении методов оплаты и доставки). у меня от этого цены total_cost и order_cost изменяются, а total_cost_hrn и order_cost_hrn не изменяются (только после F5).
подскажете как заставить?
пример с умножением цены работает, но установка плейсхолдера в плагине не срабатывает. наверное мне нужно добавить дополнительное поле поле к товару price_hrn
и потом делать в плагине: $values['price_hrn'] = $price * $kurs_usd;
так?
и сразу же спрошу дальше: какие события отвечают за изменения количества товара в корзине и стоимость order_cost?
просто в идеале хочется получить работу магазина в $ и рядышком цену по курсу в грн. как «справочную».
возвращает NULL,
На изменение цены не реагирует. Побывал и $product->set('price', 123)
Причем пару вчера буквально было все ОК.
$modx->event->returnedValues ничего не возвращает. С чем это может быть связано? Не нашли решение?
Не та цена что в базе, а та что в сессии хранится.
Я вроде разобрался у себя, вроде была трабла из-за компонента msDiscount(его плагина), он тоже работает с этим событием.