Вход на сайт

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

Как пользоваться 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
Модуль Заказ в 1 клик Opencart 2

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

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

Всего 239 руб.

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

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

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

Всего 278 руб.

Модуль Import YML Opencart 2

Модуль Import YML Opencart 2

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

Всего 239 руб.

Модуль Экспорт YML Opencart 2

Модуль Экспорт YML Opencart 2

Модуль экспорта товаров на площадку Яндекс.Маркет, Турбо-страницы и другие сервисы, которые принимаю..

Всего 319 руб.

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

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

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

Всего 239 руб.

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

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

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

Всего 239 руб.

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

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

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

Всего 319 руб.

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

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

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

Всего 278 руб.

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

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

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

Всего 319 руб.

Модуль Скидки для групп покупателей Opencart 2.x

Модуль Скидки для групп покупателей Opencart 2.x

Модуль Скидки для групп покупателей или Total Customer Group Discount для Opencart 2.x позволяет зад..

Всего 199 руб.

Модуль Отзывы о товарах Opencart 2

Модуль Отзывы о товарах Opencart 2

Модуль Отзывы о товарах на отдельной странице и в позиции на сайте для Opencart 2.0.Удобный модуль д..

Всего 159 руб.

Модуль Мультизагрузка картинок товара на Opencart 2

Модуль Мультизагрузка картинок товара на Opencart 2

Модуль позволяет загружать и выбирать одновременно несколько картинок для товара. По умолчанию в O..

Всего 199 руб.

Рекомендуем

×
Напишите нам, мы онлайн!