Дилерский раздел на MODX
Добрый день!
Ситуация следующая…
Необходим закрытый раздел для дилеров.
На сайте есть розничные цены для всех посетителей, если человек логиниться в личном кабинете для дилеров, то розничные цены пропадают ( не отображаются) и на их месте появляются цены оптовые и кнопка корзины.
При этом пароль для входа должен создавать админ сайта через админку, т.е. регистрации на сайте нет, только страница для входа.
Натолкните на мысль куда смотреть, может готовые решения есть?
Спасибо за помощь!
Ситуация следующая…
Необходим закрытый раздел для дилеров.
На сайте есть розничные цены для всех посетителей, если человек логиниться в личном кабинете для дилеров, то розничные цены пропадают ( не отображаются) и на их месте появляются цены оптовые и кнопка корзины.
При этом пароль для входа должен создавать админ сайта через админку, т.е. регистрации на сайте нет, только страница для входа.
Натолкните на мысль куда смотреть, может готовые решения есть?
Спасибо за помощь!
Комментарии: 7
Спасибо за помощь!
Нужные поля как отдавать?
Я думал minishop использовать
Нужные поля как отдавать?
Я думал minishop использовать
Ваш вопрос слишком объёмный, т.к. ответ на него будет порождать несколько новых вопросов…
Можно делать примерно так:
I. Сначала читаем про расширение товаров, добавляем новое поле для оптовой цены, например optPrice.
II.
1. Читаем заметку
2. Создаём плагин, в нём проверяем пользователя. Примерно так:
Fenom:
Вроде всё. Но нюансов может быть множество )
Можно делать примерно так:
I. Сначала читаем про расширение товаров, добавляем новое поле для оптовой цены, например optPrice.
II.
1. Читаем заметку
2. Создаём плагин, в нём проверяем пользователя. Примерно так:
case 'pdoToolsOnFenomInit':
$fenom->addAccessorSmart("site", "data", Fenom::ACCESSOR_PROPERTY);
# определить принадлежность к группе оптовых
$optGroupe = 2; # ваша группа оптовых
$ws = 0; # пока это обычный юзер
$user = $modx->user;
$usergroups = $user->getUserGroups();
if ($user->get('id') && in_array($optGroupe, $usergroups)) {
$ws = 1; # а теперь - оптовик
}
$fenom->data = [
'ws' => $ws
];
break;
Теперь ВЕЗДЕ у вас есть переменная $.site.ws.Fenom:
{if $.site.ws == 1}
{$optPrice}
{else}
{$price}
{/if}
III. В том же плагине на событие msOnBeforeAddToCart добавляем изменение цены для оптовиков, если оптовик.Вроде всё. Но нюансов может быть множество )
Спасибо большое!!!
Можно и без плагина прямо в шаблоне проверять:
Пример плагина для минишопа:
p.s. Поле optprice добавлял через msFieldsManager, так быстрей =)
{if $_modx->user.id > 0 && $_modx->isMember('optGroup')}
{$optPrice}
{else}
{$price}
{/if}
Пример плагина для минишопа:
if ($modx->event->name == 'msOnBeforeAddToCart' && $modx->user->isAuthenticated() && $modx->user->isMember('optGroup')) {
$optprice = $product->get('optprice');
if (!empty($optprice)) {
$product->set('price', $optprice);
}
}
p.s. Поле optprice добавлял через msFieldsManager, так быстрей =)
Можно и без плагина прямо в шаблоне проверятьЭто так придётся ВЕЗДЕ проверять: в шаблоне карточки товара, во всех чанках, где есть товар…
Не рекомендую )
Конечно если там 100500 шаблонов и чанков, то да, с плагином проще) А если в 1-2 местах, то пофиг как проверять.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.