[msDiscount]когда происходит перемещение в группу?
Сделал группу Clients_FirstPurchase, поставил 5% скидку и сумму 100.
То есть при покупке на 100 рублей пользователь должен попадать в эту группу.
Был один старый пользователь с покупками. Купил им, изменил ему заказ на оплачен, потом на доставлен — ничего не изменилось в группах…
Потом поменял ему второй заказ на оплачен — смотрю — переместился в группу.
Затем взял другого пользователя с одним старым заказом, поменял ему тоже на оплачен, потом на доставлен — больше не меняется. Он не переместился в группу…
В общем получилось у меня, что один заказ оплачен — ничего не считает, второй заказ оплачен — посчитал. Но толком не понятно когда, как и при каких условиях он меняет группу пользователя… :-(
Василий, помоги разобраться, плз!
Мне надо сделать постоянную скидку любому пользователю при его первой покупке.
То есть при покупке на 100 рублей пользователь должен попадать в эту группу.
Был один старый пользователь с покупками. Купил им, изменил ему заказ на оплачен, потом на доставлен — ничего не изменилось в группах…
Потом поменял ему второй заказ на оплачен — смотрю — переместился в группу.
Затем взял другого пользователя с одним старым заказом, поменял ему тоже на оплачен, потом на доставлен — больше не меняется. Он не переместился в группу…
В общем получилось у меня, что один заказ оплачен — ничего не считает, второй заказ оплачен — посчитал. Но толком не понятно когда, как и при каких условиях он меняет группу пользователя… :-(
Василий, помоги разобраться, плз!
Мне надо сделать постоянную скидку любому пользователю при его первой покупке.
Комментарии: 9
И в догонку еще вопрос — как в профиле пользователя (Office) вывести скидку этого пользователя (как показать ему его скидку в личном кабинете)?
Согласно логике msDiscount, скидка пользователя существует только в применении к какому-то товару.
Поэтому, ты можешь только вывести принадлежность этого юзера к какой-то группе и её скидку. Скорее всего, нужно будет написать для этого свой несложный сниппет.
Поэтому, ты можешь только вывести принадлежность этого юзера к какой-то группе и её скидку. Скорее всего, нужно будет написать для этого свой несложный сниппет.
А где хранится скидка группы?
Объект msdUserGroup, его id совпадает с id группы пользователей, а скидка в поле discount.
Вывод юзеров с присоединением основной группы:
Вывод юзеров с присоединением основной группы:
[[!pdoUsers?
&tpl=`@INLINE <p>[[+id]] [[+fullname]] [[+discount]]</p>`
&innerJoin=`{"msdUserGroup":{"class":"msdUserGroup","on":"msdUserGroup.id = modUser.primary_group"}}`
&select=`{"modUser":"*","msdUserGroup":"*"}`
]]
Следует иметь в виду, что юзер может входить в несколько групп, и тогда показывать его скидку так просто уже не выйдет.
Может кому пригодится, смотрит все группы текущего юзверя и выводит бОльшую скидку:
<?php
/**
* User: Petja
* Date: 07.02.14
* Time: 22:34
*/
$groups = $modx->getCollection('modUserGroupMember',array('member' => $modx->user->id));
$diss = array();
foreach($groups as $group){
$gid = $group->get('user_group');
$t = $modx->getObject('msdUserGroup',$gid);
$diss[] = (int) $t->get('discount');
}
$dis = max($diss);
return "$dis%";
Ошибка не в msDiscount, а в MS2. Он делает запись в лог после события, при котором считается потраченные юзером деньги.
Внеси вот это исправление, и должно работать. В новой версии MS2 это уже будет из коробки, но не знаю, когда она выйдет.
Внеси вот это исправление, и должно работать. В новой версии MS2 это уже будет из коробки, но не знаю, когда она выйдет.
Завтра попробую, спасибо!
Пока даже не понял как юзер попадает в группу. В тот раз каким-то чудом попал, второй раз уже и 2 заказа сделал — все равно не попадает… Ладно, завтра буду пробовать внести эти изменения…
С этим изменением все стало четко — изменяю статус на оплачен — и сразу же копируется в новую группу, оставляя в старой. Так то все ОК! Благодарю.
Задорнов сказал благодарить, так что переучиваюсь :-) www.youtube.com/watch?v=k5uCl-aS5vs
Задорнов сказал благодарить, так что переучиваюсь :-) www.youtube.com/watch?v=k5uCl-aS5vs
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.