系统学习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方法,动态获取即可。