Скидка на товар в зависимости от количества этого товара в корзине — различия между версиями
VITL' (обсуждение | вклад) (Новая страница: «В данной статье мы рассмотрим пример добавления нового правила скидки на товар. В зависим…») |
Cmac (обсуждение | вклад) |
||
Строка 43: | Строка 43: | ||
Далее, уже в модуле "Интернет-магазин", во вкладке "Скидки", в новой скидке указываем в поле '''counts''' количество объектов при котором, скидка будет применена к товару. | Далее, уже в модуле "Интернет-магазин", во вкладке "Скидки", в новой скидке указываем в поле '''counts''' количество объектов при котором, скидка будет применена к товару. | ||
+ | [[Категория:Модуль Интернет магазин]] |
Версия 10:43, 8 сентября 2011
В данной статье мы рассмотрим пример добавления нового правила скидки на товар. В зависимости от количества добавленного товара в корзину, к товару будет применяться указанная скидка.
Аналогично данной статье Добавление нового правила скидки, необходимо добавить новое правило скидки. В новом типе данных, дочернем по отношению к типу "Правила скидок", добавляем поле с идентификатором counts. Также добавляем новый элемент в справочник "Типы правил для скидок":
- Идентификатор: counts
- Тип данных (id): id только что созданного типа данных в разделе "Правила скидок"
- Допустимые типы скидки: На товары каталога
А в папку \classes\modules\emarket\classes\discounts\rules\ необходимо скопировать файл counts.php следующего содержания:
<?php
class countsDiscountRule extends discountRule implements itemDiscountRule {
public function validateItem(iUmiHierarchyElement $orderItem) {
$itemsCount = '';
$emarket = cmsController::getInstance()->getModule('emarket');
if(!$emarket) return;
//текущая корзина
$order = $emarket->getBasketOrder();
foreach($order->getItems() as $orderItemBasket) {
$object_id = $orderItemBasket->getItemElement()->getId();
if($object_id == $orderItem->id){
$itemsCount = $orderItemBasket->getAmount();
break;
}
}
// Если кол-во товаров в корзине >= условия в скидке то возвращаем true
if($itemsCount >= $this->counts){
return true;
}else{
return false;
}
}
};
?>
Далее, уже в модуле "Интернет-магазин", во вкладке "Скидки", в новой скидке указываем в поле counts количество объектов при котором, скидка будет применена к товару.