skip to content
KAD::Wiki
User Tools
Log In
Site Tools
Search
Tools
Show page
Old revisions
Log In
>
You are here:
Приветствие
»
Для сотрудников
»
Разработка
»
HostCMS
»
Статьи (по модулям)
»
Интернет-магазин
»
Полезные решения
»
Скидка по купону, зависящая от количества товаров в заказе
private:koding:hostcms:modules:shop:useful:discount
Media Files
====== Скидка по купону, зависящая от количества товаров в заказе ====== Для того, чтобы сделать скидку, зависящую от количества товаров в заказе, необходимо: - Добавить скидку от суммы заказа с требуемой величиной. - Создать констунту с именем ''SHOP_ITEM_DISCOUNT_ID'' и задать ей значение, равное коду добавленной скидки. - Переопределить метод ''show'' класса ''Shop_Cart_Controller_Show'' в настройках ТДС корзины с помощью наследования, код метода взять из стантартного класса и внести следующие изменения:<code php> <?php class Shop_Cart_Controller_Show_Extended extends Shop_Cart_Controller_Show { // ... public function show() { // ... $aShop_Purchase_Discounts = $oShop_Purchase_Discount_Controller->getDiscounts(); foreach ($aShop_Purchase_Discounts as $oShop_Purchase_Discount) { /** * * Пересчет скидки по формуле: количество товаров * SHOP_ITEM_DISCOUNT * * @author Zasorin Maksim, KAD Systems (©) 2015 * @date 23-09-2015 * Начало >> */ if ( defined('SHOP_ITEM_DISCOUNT_ID') && $oShop_Purchase_Discount->id == SHOP_ITEM_DISCOUNT_ID ) { $discountAmount = $oShop_Purchase_Discount->getDiscountAmount(); $oShop_Purchase_Discount->discountAmount($discountAmount * $quantity); } /** * << Конец * @author Zasorin Maksim, KAD Systems (©) 2015 * @date 23-09-2015 */ $this->addEntity($oShop_Purchase_Discount->clearEntities()); $totalDiscount += $oShop_Purchase_Discount->getDiscountAmount(); } // ... return Core_Controller::show(); } // ... } </code> - Переопределить метод ''_addPurchaseDiscount'' в обработчиках платежных систем, код взять из стандартного обработчика и внести следующие изменения:<code php> <?php class Shop_Payment_System_HandlerXX extends Shop_Payment_System_Handler { //... protected function _addPurchaseDiscount($amount, $quantity) { // ... $aShop_Purchase_Discounts = $oShop_Purchase_Discount_Controller->getDiscounts(); foreach ($aShop_Purchase_Discounts as $oShop_Purchase_Discount) { /** * * Пересчет скидки по формуле: количество товаров * SHOP_ITEM_DISCOUNT * * @author Zasorin Maksim, KAD Systems (©) 2015 * @date 23-09-2015 * Начало >> */ if ( defined('SHOP_ITEM_DISCOUNT_ID') && $oShop_Purchase_Discount->id == SHOP_ITEM_DISCOUNT_ID ) { $discountAmount = $oShop_Purchase_Discount->getDiscountAmount(); $oShop_Purchase_Discount->discountAmount($discountAmount * $quantity); } /** * << Конец * @author Zasorin Maksim, KAD Systems (©) 2015 * @date 23-09-2015 */ $oShop_Order_Item = Core_Entity::factory('Shop_Order_Item'); $oShop_Order_Item->name = $oShop_Purchase_Discount->name; $oShop_Order_Item->quantity = 1; $discountAmount = $oShop_Purchase_Discount->getDiscountAmount(); // ... } // ... } </code>
Save
Preview
Cancel
Edit summary
private/koding/hostcms/modules/shop/useful/discount.1443004464.txt.gz
· Last modified: 23.09.15 в 13:34 by
maximzasorin_gmail.com
Page Tools
Show page
Old revisions
Export to PDF
Rename Page
Back to top