Изучение API REST в OpenCart 2.0: часть 1

Изучение API REST в OpenCart 2.0

От автора: в новой крупной версии OpenCart множество интересных функций, начиная от полностью отзывчивого дизайна во front-end and back-end и заканчивая системой уведомлений о событиях. Одной из самых сильных функций среди них является внедрение REST API.

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

API REST позволяет сторонним системам беспрепятственно взаимодействовать с магазином OpenCart. Что же насчёт размещения заказов в вашем магазине с помощью приложения iOS / Android? Фактически, вы могли бы думать о любой системе независимо от технологии, на которой она построена! Теперь интеграция возможна с набором API, предоставляемым OpenCart 2.0.

В этой части я продемонстрирую использование API-интерфейсов, используя библиотеку PHP cURL. Итак, для запуска примеров нам понадобится эта библиотека. Очевидно, нужна последняя версия OpenCart равная 2.0!

Создание пользовательских учетных данных API

Прежде чем мы начнем использовать API, для этого нам нужно настроить «API User». Без этого мы не сможем получить к нему доступ, и получим отказ в разрешении. Итак, давайте сделаем это. Перейдите в System> Users> API, там будут перечислены все пользователи API.

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию

Нажмите + в правом верхнем углу, чтобы добавить нового пользователя API.

Как вы можете видеть, нужно ввести имя пользователя, пароль и статус. Также можно использовать кнопку Generate, чтобы создать сложную строку пароля, как я уже сделал! Кроме того, убедитесь, что для параметра Status установлено значение Enabled. Сохраните изменения, и всё отлично!

Теперь, когда мы настроили пользователя API, мы можем начать изучение!

Настройка общих файлов

В этой серии мы увидим основные основные примеры PHP. Давайте сделаем так, чтобы мы установили файл, который содержит общий код, и избежали дублирования!

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

<?php
function do_curl_request($url, $params=array()) {
  $ch = curl_init();
  curl_setopt($ch,CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/apicookie.txt');
  curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/apicookie.txt');
 
  $params_string = '';
  if (is_array($params) && count($params)) {
 foreach($params as $key=>$value) {
 $params_string .= $key.'='.$value.'&'; 
 }
 rtrim($params_string, '&');
 
 curl_setopt($ch,CURLOPT_POST, count($params));
 curl_setopt($ch,CURLOPT_POSTFIELDS, $params_string);
  }
 
  //execute post
  $result = curl_exec($ch);
 
  //close connection
  curl_close($ch);
 
  return $result;
}

Как можем видеть, в нем содержится только одна функция, do_curl_request, которая делает вызов CURL URL-адресу, переданному $url аргументом. Второй аргумент — это массив параметров, если вам нужно выполнить POST-данные.

Другие важные моменты, которые нужно отметить, — это настройки CURLOPT_COOKIEJAR и настройки CURLOPT_COOKIEFILE. Они задают файл, в котором будут храниться и считываться файлы cookie, поскольку нам нужно делать аутентифицированные вызовы. Конечно, необходимо изменить путь /tmp/apicookie.txt в соответствии с вашими системными настройками. Убедитесь, что он доступен для записи на веб-сервере!

Итак, функция возвращает ответ по запросу CURL!

Как войти

Очевидно, что первое, что нужно сделать, — начать сеанс, и вам нужно будет использовать этот login метод. Давайте посмотрим на пример. Создаём login.php файл со следующим содержимым.

<?php
require "common.php";
 
// set up params
$url = 'http://your-opencart-store-url/index.php?route=api/login';
 
$fields = array(
  'username' => 'demo_api_user',
  'password' => '5fbYF8oDteYSJhMQnXuxGB7jx7Ujk7zjJxuCwDSmZx3NJ47ARxW8Je70bYQrfpsfVamVXaMJ4GtHPxnu1ZX41JQN5Vy6V2XwaS6u5dMO6QDArRBc7P7RnriYyancCowlKVTNVUelIKGKmsTBZiPdcYAHX8n6pnSPvNa1wqfQaieKWux6fFZxIYlCstATe02UtFxvhzF82St2Cw0EhfC2rcFwDjQVAowMG1tGDAsIhz8EZa6ngSreD2qZQnqxg8Lm',
);
 
$json = do_curl_request($url, $fields);
$data = json_decode($json);
var_dump($data);

Для начала мы включили файл common.php, созданный в предыдущем разделе. Затем $url переменная определяет URL-адрес входа API в хранилище OpenCart. Далее $fields массив содержит учетные данные пользователя API, созданные ранее. И наконец, мы вызываем do_curl_request метод для входа в систему.

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию

Если все настроено правильно, вы должны увидеть успешный запуск «Success: API session successfully started!»

Поздравляю! Вы только что использовали API REST для входа в OpenCart!

Как добавить товар в корзину

Итак, теперь, когда мы вошли в систему, давайте начнем добавлять продукты в нашу корзину! Создайте файл add_product.php со следующим содержимым.

<?php
require "common.php";
 
// set up params
$url = 'http://your-opencart-store-url/index.php?route=api/cart/add';
$fields = array(
  'product_id' => '51',
  'quantity' => '1'
);
 
$json = do_curl_request($url, $fields);
$data = json_decode($json);
var_dump($data);

Опять же, это довольно простой материал! Вам нужно пройти product_id и quantity параметры, чтобы добавить товар в корзину. Если всё правильно выполнено, появится сообщение: «Success: You have modified your shopping cart!»

Как отредактировать продукт в корзине

Прежде чем двигаться дальше, давайте попробуем понять, как OpenCart хранит информацию о продукте в объекте корзины. Вот как выглядит корзина.

stdClass Object
(
 ...
 [products] => Array
 (
 [0] => stdClass Object
 (
 [key] => YToxOntzOjEwOiJwcm9kdWN0X2lkIjtpOjUwO30=
 [product_id] => 51
 [name] => Demo Product
 [model] => demoproduct
 [option] => Array
 (
 )
 [quantity] => 1
 [stock] => 1
 [shipping] => 1
 [price] => $10.00
 [total] => $20.00
 [reward] => 0
 )
 )
 ...
)

Товар хранится в виде массива, на который ссылается products ключ. Кроме того, key зашифрован, поэтому в первую очередь для редактирования любой записи продукта в объекте вам нужно будет получить связанный key использующий product_id!

Теперь давайте рассмотрим, как отредактировать число продукта в корзине. Создайте файл edit_product.php и вставьте следующее содержимое в этот файл.

<?php
require "common.php";
 
// get list of products from the "Cart"
$url = 'http://your-opencart-store-url/index.php?route=api/cart/products';
$json = do_curl_request($url);
$products_data = json_decode($json);
 
// fetch "key" of the product we want to edit
$product_key = $products_data->products[0]->key;
 
// edit the product in the "Cart" using "key"
$url = 'http://your-opencart-store-url/index.php?route=api/cart/edit';
$fields = array(
  'key' => $product_key,
  'quantity' => '2'
);
$json = do_curl_request($url, $fields);
$data = json_decode($json);
var_dump($data);

В приведенном выше примере мы сделали два вызова CURL. Первый, чтобы забрать все товары в корзину, а второй — обновить число продукта уже в самой корзине!

Чтобы отредактировать любой продукт, вам понадобится $key продукт, и его можно найти, извлекая полный массив продуктов из сеанса корзины.

Для простоты я использовал ключ, напрямую используя индекс 0. Но вам, конечно, нужно найти его, используя product_id.

$product_key = $products_data->products[0]->key;

Остальное просто: мы передаем key и quantity так, как мы хотели бы обновить продукт!

Опять же, вы должны увидеть «Success: You have modified your shopping cart!» в ответе, чтобы убедиться, что количество обновлено должным образом.

В следующей части этого руководства мы рассмотрим остальные примеры создания заказа!

Заключение

Сегодня мы рассмотрели важную функцию «REST API» в OpenCart, прошли процесс создания пользователя API, а позже мы рассмотрим некоторые практические примеры, чтобы понять использование API. Я хотел бы услышать ваши мысли об этой захватывающей функции!

Автор: Sajal Soni

Источник: http://code.tutsplus.com/

Редакция: Команда webformyself.

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

OpenCart: быстрый старт, первые результаты

Создайте свой первый интернет-магазин на OpenCart с полного нуля!

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree