Opencart - Изучение Api Rest - 2 Часть

Тема в разделе "Общие вопросы", создана пользователем admin, 27 апр 2018.

  1. TopicStarter Overlay
    Online

    admin Команда форума Администратор

    Сообщения:
    2.680
    Симпатии:
    122.261
    Репутация:
    215
    В этой серии мы обсуждаем использование в OpenCart REST API. В первой части мы рассмотрели настройку учетных данных пользователя API из back-end. В этой части мы расширим его и рассмотрим остальные примеры, показывая, как установить данные о доставке, оплате и клиенте в корзине и разместим заказ.

    Если вы еще не прошли первую часть, я бы порекомендовал вам пройти ее. Давайте кратко рассмотри то, что мы уже сделали в данной серии.

    Создали учетные данные пользователя API из внешнего интерфейса.

    Создали общий файл, который используется во всех примерах для создания зависающих вызовов.

    Рассмотрели использование API, представив примеры «Как войти», «Как добавить продукт в корзину» и «Как отредактировать продукт в корзине».

    Сегодня мы продолжим изучение и рассмотрим еще несколько примеров, которые нам потребуются для создания полного заказа в OpenCart с использованием API. Начнем с того, где мы остановились в последней части, поэтому я расчитываю, что вы уже создали common.php, login.php, add_product.php и edit_product.php файлы.

    Как добавить информацию о доставке
    Для начала добавим адрес доставки.

    Как добавить адрес доставки
    Создайте файл add_shipping_address.php со следующим содержимым.

    Код:
    <?php
    require "common.php";
    // set up params
    $url = 'http://сайт.ру/index.php?route=api/shipping/address';
    $fields = array(
      'firstname' => 'Sajal',
      'lastname' => 'Soni',
      'address_1' => 'Abc Street, 105',
      'city' => 'Ahmedabad',
      'country_id' => '99',
      'zone_id' => '1485',
    );
    $json = do_curl_request($url, $fields);
    $data = json_decode($json);
    var_dump($data);
    Мы передаем все необходимые поля для адреса доставки в $fields массиве. Если всё правильно сделано, появится сообщение: «Success: Shipping address has been set!».

    Как добавить метод доставки
    Создайте файл add_shipping_method.php со следующим содержимым.

    Код:
    <?php
    require "common.php";
    // get list of shipping methods
    $url = 'http://сайт.ру/index.php?route=api/shipping/methods';
    $json = do_curl_request($url);
    $ship_methods_data = json_decode($json);
    // fetch "code" of the shipping method we want to add
    $ship_code = $ship_methods_data->shipping_methods->free->quote->free->code;
    // set up shipping method
    $url = 'http://сайт.ру/index.php?route=api/shipping/method';
    $fields = array(
      'shipping_method' => $ship_code // 'free.free'
    );
    $json = do_curl_request($url, $fields);
    $data = json_decode($json);
    var_dump($data);<br>
    Чтобы установить способ доставки заказа, мы должны знать, какие способы доставки доступны в первую очередь. Так мы получим список методов доставки в первом вызове CURL в приведенном выше примере. Я предполагаю, что вы включили метод «Бесплатная доставка» в back-end, поскольку мы будем использовать его в качестве способа доставки.

    В следующем вызове CURL мы передаём код shipping_method в качестве аргумента, который требуется для установки метода доставки.

    Появится сообщение: «Success: Shipping address has been set!», если всё сделано правильно. Здесь нужно отметить, что порядок, в котором мы устанавливаем «Адрес доставки» и «Метод доставки», очень важен. Сначала нужно установить «Адрес доставки», после чего установить «Метод доставки».

    Как добавить информацию об оплате
    Как добавить адрес платежа

    Создайте файл add_payment_address.php со следующим содержимым.

    Код:
    <?php
    require "common.php";
    // set up params
    $url = 'http://сайт.ру/index.php?route=api/payment/address';
    $fields = array(
      'firstname' => 'Sajal',
      'lastname' => 'Soni',
      'address_1' => 'Abc Street, 105',
      'city' => 'Ahmedabad',
      'country_id' => '99',
      'zone_id' => '1485',
    );
    $json = do_curl_request($url, $fields);
    $data = json_decode($json);
    var_dump($data);<br>
    Это почти идентично примеру «Адрес доставки», за исключением того, что он установит платежный адрес заказа. И снова, если всё сделано верно, появится сообщение: «Success: Shipping address has been set!».

    Как добавить метод оплаты
    Создайте файл add_payment_method.php со следующим содержимым.

    Код:
    <?php
    require "common.php";
    // get list of payment methods
    $url = 'http://сайт.ру/index.php?route=api/payment/methods';
    $json = do_curl_request($url);
    $payment_methods_data = json_decode($json);
    // fetch "code" of the payment method we want to add
    $payment_code = $payment_methods_data->payment_methods->cod->code;
    // set up payment method
    $url = 'http://сайт.ру/index.php?route=api/payment/method';
    $fields = array(
      'payment_method' => $payment_code // 'cod'
    );
    $json = do_curl_request($url, $fields);
    $data = json_decode($json);
    var_dump($data);
    Опять же, довольно похоже на то, что мы делали для примера «Метод доставки». В первом вызове CURL мы получили список способов оплаты и получили код способа оплаты «Наложенным платежом». В следующем вызове CURL мы передали payment_method код в качестве аргумента, который требуется для установки метода оплаты.

    В результате вы должны увидеть «»Success: Payment method has been set!».

    Как добавить данные клиента
    Перейдем к настройке персональных данных клиента. Создайте файл add_customer_data.php со следующим содержимым.

    Код:
    <?php
    require "common.php";
    // set up params
    $url = 'http://сайт.ру/index.php?route=api/customer';
    $fields = array(
      'firstname' => 'Siteru',
      'lastname' => 'Site',
      'email' => '[email protected]',
      'telephone' => '123456789'
    );
    $json = do_curl_request($url, $fields);
    $data = json_decode($json);
    var_dump($data);
    Ничего сверхсложного — мы просто передали необходимые поля для клиентов API! Сообщение «You have successfully modified customers» подтвердит успех.

    Итак, мы создали все для нашего заказа. Единственное, что нужно для его завершения — это сделать вызов API для создания заказа, и это тема нашего следующего раздела!

    Как создать заказ
    Создайте файл add_order.php со следующим содержимым.

    Код:
    <?php
    require "common.php";
    // set up params
    $url = 'http://сайт.ру/index.php?route=api/order/add';
    $fields = array(
      'shipping_method' => 'free.free'
    );
    $json = do_curl_request($url, $fields);
    $data = json_decode($json);
    var_dump($data);
    Хотя это довольно простой код для создания нового порядка, важно отметить, что вам нужно передать «Метод доставки» в качестве аргумента. Да, это немного странно, поскольку мы уже установили метод доставки в предыдущем примере, но именно так оно работает.

    Итак, это полный процесс создания заказа в OpenCart с использованием API REST. Есть также несколько API для создания купонов, вознаграждений и ваучеров, но для краткости я, пожалуй, опущу это!

    Заключение
    В этой серии мы обсудили API REST в OpenCart. Мы просмотрели примеры PHP cURL, чтобы увидеть использование API. Я надеюсь, что это поможет вам интегрировать сторонние системы с OpenCart. Не забудьте проверить наши предложения на рынке , и не забывайте делиться своими мыслями по поводу этой захватывающей функции!
     
  2. Offline

    Husagsm2 Пользователь

    Сообщения:
    18
    Симпатии:
    4
    Репутация:
    0
    Спасибо