При заказе от 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И все вроде.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.