private:koding:hostcms:modules:shop:cart:delivery:free_delivery

Бесплатная доставка

В некоторых случаях требуется бесплатная доставка для заказов, удовлетворяющих определенным условиям, например, для тех, стоимость которых превышает определенный уровень, или для тех, у которых в корзину добавлено определенное количество товаров. Для способов доставки, которые задаются через условия доставки, есть стандартный способ задания таких условий, для доставок, стоимость которых вычилсяется по формуле стандартного способа нет, но это можно реализовать с помощью некоторых доработок.

Рассмотрим их.

Ограничение по стоимости

В обработчике способа доставки в методе 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

private/koding/hostcms/modules/shop/cart/delivery/free_delivery.txt · Last modified: 27.06.17 в 15:10 by maximzasorin_gmail.com