Кастомный класс доставки. Бесплатно дост. от суммы
Имеется кастомный класс доставки:
Пример, Товар стоимостью 3500р (розничная цена), 3300р (оптовая).
Добавляем 3 наименования.
ИТОГ: в корзине 9900р, доставка бесплатная (по обычной цене сумма получилась 10500)
ВОПРОС: Подскажите, пожалуйста, как сделать, чтобы доставка всегда считалась по оптовой цене?
<?php
class msxxxDeliveryHandler extends msDeliveryHandler{
public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {
$cart = $this->ms2->cart->status();
$total = $_SESSION['minishop2']['mode_total'];
if ($total<10000) {
$add_price = $delivery->get('price');
if (preg_match('/%$/', $add_price)) {
$add_price = str_replace('%', '', $add_price);
$add_price = $cost / 100 * $add_price;
}
$cost += $add_price;
}
return $cost;
}
}При достижении суммы корзины свыше 10000, страница обновляется и вся корзина пересчитывается по оптовым ценам. Доставка становится бесплатной (по условию, свыше 10000, доставка бесплатная ). Пример, Товар стоимостью 3500р (розничная цена), 3300р (оптовая).
Добавляем 3 наименования.
ИТОГ: в корзине 9900р, доставка бесплатная (по обычной цене сумма получилась 10500)
ВОПРОС: Подскажите, пожалуйста, как сделать, чтобы доставка всегда считалась по оптовой цене?
Комментарии: 8
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Но класс доставки видимо считает после пересчета корзины, что там больше 10 т.(по розн. ценам) Хотя по факту меньше.
Как быть?)
Нужно менять стоимость товаров непосредственно в корзине, тогда класс доставки сразу будет получать измененную стоимость.
Я имею ввиду скидку при достижении определенной цены.
Тут поможет только свой класс заказа. И нужно посмотреть исходники, как именно доставка проверяет стоимость заказа, там были какие-то тонкости вроде флагов $with_cart или как-то так, не помню.
Подскажите, что не так:
Имеется доставка и необходимо чтобы при определенной сумме заказа менялась стоимость доставки.
Сделал по примеру, общая сумма меняется, при оформлении заказа получается, что общая сумма становится равно 0, а собственно сама доставка становится равной сумме заказа + доставка. нет разграничения. Как правильно сделать кастомилизацию?
Может есть примеры?
Вот что получается: prnt.sc/ahnovc, что не верно.