Добавление нового модификатора скидки — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: « category:Модуль Интернет магазин '''Задача:''' Добавить новый модификатор скидки наряду с мод…»)
 
 
Строка 2: Строка 2:
 
'''Задача:''' Добавить новый модификатор скидки наряду с модификаторами "Процент от суммы" и "Фиксированный размер".<br/><br/>
 
'''Задача:''' Добавить новый модификатор скидки наряду с модификаторами "Процент от суммы" и "Фиксированный размер".<br/><br/>
 
'''Реализация:'''<br/><br/>
 
'''Реализация:'''<br/><br/>
В этой статье мы добавим новый модификатор скидки - "Процент от суммы", но конечная сумма с учетом скидки будет округлена до целого в меньшую сторону.
 
  
 
<ol>
 
<ol>
Строка 27: Строка 26:
 
?>
 
?>
 
</source>
 
</source>
 +
В данном случае конечная сумма с учетом скидки будет округлена до целого в меньшую сторону.

Текущая версия на 08:13, 9 ноября 2013

Задача: Добавить новый модификатор скидки наряду с модификаторами "Процент от суммы" и "Фиксированный размер".

Реализация:

  1. В модуле "Шаблоны данных" на вкладке "Типы данных" для типа "Модификаторы цены скидок" нужно добавить дочерний тип данных (подтип), например, "Процент от суммы (округленная)" и добавить поле в этот тип с идентификатором "percent" без кавычек и типом поля "Число с точкой" (можно посмотреть на примере типа данных "Процент от суммы заказа"). Также нужно выбрать назначение типа - "Модификатор цены скидки".
  2. В модуле "Шаблоны данных" на вкладке "Справочники" в справочник "Типы модификаторов скидок" нужно добавить новый элемент. Нужно заполнить поле "Идентификатор", им будет название файла PHP и префикс названия класса модификатора цены скидки. В поле "Тип данных (id)" нужно указать id типа данных, созданного в шаге №1. Поле "Тип данных (GUID)" можно не заполнять. В поле "Допустимые типы скидки" нужно выбрать допустимые типа скидки для данного модификатора.
  3. В директорию /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));
		}
	};
?>

В данном случае конечная сумма с учетом скидки будет округлена до целого в меньшую сторону.