sv2109

  • записи
    52
  • комментариев
    9
  • просмотра
    5 373

API система OpenCart

sv2109

3 493 просмотра

8a5da52ed126447d359e70c05721a8aa.pngAPI сиcтема в OpenCart появилась со второй версии OpenCart. Она дает возможность обмениваться с сайтом на OpenCart данными на программном уровне.

 

 

 

Как это работает?

В админ панели (Меню->Настройки->Пользователи->API) есть возможность создавать новые API ключи с помощь которых мы можем обращаться к OpenCart.

 

Для каждого ключа мы можем указать:

  • название ключа
  • сгенерировать сам ключ
  • включить или выключить его
  • указать IP адреса, с которых можно обращаться с этим ключем
  • посмотреть сессии этого ключа

Имея ключ можно из своего приложения обратиться к OpenCart.

 

Сначала авторизация 

Для того чтобы начать пользоваться API сначала нужно авторизироваться в магазине:

$apiKey = 'dzL3oaoqLHXCT3ZEyS4u3in3urBrUAD1kLagTFihrKN8D1XUQewGsxSOSWzibnWs4F414PPxmMuDD';
 
$curl = curl_init( 'http : // localhost/opencart/2101/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 {
  // обработка ошибки
  // var_dump($response)
}

Теперь, получив от сервера токен, мы можем, используя этот токен,  обращаться дальше к этому серверу, слать другие запросы. Например, этот запрос добавляет новый товар в корзину:

$curl = curl_init( 'http :// localhost/opencart/2101/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);

 

Что можно сделать в OpenCart c помощью API?

К сожалению, пока не густо. На данный момент это только операции с корзиной. 
Мы можем:

  • положить товар(ы) в корзину
  • посмотреть содержимое
  • изменить валюту
  • добавить купоны
  • добавить методы доставки  и оплаты
  • добавить заказ 

Если этих возможностей вам мало, то вы всегда можете расширить их, создав свои собственные API классы, с помощью которых получить или записать свои данные. 

 

Немного критики:

  • очень мало API методов, с помощью API пока можно разве что программно "купить" какой-то товар, больше ничего API "из коробки" сделать не позволяет
  • слабые возможности API - нету возможности назначить API ключ для какого-то конкретного метода, который будет по этому API доступен, нету нормального лога запросов, который бы показывал кто с какого IP по какому API что запрашивал и что получал в ответ итд.
  • для API ключа обязательно указывать IP, а что если IP динамический? возможности создать API ключ для всех IP нету. 
  • неудобные ошибки, которые возвращает сервер, иногда это строка иногда объект 'error' из свойством 'key', иногда 'warning', иногда другими, это значительно усложняет обработку ошибок

 

Но конечно же, все это не очень большие недостатки, очень хорошо, что функционал API появился в OpenCart, все остальное несложно дописать, например те же методы, при необходимости можно написать любой за 15 минут. И хочеться надеяться, что этот функционал и дальше будет развиваться в OpenCart.

 

---

Мои модули для OpenCart можно скачать тут: https://freecart.pro/sv2109/

 


0


0 комментариев


Нет комментариев для отображения

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас
  • Актуальные темы на форуме

  • Последние сообщения

    • Здравствуйте! Пол года назад открыл Интернет-Магазин на  Opencart 2.1.0.1 Сейчас решил изменить простой список подкатегорий - именно тот, который выводится в отдельном окне при нажатии например на категорию в меню. Знаю что размер шрифта и цвет можно задать в файле "stylesheet.css" и вполне могу сам это сделать, но не могу найти в этом файле раздел, в котором описываются стили для вывода подкатегории в отдельном окне. Ведь откуда то берется цвет шрифта а также цвет при наведении на текст! Подскажите пожалуйста - от куда подтягиваются настройки цвета и размера шрифта подкатегории, которая выводится в отдельном окне?   Заранее благодарен, Бычков Виталий
    • в опенкарте, в самом движке, это не реализовано
      + артикул это как идентификатор товара, поэтому для разных артикулов нужны разные товары, на некоторых сайтах так реализовано напр. для каждого цвета товара отдельный артикул и отдельный товар. 
    • Возможно ли создать опцию, чтобы при выборе размера менялся и артикул? Если возможно, то как это сделать?