Статьи

Изучите API REST в OpenCart 2.0: часть вторая

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

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

  • Мы создали учетные данные пользователя API из серверной части.
  • Мы настроили общий файл, который используется во всех примерах для выполнения вызовов curl.
  • Мы рассмотрели использование API, предоставив примеры «Как войти в систему», «Как добавить товар в корзину» и «Как редактировать товар в корзину».

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

Для начала добавим адрес доставки.

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
<?php
require «common.php»;
 
// set up params
$url = ‘https://your-opencart-store-url/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 . Вы должны увидеть «Успешно: адрес доставки был установлен!» сообщение в случае успеха!

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
<?php
require «common.php»;
 
// get list of shipping methods
$url = ‘http://your-opencart-store-url/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://your-opencart-store-url/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);

Чтобы установить способ доставки заказа, мы должны знать, какие способы доставки доступны в первую очередь. Таким образом, мы получили список методов доставки в первом вызове CURL в приведенном выше примере. Я предполагаю, что вы включили метод «Бесплатная доставка» в серверной части, так как мы собираемся использовать его в качестве метода доставки.

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

Наконец, вы должны увидеть «Success: Способ доставки был установлен!» метод как успех. Здесь важно отметить, что важен порядок, в котором вы устанавливаете «Адрес доставки» и «Способ доставки». Сначала вам нужно установить «Адрес доставки», а после этого вы должны позвонить, чтобы установить «Способ доставки».

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
<?php
require «common.php»;
 
// set up params
$url = ‘http://your-opencart-store-url/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);

Это практически идентично примеру «Адрес доставки», за исключением того, что он устанавливает адрес оплаты заказа. Вы должны увидеть «Успешно: Платежный адрес установлен!» в случае успеха.

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
<?php
require «common.php»;
 
// get list of payment methods
$url = ‘http://your-opencart-store-url/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://your-opencart-store-url/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 мы получили список способов оплаты и получили код метода оплаты «Оплата наложенным платежом». В следующем вызове payment_method мы передали код payment_method в качестве аргумента, необходимого для установки метода оплаты.

В результате вы должны увидеть «Успешно: Способ оплаты был установлен!»

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<?php
require «common.php»;
 
// set up params
$url = ‘http://your-opencart-store-url/index.php?route=api/customer’;
$fields = array(
  ‘firstname’ => ‘Sajal’,
  ‘lastname’ => ‘Soni’,
  ’email’ => ‘[email protected]’,
  ‘telephone’ => ‘1111111111’
);
 
$json = do_curl_request($url, $fields);
$data = json_decode($json);
var_dump($data);

Ничего необычного — мы только что передали необходимые поля клиента в API! Сообщение «Вы успешно изменили клиентов» должно дать вам подтверждение успеха.

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

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

01
02
03
04
05
06
07
08
09
10
11
12
<?php
require «common.php»;
 
// set up params
$url = ‘http://your-opencart-store-url/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. Не забудьте ознакомиться с нашими предложениями на рынке и не забудьте поделиться своими мыслями об этой захватывающей функции!