探索OpenCart 2.0中的REST API:第一部分

您会在OpenCart的最新主要版本中看到许多激动人心的功能,从前端和后端的完全响应式设计到事件通知系统,等等。 其中最强大的功能之一就是REST API的引入。

在这个由两部分组成的系列文章中,我们将探索大多数可用的API,并使用它们来完成订单创建过程。 在第一部分中,我们将了解如何创建API用户凭证以及一些基本的API用法。

REST API允许第三方系统与OpenCart商店无缝交互。 如何使用iOS / Android应用在您的商店中下订单? 实际上,您可以考虑任何系统,而无需考虑其所基于的技术! 现在可以使用OpenCart 2.0提供的一组API进行集成。

在这一部分中,我将使用PHP cURL库演示API的用法。 因此,您需要安装PHP cURL库才能运行示例。 显然,您还将需要最新版本的OpenCart,即2.0!

创建API用户凭证

在开始使用API​​之前,我们需要为此设置“ API用户”。 否则,您将无法访问它,并且会收到权限被拒绝的错误。 因此,让我们进行设置。 导航到系统>用户> API ,它将列出所有可用的API用户。

列出API用户

单击右上角的+按钮以添加新的API用户。

添加新的API用户

如您所见,您需要输入UsernamePasswordStatus 。 您也可以使用“ 生成”按钮来创建复杂的密码字符串,就像我所做的一样! 另外,请确保将状态设置为Enabled 。 保存更改,您就可以开始了!

现在我们已经设置了API用户,我们可以开始探索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 ,它将对$url参数传递的URL进行CURL调用。 第二个参数是一个参数数组,以防您需要对数据进行POST。

要注意的其他重要事项是CURLOPT_COOKIEJARCURLOPT_COOKIEFILE设置。 这些设置将在其中存储和读取Cookie的文件。 因为我们需要进行经过身份验证的呼叫,所以这是必须的! 当然,您要根据系统设置更改路径/tmp/apicookie.txt 。 确保它也可被Web服务器写入!

最后,该函数通过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变量定义OpenCart商店的API登录URL。 接下来, $fields数组保存先前创建的API用户凭证。 最后,我们调用do_curl_request方法登录。

如果一切设置正确,您将看到“成功:API会话成功启动!” 消息中的响应。

恭喜你! 您刚刚在OpenCart中使用了登录REST API!

如何在购物车中添加产品

因此,既然我们已经登录,我们就开始在购物车中添加产品! 创建具有以下内容的文件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_idquantity参数以将产品添加到购物车中。 您应该看到“成功:您已经修改了购物车!” 消息成功的话!

如何在购物车中编辑产品

在继续进行之前,让我们尝试了解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也已加密,因此要编辑对象中的任何产品条目,您首先需要使用product_id来获取关联的key

现在,让我们看看如何编辑购物车中产品的数量。 创建文件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 ! 同样,您应该看到“成功:您已经修改了购物车!” 在响应中,以确保正确更新数量。

今天就这样。 在本教程的下一部分,我们将看到其余示例来创建订单!

结论

今天,我们研究了OpenCart中重要的“ REST API”功能。 我们经历了创建API用户的过程,随后我们探索了一些动手示例来了解API的用法。 我很想听听您对这个令人兴奋的功能的想法!

翻译自: https://code.tutsplus.com/tutorials/explore-rest-apis-in-opencart-20-part-one--cms-25122

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值