Скидка на товар в зависимости от количества этого товара в корзине — различия между версиями
Cmac (обсуждение | вклад) |
Velross (обсуждение | вклад) |
||
Строка 43: | Строка 43: | ||
Далее, уже в модуле "Интернет-магазин", во вкладке "Скидки", в новой скидке указываем в поле '''counts''' количество объектов при котором, скидка будет применена к товару. | Далее, уже в модуле "Интернет-магазин", во вкладке "Скидки", в новой скидке указываем в поле '''counts''' количество объектов при котором, скидка будет применена к товару. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | Более подробные инструкции: <br> | ||
+ | <br> | ||
+ | 1. Идём в Шаблоны данных <br> | ||
+ | 2. В строку поиска пишем Правила скидок <br> | ||
+ | 3. Добавляем новый тип данных дочерний к Правилам скидок: <br> | ||
+ | '''Название типа:''' например, "В зависимости от количества товаров" <br> | ||
+ | '''Назначение типа:''' Правило скидки <br> | ||
+ | Здесь же добавляем новое поле: <br> | ||
+ | '''Название:''' количество <br> | ||
+ | '''Идентификатор:''' counts <br> | ||
+ | '''Тип:''' число <br> | ||
+ | '''Видимое:''' Да <br> | ||
+ | '''Запоминаем id:''' /admin/data/type_edit/460/ - у меня 460 <br> | ||
+ | 4. Также, через поиск ищем справочник "Типы правил для скидок" и открываем его на просмотр (нажать на глазик). <br> | ||
+ | 5. Добавляем новое наименование в справочник, открываем его на редактирование <br> | ||
+ | '''Название:''' От количества в корзине <br> | ||
+ | '''Идентификатор:''' counts <br> | ||
+ | '''Тип данных (id):''' id только что созданного типа данных в разделе "Правила скидок" (я введу 460) <br> | ||
+ | '''Допустимые типы скидки:''' На товары каталога <br> | ||
+ | 6. В папку \classes\modules\emarket\classes\discounts\rules\ необходимо скопировать файл counts.php следующего содержания: как в статье <br> | ||
+ | 7. Идем в Интернет магазин на вкладку Скидки и создаем новую скидку '''"От количества в корзине"''', тип скидки '''"На товары каталога"'''. Модификатор цены '''"Процент от суммы"''', правила валидации '''"От количества в корзиине"'''. Нажимаем Добавить. <br> | ||
+ | 8. Делаем скидку активной, в поле '''"Процент от суммы"''' ставим например 5, в поле '''"От количества в корзине"''' ставим например 2. Сохраняем. <br> | ||
+ | 9. Проверяем, что всё работает так как нужно, при увеличении количества товара на 2 - мы получаем ожидаемую скидку. <br> | ||
+ | |||
+ | |||
[[Категория:Модуль Интернет магазин]] | [[Категория:Модуль Интернет магазин]] |
Версия 07:49, 17 апреля 2013
В данной статье мы рассмотрим пример добавления нового правила скидки на товар. В зависимости от количества добавленного товара в корзину, к товару будет применяться указанная скидка.
Аналогично данной статье Добавление нового правила скидки, необходимо добавить новое правило скидки. В новом типе данных, дочернем по отношению к типу "Правила скидок", добавляем поле с идентификатором 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 количество объектов при котором, скидка будет применена к товару.
Более подробные инструкции:
1. Идём в Шаблоны данных
2. В строку поиска пишем Правила скидок
3. Добавляем новый тип данных дочерний к Правилам скидок:
Название типа: например, "В зависимости от количества товаров"
Назначение типа: Правило скидки
Здесь же добавляем новое поле:
Название: количество
Идентификатор: counts
Тип: число
Видимое: Да
Запоминаем id: /admin/data/type_edit/460/ - у меня 460
4. Также, через поиск ищем справочник "Типы правил для скидок" и открываем его на просмотр (нажать на глазик).
5. Добавляем новое наименование в справочник, открываем его на редактирование
Название: От количества в корзине
Идентификатор: counts
Тип данных (id): id только что созданного типа данных в разделе "Правила скидок" (я введу 460)
Допустимые типы скидки: На товары каталога
6. В папку \classes\modules\emarket\classes\discounts\rules\ необходимо скопировать файл counts.php следующего содержания: как в статье
7. Идем в Интернет магазин на вкладку Скидки и создаем новую скидку "От количества в корзине", тип скидки "На товары каталога". Модификатор цены "Процент от суммы", правила валидации "От количества в корзиине". Нажимаем Добавить.
8. Делаем скидку активной, в поле "Процент от суммы" ставим например 5, в поле "От количества в корзине" ставим например 2. Сохраняем.
9. Проверяем, что всё работает так как нужно, при увеличении количества товара на 2 - мы получаем ожидаемую скидку.