系统学习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店铺的商品.