При заказе от 2000 рублей - доставка бесплатно
        Как правильно реализовать учёт, что при заказе от 2000 рублей — доставка бесплатная?
Можно в настройках добавить правило? Если да, то где?
Если нет, то какие сниппеты, чанки нужно поправить? чтобы это правило работало при оформлении заказа (вывод корзины, вывод заказа, письма).
    
    
                                                                                
            Можно в настройках добавить правило? Если да, то где?
Если нет, то какие сниппеты, чанки нужно поправить? чтобы это правило работало при оформлении заказа (вывод корзины, вывод заказа, письма).
Комментарии: 5
                Да, кстати, животрепещущий вопрос!
Тоже надо такое реализовать, но пока до этого момента не дошёл.
Вась, не подскажешь направление. в сторону чего смотреть?
                    Тоже надо такое реализовать, но пока до этого момента не дошёл.
Вась, не подскажешь направление. в сторону чего смотреть?
                О, пока читал документацию, наткнулся на алгоритм действий!
Я и не сомневался, что всё уже давно придумано.
Вась, спасибо! :-)
                    Я и не сомневался, что всё уже давно придумано.
Вась, спасибо! :-)
                Спасибо за ссылку.            
                    
                Долго мучился делая данную функцию =D т.к. вообще не знаю php, но методом тыка всё же получилось =))
Файл лежит вот здесь core/components/minishop2/model/minishop2/msdeliveryhandler.class.php
                    <?php
interface msDeliveryInterface {
	/* Get the cost of delivery
	 *
	 * @param msOrderHandler $order
	 * @param msDelivery $delivery
	 * @return integer
	 * */
	public function getcost(msOrderInterface $order, msDelivery $delivery);
}
class msDeliveryHandler implements msDeliveryInterface {
	public function getcost(msOrderInterface $order, msDelivery $delivery) {
		$cart = $order->ms2->cart->status();
		$min_price = $delivery->get('price');
		$weight_price = $delivery->get('weight_price');
		//$distance_price = $delivery->get('distance_price');
		$cart_weight = $cart['total_weight'];
		$cost = $min_price + ($weight_price * $cart_weight);
//Заветные строчки
	   $total_cost = $cart['total_cost'];
    if ($total_cost > 5000) {$cost = $cart_weight;}
		return $cost;
	}
}Файл лежит вот здесь core/components/minishop2/model/minishop2/msdeliveryhandler.class.php
                Вот как я сделал (у меня 1700 бесплатная):
/core/components/minishop2/custom/delivery/msdeliveryhandlerpetja.class.php:
И все вроде.
                    /core/components/minishop2/custom/delivery/msdeliveryhandlerpetja.class.php:
<?php
/**
 * User: Petja
 * Date: 02.11.13
 * Time: 3:53
 */
class msDeliveryHandlerPetja extends msDeliveryHandler{
    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {
        $add_price = 0;
        if($cost < 1700){
            $add_price = $delivery->get('price');
        }
        return $cost + $add_price;
    }
}А в настройках магазина: варианты доставки, редактировать доставку, Класс-обработчик: msDeliveryHandlerPetjaИ все вроде.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.