Shopify Python API:官方 Shopify Admin SDK
文章目录
- Shopify Python API:官方 Shopify Admin SDK
- 1、认证流程
- 2、API 调用方式
- 3、应用计费
- 4、需要注意的事
- 5、安装
Shopify Python API:官方 Shopify Admin SDK
Shopify Python API 在 GitHub 上已经拿到 1,427 Star。
这是 Shopify 官方维护的 Python SDK,用来对接 Shopify Admin API。做 Shopify 应用开发的开发者,无论是做公开应用还是私有应用,都需要这个库来处理认证和 API 调用。
1、认证流程
Shopify 应用分三种:公开应用、自定义应用、私有应用。这个 SDK 对三种场景都做了封装。
公开应用和自定义应用走 OAuth 2.0 流程。先用 API Key 和 Secret 初始化 Session,再生成授权链接让用户跳转,商户确认后回调里用临时 code 换取永久 access_token。代码大致这样:
importshopify shopify.Session.setup(api_key=API_KEY,secret=API_SECRET)session=shopify.Session(shop_url,api_version)access_token=session.request_token(request_params)私有应用更简单,不需要 OAuth,直接用 Private App 密码当 token:
session=shopify.Session(shop_url,api_version,private_app_password)shopify.ShopifyResource.activate_session(session)也支持临时 Session,上下文管理器自动清理:
withshopify.Session.temp(shop_url,api_version,token):shopify.GraphQL().execute("{ shop { name id } }")2、API 调用方式
拿到 token 并 activate_session 之后,就可以调用 REST 或 GraphQL 接口。
REST 用法是 ActiveResource 风格,基于 pyactiveresource 实现:
shop=shopify.Shop.current()product=shopify.Product.find(179761209)product.price=19.99product.save()product.destroy()支持带参数的查询和分页:
new_orders=shopify.Order.find(status="open",limit="50")page1=shopify.Product.find()ifpage1.has_next_page():page2=page1.next_page()前缀资源(如订单下的 fulfillment)需要传入父资源 ID:
shopify.Fulfillment.find(255858046,order_id=450789469)GraphQL 调用更直接:
result=shopify.GraphQL().execute('{ shop { name id } }')也支持带变量和 operation_name 的复杂查询。
3、应用计费
公开应用需要接入 Shopify 的计费系统。SDK 封装了 ApplicationCharge 的创建和激活:
application_charge=shopify.ApplicationCharge.create({'name':'My public app','price':123,'test':True,'return_url':'https://domain.com/approve'})创建后跳转到 confirmation_url 让用户确认,确认后检查 charge 状态即可。
4、需要注意的事
Shopify 在逐步废弃 REST Admin API,公开应用要在 2025 年 2 月前迁移到 GraphQL,自定义应用是 2025 年 4 月。新开发建议直接用 GraphQL。
这个库目前不支持异步请求和持久连接,高并发场景需要自行处理。
5、安装
pipinstall--upgradeShopifyAPIPython 3.7 到 3.12 都支持。
包内还附带了一个 shopify_api.py 命令行工具,可以配置默认凭证后直接进入交互式控制台调试 API。
ade ShopifyAPI
Python 3.7 到 3.12 都支持。 包内还附带了一个 shopify_api.py 命令行工具,可以配置默认凭证后直接进入交互式控制台调试 API。