当前位置: 技术文章>> shopify应用实战开发之在shopify中展示商品列表

文章标题:shopify应用实战开发之在shopify中展示商品列表
  • 文章分类: 后端
  • 17385 阅读
系统学习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店铺的商品.


推荐文章