{"id":32692522,"url":"https://github.com/hsojo/shopline-sdk-python","last_synced_at":"2026-01-20T17:31:21.147Z","repository":{"id":321455087,"uuid":"1085851880","full_name":"HsOjo/shopline-sdk-python","owner":"HsOjo","description":"Shopline OpenAPI on python implement. (From https://open-api.docs.shoplineapp.com)","archived":false,"fork":false,"pushed_at":"2025-10-29T17:37:21.000Z","size":279,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-29T19:38:33.806Z","etag":null,"topics":["openapi","python","sdk","shopline","shoplineapp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HsOjo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-29T15:44:22.000Z","updated_at":"2025-10-29T18:25:39.000Z","dependencies_parsed_at":"2025-10-29T19:38:36.340Z","dependency_job_id":null,"html_url":"https://github.com/HsOjo/shopline-sdk-python","commit_stats":null,"previous_names":["hsojo/shopline-sdk-python"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/HsOjo/shopline-sdk-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HsOjo%2Fshopline-sdk-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HsOjo%2Fshopline-sdk-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HsOjo%2Fshopline-sdk-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HsOjo%2Fshopline-sdk-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HsOjo","download_url":"https://codeload.github.com/HsOjo/shopline-sdk-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HsOjo%2Fshopline-sdk-python/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282323578,"owners_count":26650596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-02T02:00:06.609Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["openapi","python","sdk","shopline","shoplineapp"],"created_at":"2025-11-01T16:01:21.841Z","updated_at":"2026-01-20T17:31:21.125Z","avatar_url":"https://github.com/HsOjo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shopline SDK for Python\n\n[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/license-GPL--3.0-green.svg)](LICENSE)\n[![PyPI Version](https://img.shields.io/badge/pypi-0.1.0-orange.svg)](https://pypi.org/project/shopline-sdk-python/)\n\n一个用于与 Shopline OpenAPI 交互的 Python SDK。基于 [Shopline OpenAPI 文档](https://open-api.docs.shoplineapp.com) 实现。\n\n## 特性\n\n- 🚀 **异步支持**: 基于 `aiohttp` 的异步 HTTP 客户端\n- 📝 **类型安全**: 使用 `pydantic` 进行数据验证和类型提示\n- 🛡️ **错误处理**: 完善的异常处理机制\n- 📚 **完整覆盖**: 支持 Shopline OpenAPI 的所有端点\n- 🔧 **易于使用**: 简洁的 API 设计，易于集成\n\n## 安装\n\n```bash\npip install shopline-sdk-python\n```\n\n或者使用 uv：\n\n```bash\nuv add shopline-sdk-python\n```\n\n## 快速开始\n\n### 基本用法\n\n```python\nimport asyncio\nimport os\nfrom shopline_sdk.client import ShoplineAPIClient\nfrom shopline_sdk.apis.customers import get_customers\n\nasync def main():\n    # 创建客户端\n    client = ShoplineAPIClient(os.getenv('SHOPLINE_ACCESS_TOKEN'))\n    \n    # 使用客户端会话\n    async with client.new_session() as session:\n        # 调用 API\n        response = await get_customers.call(session)\n        print(f\"获取到 {len(response.items)} 个客户\")\n\n# 运行异步函数\nasyncio.run(main())\n```\n\n### 带参数的 API 调用\n\n```python\nimport os\nimport asyncio\nfrom shopline_sdk.client import ShoplineAPIClient\nfrom shopline_sdk.apis.customers import get_customers\n\nasync def get_recent_customers():\n    client = ShoplineAPIClient(os.getenv('SHOPLINE_ACCESS_TOKEN'))\n    \n    async with client.new_session() as session:\n        # 创建查询参数\n        params = get_customers.Params(\n            page=1,\n            per_page=10,\n            sort_by='desc',\n            include_fields=['metafields']\n        )\n        \n        # 调用 API\n        response = await get_customers.call(session, params=params)\n        \n        for customer in response.items:\n            print(f\"客户: {customer.email}\")\n\nasyncio.run(get_recent_customers())\n```\n\n### 创建资源示例\n\n```python\nimport os\nimport asyncio\nfrom shopline_sdk.client import ShoplineAPIClient\nfrom shopline_sdk.apis.addon_products import create_addon_product\nfrom shopline_sdk.models.money import Money\nfrom shopline_sdk.models.translatable import Translatable\n\nasync def create_addon():\n    client = ShoplineAPIClient(os.getenv('SHOPLINE_ACCESS_TOKEN'))\n    \n    async with client.new_session() as session:\n        # 创建加购品请求体\n        body = create_addon_product.Body(\n            title_translations=Translatable(\n                zh_tw=\"加購商品\",\n                en=\"Addon Product\"\n            ),\n            sku=\"ADDON-001\",\n            unlimited_quantity=True,\n            cost=Money(amount=\"10.00\", currency=\"USD\")\n        )\n        \n        # 调用 API\n        addon_product = await create_addon_product.call(session, body=body)\n        print(f\"创建的加购品 ID: {addon_product.id}\")\n\nasyncio.run(create_addon())\n```\n\n### 更新资源示例\n\n```python\nimport os\nimport asyncio\nfrom shopline_sdk.client import ShoplineAPIClient\nfrom shopline_sdk.apis.customers import update_customer\n\nasync def update_customer_info():\n    client = ShoplineAPIClient(os.getenv('SHOPLINE_ACCESS_TOKEN'))\n    \n    async with client.new_session() as session:\n        customer_id = \"5a55b3c973746f507e120000\"\n        \n        # 创建查询参数（可选字段）\n        params = update_customer.Params(\n            fields=[\"id\", \"email\", \"name\"]  # 只返回指定字段\n        )\n        \n        # 创建请求体（要更新的数据）\n        body = update_customer.Body(\n            name=\"张三\",\n            email=\"zhangsan@example.com\",\n            is_accept_marketing=True\n        )\n        \n        # 调用 API\n        updated_customer = await update_customer.call(\n            session,\n            id=customer_id,\n            params=params,\n            body=body\n        )\n        print(f\"更新的客户: {updated_customer.name} ({updated_customer.email})\")\n\nasyncio.run(update_customer_info())\n```\n\n## API 覆盖\n\nSDK 支持 Shopline OpenAPI 的所有主要功能模块：\n\n### 客户管理\n- 获取客户列表\n- 创建、更新、删除客户\n- 客户标签管理\n- 会员积分管理\n- 客户元数据管理\n\n### 产品管理\n- 产品 CRUD 操作\n- 产品变体管理\n- 库存管理\n- 加购品管理\n- 产品元数据管理\n\n### 订单管理\n- 订单查询和管理\n- 订单配送管理\n- 订单元数据管理\n\n### 营销工具\n- 促销活动管理\n- 联盟营销\n- 优惠券管理\n- 会员等级管理\n\n### 其他功能\n- 分类管理\n- 媒体文件管理\n- 主题设置\n- 批量操作\n\n## 错误处理\n\nSDK 提供了完善的错误处理机制：\n\n```python\nfrom shopline_sdk.client import ShoplineAPIClient\nfrom shopline_sdk.exceptions import ShoplineAPIError\nfrom shopline_sdk.apis.customers import get_customers\n\nasync def handle_errors():\n    client = ShoplineAPIClient(\"invalid_token\")\n    \n    try:\n        async with client.new_session() as session:\n            response = await get_customers.call(session)\n    except ShoplineAPIError as e:\n        print(f\"API 错误: {e.status_code} - {e.message}\")\n        print(f\"错误代码: {e.code}\")\n        if e.error:\n            print(f\"详细错误: {e.error}\")\n```\n\n## 配置\n\n### 环境变量\n\n建议使用环境变量来管理敏感信息：\n\n```bash\nexport SHOPLINE_ACCESS_TOKEN=\"your_access_token_here\"\n```\n\n### 自定义基础 URL\n\n```python\nfrom shopline_sdk.client import ShoplineAPIClient\nclient = ShoplineAPIClient(\n    access_token=\"your_token\",\n    base_url=\"https://custom-api.shopline.io/v1\"\n)\n```\n\n## 许可证\n\n本项目采用 GPL-3.0 许可证。详见 [LICENSE](LICENSE) 文件。\n\n## 贡献\n\n欢迎提交 Issue 和 Pull Request！\n\n## 链接\n\n- [Shopline OpenAPI 文档](https://open-api.docs.shoplineapp.com)\n- [GitHub 仓库](https://github.com/hsojo/shopline-sdk-python)\n- [PyPI 包](https://pypi.org/project/shopline-sdk-python/)\n\n## 更新日志\n\n### v0.1.0\n- 初始版本发布\n- 支持所有 Shopline OpenAPI 端点\n- 异步客户端实现\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhsojo%2Fshopline-sdk-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhsojo%2Fshopline-sdk-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhsojo%2Fshopline-sdk-python/lists"}