当前位置: 技术文章>> shopify应用实战开发之通过api修改商品

文章标题:shopify应用实战开发之通过api修改商品
  • 文章分类: 后端
  • 27245 阅读
系统学习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具体商品的写权限:
config\shopify.php

<?php
/**
 * shopify app config
 */
return [
    'client_id' => 'e43a4992e8cd031fbec5ab7b68bdde21',
    'secret_key' => 'af392961c5274f359580d7c376dffdb4',
    'api_key' => '5159ee10-1c8b-4717-9016-6ba3e6d6b282',
    'api_scopes' => [
        'read_products',
        'write_products',
    ]
];

我们在前面生成access token的步骤中,传递的scope中包含了write_product权限,因此,可以调用修改商品的api.

api示例

接口地址:

/admin/api/2023-04/products/632910392.json

curl -d '{"product":{"id":632910392,"title":"New product title"}}' \
-X PUT "https://your-development-store.myshopify.com/admin/api/2023-04/products/632910392.json" \
-H "X-Shopify-Access-Token: {access_token}" \
-H "Content-Type: application/json"

上面的示例为修改一个商品的名称,我们就以这个示例作为演示。

api测试

我们以修改这个商品的名称为例,确认该商品的id为:8310269280534

说明
这个商品id我们不是靠猜的,也不是去后台看的,而是要先有商品列表,获取到商品id,然后再去调用商品修改的接口。

通过postman测试:

商品的名称在返回结果里显示,已经被修改了。

刷新商品列表页面查看:

这个商品的名称确实被修改了。

结合代码示例

这里,我们就不再去写这个代码了,代码的逻辑也比较简单,就是调用商品修改的接口。
如果我们想最快的完成这个代码,可以通过postman给我们生成的php代码,直接放到对应的控制器的方法里,进行测试即可。

注意
如果是使用postman生成的代码,需要将一些写死的参数改为动态的,通过程序获取。
比如,商品id,access_token

如:我们将上面的代码放到Product控制器中,新建一个editproduct方法:

   /**
     * 修改商品
     */
    public function editproduct()
    {
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => 'https://xn-4gq539cczg1le.myshopify.com/admin/api/2023-04/products/8310269280534.json',
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => 'PUT',
            CURLOPT_POSTFIELDS => '{"product":{"id":8310269280534,"title":"又改了一次商品名称"}}',
            CURLOPT_HTTPHEADER => array(
                'X-Shopify-Access-Token: shpua_16e9936443476d2eabc0d0a707366281',
                'Content-Type: application/json',
            ),
        ));
        $response = curl_exec($curl);
        curl_close($curl);
        echo $response;
    }

访问对应url测试:

再查看商品列表:

补充:

  • 如果需要商品修改的功能,我们可以按照上面的方法,非常快速地实现商品修改功能。

  • 需要注意的是,上面的代码中,请求求的url、post的数据、以及access token这几部分目前是写死的,需要换成程序动态获取即可。

  • 如:在商品列表处放一个修改按钮,将对应的商品id传递到editproduct方法,动态获取即可。


推荐文章