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

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

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

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

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