К содержанию

Изменять стоимость доставки через яндекс

Всем привет! Есть скрипт который считает доставку по городу через яндекс. Кликаешь на карту и он показывает столько км, и столько стоит доставка по городу.

Подскажите как сделать так, чтобы эта стоимость доставки прибавлялась к общей стоимости?
Николай Загумённов
Николай Загумённов
02 декабря 2015, 05:03
modx.pro
2 028
Поблагодарить автора Отправить деньги
Реклама

Комментарии: 7

Николай Загумённов
Николай Загумённов Проверенный
02 декабря 2015, 08:04
Там получается так, что стоимость доставки берется не из базы, а считается уже на стр корзины и потом прибавляется.
    Воеводский Михаил
    Воеводский Михаил Проверенный
    02 декабря 2015, 08:29
    Стоимость считается на фронте на JS?
    Если так, необходим собственный класс доставки, который принимает стоимость из браузера, но очень это криво выглядит. Нужно больше подробностей.
      Павел Гвоздь
      Павел Гвоздь Эксперт
      02 декабря 2015, 08:38
      Нужно больше подробностей.
      Битва экстрасенсов закончилась. Все экстрасенсы разъехались. ;)
      Николай Загумённов
      Николай Загумённов Проверенный
      02 декабря 2015, 09:28
      Да, с JS, надо было дописать. JS и выдает итоговую стоимость доставки в зависимости от удаленности от центра города.
      не из базы, а считается уже на стр корзины
      Знаю, что криво, но другого пути не вижу. Как сделать чтобы этот класс принимал значение из браузера?
        Воеводский Михаил
        Воеводский Михаил Проверенный
        02 декабря 2015, 09:41
        Отправить AJAX запрос из браузера, отловить запрос сниппетом или плагином, запустить обработку. После всего этого вызвать JS метод Order.getCost();
          Николай Загумённов
          Николай Загумённов Проверенный
          02 декабря 2015, 11:41
          Спасибо за пинок)
          Сделал, работает. Я не нашел ничего умного кроме как сохранять в сессию, а в кастомном классе доставки взять оттуда стоимость=)
          Сниппет:
          <?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);
          }
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    7