系统学习shopify开发,推荐小册:《Shopify应用实战开发》
这本小册将领您进入 Shopify 平台,学习开发出Shopify应用程序。作为全球最受欢迎的电子商务平台之一,Shopify 提供了一个强大的基础架构,让开发者可以创建个性化、功能丰富的在线商店。本课程将专注于 Shopify 应用开发,为您提供全面的指导和实践机会,打造功能齐全的app,帮助商家实现收益增长,作为个人开发者从中赚取收益。
系统学习shopify开发,推荐小册:《Shopify应用实战开发》
这本小册将领您进入 Shopify 平台,学习开发出Shopify应用程序。作为全球最受欢迎的电子商务平台之一,Shopify 提供了一个强大的基础架构,让开发者可以创建个性化、功能丰富的在线商店。本课程将专注于 Shopify 应用开发,为您提供全面的指导和实践机会,打造功能齐全的app,帮助商家实现收益增长,作为个人开发者从中赚取收益。
系统学习shopify开发,推荐小册:《Shopify应用实战开发》
这本小册将领您进入 Shopify 平台,学习开发出Shopify应用程序。作为全球最受欢迎的电子商务平台之一,Shopify 提供了一个强大的基础架构,让开发者可以创建个性化、功能丰富的在线商店。本课程将专注于 Shopify 应用开发,为您提供全面的指导和实践机会,打造功能齐全的app,帮助商家实现收益增长,作为个人开发者从中赚取收益。
学习更多专业shopify知识,点此查看: shopify应用实战开发
access token的key存储规则
由于我们获取到的Access Token的保存规则是根据shop_id来设置的,如下:
shop_id示例:
shopify_access_token_xn-4gq539cczg1le.myshopify.com
不同的店铺,安装了我们的app,都要给该店铺获取对应的access token,为了区别这些店铺,我们将access token的规则以shop_id来拼接。
shop_id的传递
如上一小节我们展示的首页,现在要给商品加一个链接,通过shopify的api去查询商品列表,这时候我们就要获取该店铺的access token。因为从商家跳转到app的时候,在get参数中会传递shop,有了shop就可以拼接出该店铺存的token的key,从而获取该店铺的access token。
注意
shopify get参数传递的key为shop,而我们这里叫shop_id,它们是指的同一个字段。
我们在IndexController的index方法中是可以拿到shop_id的,之后在我们的模板中,比如商品列表这个链接,我们如何获取指定店铺的access token呢?
有两种方式:
一种是从控制器将shop_id传递到模板中,在添加链接的时候,同时把这个shop_id带上。
另一种是到index方法中获取到shop_id时,将其它设置到session中保存。
我们首先修改IndexController的index方法,在显示模板前,添加session部分内容:
// 查询token,不存在,跳转到授权页面
if (!$tokenInfo) {
return redirect($grantUrl);
} else {
//设置session
session('shop_id',$shop);
return $this->fetch();
}之后,我们在其它的控制器中,就可以通过session来获取当前的shop_id.
建立Product控制器
application\index\controller\Product.php
<?php
namespace app\index\controller;
use think\Controller;
class Product extends Controller
{
/**
* 初始化配置参数
*/
public function initialize()
{
parent::initialize();
$this->appHost = config('app_host');
}
/**
* 商品列表
*/
public function index()
{
$shopId = session('shop_id');
$this->assign('shopId', $shopId);
return $this->fetch();
}
}Product 模板
application\index\view\product\index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>商品列表</title>
</head>
<body>
<h3>商品列表</h3>
<p>当前Shop ID: {$shopId}</p>
</body>
</html>修改index链接
application\index\view\index\index.html
<div class="row">
<div class="column title product-list">
<a href="{:url('index/product/index')}" target="_blank">商品列表</a>
</div>
</div>首页模板中我们主要修改了商品列表的链接,链接到Product控制器
测试

我们点击首页商品列表的链接,跳转到product控制器,并从session中获取shop_id,传递到模板中显示。
下一小节,我们将在Product中通过api获取shopify店铺的商品.