Добавление нового модификатора скидки — различия между версиями
Материал из Umicms
Stexe (обсуждение | вклад) (Новая страница: « category:Модуль Интернет магазин '''Задача:''' Добавить новый модификатор скидки наряду с мод…») |
Stexe (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
'''Задача:''' Добавить новый модификатор скидки наряду с модификаторами "Процент от суммы" и "Фиксированный размер".<br/><br/> | '''Задача:''' Добавить новый модификатор скидки наряду с модификаторами "Процент от суммы" и "Фиксированный размер".<br/><br/> | ||
'''Реализация:'''<br/><br/> | '''Реализация:'''<br/><br/> | ||
− | |||
<ol> | <ol> | ||
Строка 27: | Строка 26: | ||
?> | ?> | ||
</source> | </source> | ||
+ | В данном случае конечная сумма с учетом скидки будет округлена до целого в меньшую сторону. |
Текущая версия на 08:13, 9 ноября 2013
Задача: Добавить новый модификатор скидки наряду с модификаторами "Процент от суммы" и "Фиксированный размер".
Реализация:
- В модуле "Шаблоны данных" на вкладке "Типы данных" для типа "Модификаторы цены скидок" нужно добавить дочерний тип данных (подтип), например, "Процент от суммы (округленная)" и добавить поле в этот тип с идентификатором "percent" без кавычек и типом поля "Число с точкой" (можно посмотреть на примере типа данных "Процент от суммы заказа"). Также нужно выбрать назначение типа - "Модификатор цены скидки".
- В модуле "Шаблоны данных" на вкладке "Справочники" в справочник "Типы модификаторов скидок" нужно добавить новый элемент. Нужно заполнить поле "Идентификатор", им будет название файла PHP и префикс названия класса модификатора цены скидки. В поле "Тип данных (id)" нужно указать id типа данных, созданного в шаге №1. Поле "Тип данных (GUID)" можно не заполнять. В поле "Допустимые типы скидки" нужно выбрать допустимые типа скидки для данного модификатора.
- В директорию /classes/modules/emarket/classes/discounts/modificators нужно добавить файл с названием идентификатор.php ("идентификатор" - идентификатор, указанный для элемента на шаге №2). Вы можете скопировать файл /classes/modules/emarket/classes/discounts/modificators/proc.php и переименовать его. Класс модификатора должен иметь имя - "идентификаторDiscountModificator" без кавычек.
Пример кода нового модификатора скидки приведен ниже:
<?php
class fpercentDiscountModificator extends discountModificator {
public function recalcPrice($originalPrice) {
return floor($originalPrice - ($originalPrice * $this->percent / 100));
}
};
?>
В данном случае конечная сумма с учетом скидки будет округлена до целого в меньшую сторону.