Вход на сайт

Регистрация на сайте автоматическая при оформлении первого заказа

Как пользоваться API в Opencart 2.x


В OpenCart 2.x была представлена новая система API. Это позволяет удаленно управлять вашим магазином на OpenCart 2 для интеграции системы в другие среды, например мобильные приложения. В этой статье, мы объясним, как  работает API и как его использовать. С выходом новой версии Opencart был сделан большой прогресс в ветке API и хотя это - ни в коем случае заключительная версия, мы полагаем, что это - хорошая идея, чтобы познакомиться с работой этой системы.

Для того, чтобы использовать любой из методов API, вам нужно будет сначала авторизоваться. Для авторизации вам нужно получить ключ API в админке сайта Меню->Настройки->Пользователи->API. После того, как вы получили ключ - вы готовы начать работать с API.

Пример авторизации в API

$apiKey = 'qwqL3oaoqLHXCT3ZEyS4u3in3urBrUAD1kLagTFihrKN8D1XUQewGsxSOSWzibnWs4F414PPxmMuRF';
 
$curl = curl_init( 'http://site.ru/index.php?route=api/login/' );
 
$post = array ( 'key' => $apiKey );
 
curl_setopt_array( $curl, array(
  CURLOPT_RETURNTRANSFER=> TRUE,
  CURLOPT_POSTFIELDS      => $post ) );
 
$response = json_decode(curl_exec( $curl )); curl_close($curl); if (isset($response->token)) { $token = $response->token; } else { // print_r($response) }

В ответ вы получите токен, который потом будете отправлять в каждом запросе в GET параметре token.

Все контроллеры API находятся в api директории, так что ваш базовый URL, должен выглядеть подобным этому: site.ru/index.php?route=api/controller/method. Здесь site.ru нужно заменить с вашим фактическим доменным именем и методом контроллера или нужным контроллером и методом из API. Имейте в виду, что часть метода необязательна. Если вы хотите вызвать функцию по умолчанию index() , вы можете не писать этот метод в URL.

Добавление товара в корзину через API Opencart 2

После успешного логина, вы можете взаимодействовать с API. Одно из возможностей это добавление товара в корзину, используя метод cart/add. URL для этого действия есть: site.ru/index.php?route=api/cart/add. Основными POST параметрами которые передаються в форме есть product_id и quantity. Вы можете также передавать массив опций option, но необьязательно. 

Пример

$curl = curl_init( 'http://site.ru/index.php?route=api/cart/add/&token=' . $token );
 
$post = array ( 'product_id' => 41 );
 
curl_setopt_array( $curl, array(
  CURLOPT_RETURNTRANSFER=> TRUE,
  CURLOPT_POSTFIELDS      => $post ) );
 
$response = json_decode(curl_exec( $curl )); curl_close($curl);

Функции API Opencart 2.x

Мы не можем рассказать про все доступные функции API здесь, но вы можете сами посмотреть какие методы API можно использовать, для этого просмотрите файлы в папке catalog/controller/api/. Таким образом вы будете иметь понятие того, что вы можете сделать с помощью API.

SDK библиотека для работы с API Opencart 2

Существует библиотеки SDK, чтобы помогать нам работать с API без знаний о cookie, GET / POST параметрах и их именах . Вы можете скачать таку библиотеку тут https://github.com/iSenseLabs/OpenCartAPI. Главный класс под названием OpenCart находится в пространстве имен OpenCart.

Для того, чтобы залогиниться, вам нужно назвать порядковую функцию контроллера логина, так URL запрос будет: site.ru/index.php?route=api/login. Тип запроса должен быть POST и требуемые POST переменные -"username" и "password". Каждый метод API возвращает форматированные данные JSON. В случае метода логина, это будет или возвращение сообщения успеха, или сообщение об ошибке. Так, проверяя, имеет ли возвращенный объект в ответе значение успеха или ошибки будет говорить вам, был ли логин успешен или нет. Также вернется cookie, которое является значением ID вашей сессии. Для того, чтобы поддерживать сессию, вам нужно будет извлечь cookie из ответа HTTP и посылать их с каждым последовательным запросом.

Пример авторизации и добавления товара в корзину:

$oc = new OpenCart\OpenCart('site.ru');
if ($oc->login('your_username', 'your_password')) {
   $oc->cart->add(40, 3);
   $cart = $oc->cart->products();
   foreach ($cart['products'] as $product) {
       echo $product['name']."\n";
   }
} else {
   echo $oc->getLastError();
}

Вы можете также сохранить свою сессию для более позднего использования,добавивт второй параметр к конструктору класса OpenCart. Это должно быть именем файла, где будет храниться cookie. Вы можете указать это где-нибудь в вашей файловой системе. Вот - пример самой простой формы :

$oc = new OpenCart\OpenCart('site.ru', 'cookiejar');

Примеры всех методов в этой библиотеке, в том числе оформление заказа через API Opencart 2.x:

OpenCart->cart->add($product, $quantity = 1, $option = array());
OpenCart->cart->edit($key, $quantity);
OpenCart->cart->remove($key);
OpenCart->cart->products();

OpenCart->order->add($shipping_method = '', $comment = '', $affiliate_id = '', $order_satus_id = '')
OpenCart->order->edit($order_id, $shipping_method = '', $comment = '', $affiliate_id = '', $order_status_id = '')
OpenCart->order->delete($order_id)
OpenCart->order->history($order_id, $order_status_id = '', $notify = '', $append = '', $comment = '')

OpenCart->payment->address($firstname = '', $lastname = '', $company = '', $address_1 = '', $address_2 = '', $postcode = '', $city = '', $zone_id = '', $country_id = '')
OpenCart->payment->methods()
OpenCart->payment->method($payment_method)

OpenCart->shipping->address($firstname = '', $lastname = '', $company = '', $address_1 = '', $address_2 = '', $postcode = '', $city = '', $zone_id = '', $country_id = '')
OpenCart->shipping->methods()
OpenCart->shipping->method($shipping_method)

OpenCart->reward->add($reward)
OpenCart->reward->maximum()
OpenCart->reward->available()

OpenCart->voucher->apply($voucher)
OpenCart->voucher->add($voucher_from_name = '', $from_email = '', $to_name = '', $to_email = '', $voucher_theme_id = '', $message = '', $amount = '')

OpenCart($url, $sessionFile = '')
OpenCart->getUrl($method)
OpenCart->getCookie()
OpenCart->getLastError()
OpenCart->login($username, $password)
OpenCart->coupon($coupon)
OpenCart->customer($customer_id = 0, $customer_group_id = 0, $firstname = '', $lastname = '', $email = '', $telephone = '', $fax = '')


Дата публикации:
Популярные модули Opencart 2
Модуль Упрощенный заказ Custom Quick Checkout на Opencart 2.x

Модуль Упрощенный заказ Custom Quick Checkout на Opencart 2.x

Модуль упрощенного заказа Custom Quick Checkout Opencart 2 - по сути модуль заказа на одной странице..

Всего 249 руб.

Модуль Заказ в 1 клик Opencart 2

Модуль Заказ в 1 клик Opencart 2

Модуль Быстрый заказ в 1 клик Opencart2 - очень удобное дополнение для вашего магазина.Позволяет упр..

Всего 249 руб.

Модуль Корзина Popup для Opencart 2

Модуль Корзина Popup для Opencart 2

Модуль popup-корзины товаров на Opencart 2. Попап окно появляеться после добавления товара в корзину..

Всего 249 руб.

Модуль Менеджер заказов Opencart 2

Модуль Менеджер заказов Opencart 2

Модуль Менеджер заказов Opencart 2.x - модуль для управления заказами из админки. Модуль позвол..

Всего 299 руб.

Модуль Import YML Opencart 2

Модуль Import YML Opencart 2

Модуль Import YML Opencart 2 - для импорта yml-файла с товарами в Ваш интернет-магазин. Импорт ..

Всего 249 руб.

Модуль Export YML - экспорт в Яндекс для Opencart 2

Модуль Export YML - экспорт в Яндекс для Opencart 2

Модуль экспорта товаров на площадку Яндекс.Маркет. Модуль YML Export Opencart 2.x. Позволяет генерир..

Всего 199 руб.

Модуль Горизонтальное мега-меню Opencart 2.x

Модуль Горизонтальное мега-меню Opencart 2.x

Модуль для формирования многоуровневого меню на основе категорий, производителей, товаров, страниц, ..

Всего 249 руб.

Модуль Вертикальное мегаменю для Opencart 2.x

Модуль Вертикальное мегаменю для Opencart 2.x

Модуль для создания вертикального мега-меню в колонке на Opencart 2.x. Очень многофункциональное доп..

Всего 249 руб.

Модуль Opencart Blog для Opencart 2.x

Модуль Opencart Blog для Opencart 2.x

Большим недостатком системы Opencart 2.x является отсутствие нормального блога записей. Ведь почти к..

Всего 299 руб.

Модуль Менеджер рассылки для Opencart 2

Модуль Менеджер рассылки для Opencart 2

Менеджер рассылки - модуль для управления подпиской и рассылкой, он поможет вам упростить процесс сб..

Всего 299 руб.

Модуль Стикеры на товары для Opencart 2

Модуль Стикеры на товары для Opencart 2

Модуль для прикрепления стикетов к товарам на Opencart 2. Стикеры - это бирки, ленты, штамы, звездоч..

Всего 249 руб.

Слайдер Revolution для Opencart 2.0 - 2.3

Слайдер Revolution для Opencart 2.0 - 2.3

Слайдер №1 для Opencart 2 - это Revolution Slider. Многофукциональный модуль для слайдшоу позволяет ..

Всего 299 руб.

Рекомендуем