+ Ответить в теме
Показано с 1 по 12 из 12
  1. #1
    Viarts Man styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность
    Регистрация
    04.08.2011
    Адрес
    Волгоград
    Сообщений
    75
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    21 Всего
    Загрузки
    13
    Закачек
    0
    Вес репутации
    4

    По умолчанию Настройка EMS

    Друзья, кто нибудь настраивал расчет доставки EMS? У них на сайте есть api, ничего сложного, формируется строка и приходит ответ, ввиде:

    PHP код:
    jsonp1236078926969(
    {
    "rsp":
    {
    "stat":"ok","price":"690","term":
    {
    "min":4,"max":6
    }
    }
    }

    но вот принцип работы в виарте я не могу понять, подскажите каким образом виарт может принять эти данные и как он их может вывести при оформлении заказа? кто-нибудь сталкивался?
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  2. #2
    Viarts Man Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее
    Регистрация
    23.11.2010
    Адрес
    Краснодар
    Сообщений
    329
    Сказали 'Спасибо' за это сообщение. :
    1 за это сообщение
    147 Всего
    Загрузки
    11
    Закачек
    0
    Вес репутации
    22

    По умолчанию Re: Настройка EMS

    Копать надо в сторону javascript, ajax, json...

    А с полученным ответом-строкой сделать что-то типа такого:
    Код HTML:
    var otvet_servera = 'jsonp1236078926969({"rsp":{"stat":"ok","price":"690","term":{"min":4,"max":6}}})';
    
    var str = otvet_servera.substr(18, 999);
    var obj = eval(str);
    	
    var stat     = obj.rsp.stat;
    var price    = obj.rsp.price;
    var term_min = obj.rsp.term.min;
    var term_max = obj.rsp.term.max;
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  3. Сказали спасибо:

    nemo (16.11.2011)

  4. #3
    Viarts Man styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность
    Регистрация
    04.08.2011
    Адрес
    Волгоград
    Сообщений
    75
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    21 Всего
    Загрузки
    13
    Закачек
    0
    Вес репутации
    4

    По умолчанию Re: Настройка EMS

    Это понятно что нужна обработка пришедшей строки, но как полученные данные отдаются виарту для отображения стоимости доставки, они загоняются в какие то переменные определенные, куда записываются, передаются, вот что мне не понятно?!
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  5. #4
    Viarts Man Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее
    Регистрация
    23.11.2010
    Адрес
    Краснодар
    Сообщений
    329
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    147 Всего
    Загрузки
    11
    Закачек
    0
    Вес репутации
    22

    По умолчанию Re: Настройка EMS

    Тогда надо изучать предустановленные способы доставки - UPS, USPS, FedEx и т.д. И на их основе писать php-скрипт.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  6. #5
    Viarts Man styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность
    Регистрация
    04.08.2011
    Адрес
    Волгоград
    Сообщений
    75
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    21 Всего
    Загрузки
    13
    Закачек
    0
    Вес репутации
    4

    По умолчанию Re: Настройка EMS

    Цитата Сообщение от Aleksey Посмотреть сообщение
    Тогда надо изучать предустановленные способы доставки - UPS, USPS, FedEx и т.д. И на их основе писать php-скрипт.
    смотрел, EMS возвращает json строку, облазил, не смог понять как принять эту строку и засунуть в переменную php, вообщем отложил идею на неопределенное время...
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  7. #6
    Viarts Man Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее Aleksey обеспечил(а) себе прекрасное будущее
    Регистрация
    23.11.2010
    Адрес
    Краснодар
    Сообщений
    329
    Сказали 'Спасибо' за это сообщение. :
    2 за это сообщение
    147 Всего
    Загрузки
    11
    Закачек
    0
    Вес репутации
    22

    По умолчанию Re: Настройка EMS

    Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 60 сообщение(ий)):
    У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.
    Последний раз редактировалось Aleksey; 14.11.2011 в 21:01.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  8. Сказали спасибо:

    nemo (16.11.2011) , styou (14.11.2011)

  9. #7
    Viarts Man styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность
    Регистрация
    04.08.2011
    Адрес
    Волгоград
    Сообщений
    75
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    21 Всего
    Загрузки
    13
    Закачек
    0
    Вес репутации
    4

    По умолчанию Re: Настройка EMS

    Спасибо. Стимул к танцам с бубном) Буду пробовать.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  10. #8
    Viarts Man styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность
    Регистрация
    04.08.2011
    Адрес
    Волгоград
    Сообщений
    75
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    21 Всего
    Загрузки
    13
    Закачек
    0
    Вес репутации
    4

    По умолчанию Re: Настройка EMS

    Итак пробую написать модуль EMS.
    Благодаря Алексею опять начал капаться в коде.

    1) Создаю Способ доставки:


    2) Создаем файл shipping/ems.php

    насколько понял принцип, перед оформлением заказа, обрабатывается файл ems.php, следовательно нам нужно в него передать все требуемые данные для расчета доставки.

    Теперь код в ems.php:
    PHP код:
    <?php
    $dostavka 
    //код 1 : получение города или области доставки ;
    $weight //код 2 : получение weight_total заказа (общего веса);
    $from "city--volgograd"// В моем случае всегда будет отправляться из этого города, константа!

        
    $Curl curl_init();
        
    $CurlOptions = array(
            
    CURLOPT_URL=>"http://emspost.ru/api/rest?callback=jsonp1236078926969&method=" $module_params["method"]."&from=".$from."&to=".$dostavka."&weight=".$weight,
            
    CURLOPT_FOLLOWLOCATION=>false,
            
    CURLOPT_POST=>false,
            
    CURLOPT_HEADER=>false,
            
    CURLOPT_RETURNTRANSFER=>true,
            
    CURLOPT_CONNECTTIMEOUT=>15,
            
    CURLOPT_TIMEOUT=>100
        
    );
        
    curl_setopt_array($Curl$CurlOptions);
        if (
    false === ($Result=curl_exec($Curl)))
        {
            echo(
    "Ошибка.");
            return;
        }

        
    curl_close($Curl);
        
    echo(
    $Result."<br>");
        
    // Вырезаем то, что внутри круглых скобок
        
    if (preg_match("/.+\((.+)\)/"$Result$matches))
        {
            
    $json_str   $matches[1];
            
    $json_array json_decode($json_strtrue);
            
    //        echo($json_str."<br>");
    //        echo($json_array["rsp"]["stat"]."<br>");
    //        echo($json_array["rsp"]["price"]."<br>");
    //        echo($json_array["rsp"]["term"]["min"]."<br>");
    //        echo($json_array["rsp"]["term"]["max"]."<br>");

    код 3 возвращаем данные о стоимости в оформление заказа     
        
    }
        else
            echo(
    "Неверный ответ сервера EMS.");
        

        
    ?>
    Последний раз редактировалось styou; 14.11.2011 в 23:16.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  11. #9
    Viarts Man styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность
    Регистрация
    04.08.2011
    Адрес
    Волгоград
    Сообщений
    75
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    21 Всего
    Загрузки
    13
    Закачек
    0
    Вес репутации
    4

    По умолчанию Re: Настройка EMS

    Собственно вопрос в следующем:
    код 1:
    PHP код:
    $sql "SELECT city FROM va_orders WHERE order_id=X"
    $db->query($sql); 
    $db->next_record(); 
    $dostavka $db->f("city"); 
    как при выполнении данного файла (ems.php) нам определить, передать номер заказа, чтоб подставить его вместо X?

    код 2:
    PHP код:
    $sql "SELECT weight FROM va_orders_items WHERE order_id=X"
    $db->query($sql); 
    $db->next_record(); 
    $weight $db->f("weight"); 
    те же грабли, что и в первом случае, как передать и определить order_id

    код 3:
    анализируя примеры других способов доставки (знаний php мало) предполагаю, что возвращается вся ввиде xml, но вот как сократить тот код в примерах до минимального, чтоб вернуть только стоимость не могу понять.
    Последний раз редактировалось styou; 14.11.2011 в 23:29.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  12. #10
    Viarts Man styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность
    Регистрация
    04.08.2011
    Адрес
    Волгоград
    Сообщений
    75
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    21 Всего
    Загрузки
    13
    Закачек
    0
    Вес репутации
    4

    По умолчанию Re: Настройка EMS

    Почти готов модуль, если найдутся люди готовые доработать его, предлагаю доделать и выложить в свободном доступе.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  13. #11
    Viarts Man styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность
    Регистрация
    04.08.2011
    Адрес
    Волгоград
    Сообщений
    75
    Сказали 'Спасибо' за это сообщение. :
    1 за это сообщение
    21 Всего
    Загрузки
    13
    Закачек
    0
    Вес репутации
    4

    По умолчанию Re: Настройка EMS

    При доработке модуля нашел неточность в виарте, в субъектах РФ, на протяжении последних 5 лет произошли изменения вплане объединения некоторых областей и округов в следствии чего требуется в виарте сделать соответствующие изменения.

    Агинский Бурятский автономный округ - теперь Забайкальский край
    Усть-Ордынский Бурятский автономный округ - это теперь Иркутская область
    Читинская область - теперь Забайкальский край
    Эвенкийский автономный округ - это теперь Красноярский край
    Коми-Пермяцкий автономный округ - это теперь Пермская область
    Корякский автономный округ - это теперь Камчатский край
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  14. Сказали спасибо:

    Anna (29.11.2011)

  15. #12
    Viarts Man styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность styou - весьма и весьма положительная личность
    Регистрация
    04.08.2011
    Адрес
    Волгоград
    Сообщений
    75
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    21 Всего
    Загрузки
    13
    Закачек
    0
    Вес репутации
    4

    По умолчанию Re: Настройка EMS

    Вроде готово в первом приближении. Предлагаю протестировать:
    Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 33 сообщение(ий)):
    У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.


    p.s. на сайте не на весь товар проставлен вес, если у товара отсутствует значение веса, то стоимость EMS доставки для него не рассчитывается.
    Такая же ситуация и с превышением веса, за исключением того что вообще EMS доставка не высвечивается в вариантах доставки.
    Последний раз редактировалось styou; 29.11.2011 в 22:32.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо


 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

     

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Back to top