This is an old revision of the document!
В некоторых случаях требуется вводить бесплатную доставку для определенных заказов, например, для тех, стоимость которых превышает определенный уровень или для тех, у которых в корзину добавлено определенное количество товаров. Для способов доставки, которые задаются через условия доставки есть стандартный способ задания таких условий, для доставок, стоимость которых вычилсяется по формуле стандартного способа нет, но это можно реализовать с помощью некоторых доработок.
Рассмотрим их.
В обработчике способа доставки в методе execute
добавляем:
$oShopDeliveryController = new Shop_Delivery_Controller_Show($this->_Shop_Delivery_Model->Shop); $oShopDeliveryController->setUp(); if ($oShopDeliveryController->totalAmount >= 5000) { $oReturn = new StdClass; $oReturn->price = 0; $oReturn->description = 'Бесплатная доставка'; return $oReturn; }
В обработчике способа доставки в методе execute
добавляем:
$oShopCartController = new Shop_Cart_Controller; $aoShopCarts = $oShopCartController->getAll($this->_Shop_Delivery_Model->Shop); $quantityTotal = 0; foreach ($aoShopCarts as $oShopCart) { if (!$oShopCart->postpone) { $quantityTotal += $oShopCart->quantity; } } if ($quantityTotal > 1) { $oReturn = new StdClass; $oReturn->price = 0; $oReturn->description = 'Бесплатная доставка'; return $oReturn; }
Страницу создал Максим Засорин 13.06.17 в 09:15