В этой серии мы обсуждаем 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’ => ‘sajalsoni@gmail.com’,   ‘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. Не забудьте ознакомиться с нашими предложениями на рынке и не забудьте поделиться своими мыслями об этой захватывающей функции!