Изменять стоимость доставки через яндекс
Всем привет! Есть скрипт который считает доставку по городу через яндекс. Кликаешь на карту и он показывает столько км, и столько стоит доставка по городу.
Подскажите как сделать так, чтобы эта стоимость доставки прибавлялась к общей стоимости?
Подскажите как сделать так, чтобы эта стоимость доставки прибавлялась к общей стоимости?
Поблагодарить автора
Отправить деньги
Комментарии: 7
Там получается так, что стоимость доставки берется не из базы, а считается уже на стр корзины и потом прибавляется.
Стоимость считается на фронте на JS?
Если так, необходим собственный класс доставки, который принимает стоимость из браузера, но очень это криво выглядит. Нужно больше подробностей.
Если так, необходим собственный класс доставки, который принимает стоимость из браузера, но очень это криво выглядит. Нужно больше подробностей.
Нужно больше подробностей.Битва экстрасенсов закончилась. Все экстрасенсы разъехались. ;)
Ровно так :)
Да, с JS, надо было дописать. JS и выдает итоговую стоимость доставки в зависимости от удаленности от центра города.
не из базы, а считается уже на стр корзиныЗнаю, что криво, но другого пути не вижу. Как сделать чтобы этот класс принимал значение из браузера?
Отправить AJAX запрос из браузера, отловить запрос сниппетом или плагином, запустить обработку. После всего этого вызвать JS метод Order.getCost();
Спасибо за пинок)
Сделал, работает. Я не нашел ничего умного кроме как сохранять в сессию, а в кастомном классе доставки взять оттуда стоимость=)
Сниппет:
Сделал, работает. Я не нашел ничего умного кроме как сохранять в сессию, а в кастомном классе доставки взять оттуда стоимость=)
Сниппет:
<?php
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}
if (empty($_POST['delivery_cost'])) {return;}
// А если есть - работаем
$res = $_POST['delivery_cost'];
$del_obj = $modx->getObject('msDelivery', array('class' => 'yandexDelivery'));
$_SESSION['ydPrice'] = $res;
$del_obj->getCost();
// Если у нас есть, что отдать на запрос - отдаем и прерываем работу парсера MODX
if (!empty($res)) {
die($res);
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.