[msPromoCode] 1.3.3 - Кастомизация скидки товара плагином
В новой версии пакета через плагины можно кастомизировать скидку на товары, которые применены к промо-коду. Если на примерах, то через события mspcOnBeforeSetProductDiscount и mspcOnSetProductDiscount можно:
- Увеличивать/применять скидку на товар в зависимости от кол-ва единиц товара в корзине,
- Давать скидку только на конкретную опцию товара, например на рубашку размера XXL,
- Получить итоговую стоимость товара, за вычетом скидки, равной скидке за одну единицу, вне зависимости от кол-ва единиц данной позиции в корзине,
- И много чего ещё, на что хватит вашей фантазии!
Событие mspcOnBeforeSetProductDiscount
Информация по событию доступна в документации.
Событие mspcOnSetProductDiscount
Информация по событию доступна в документации.
Поблагодарить автора
Отправить деньги
Комментарии: 3
пишу плагин, чтобы разрешить скидку только на товары определенного бренда:
<?php
$sp = &$scriptProperties;
switch ($modx->event->name) {
case "mspcOnBeforeSetProductDiscount":
if (strtolower($sp['coupon']['code']) == 'hotdays') {
$product = $modx->getObject('msProduct', $sp['product']['id']);
if ($product->get('vendor') != 9) {
$sp['discount'] = 0;
}
}
break;
}
$modx->event->returnedValues = $sp;
на фронте, если товар другого бренда, скидка не срабатывает, но все равно приходит сообщение, что промокод применен. А как написать, что недействителен?
В своём плагине ты не отменяешь промо-код, а ставишь нулевую скидку. Вот здесь почитай, как отменять действие промо-кода плагином.
спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.