跨境笔记-CBnotes.net

  • 一、数据准备
  • 二、获取密钥凭证
  • 三、创建文件
  • 1. .env 文件
  • 2. fetch_amazon_sales.py
  • 四、创建 SKILL.MD
  • 五、后记
  • 首页
  • 电商笔记
  • 好文分享
  • 软件工具
  • 商学基础

代码小白通过Gemini实现OpenClaw调用亚马逊后台经营数据实操(一)

  • CBnotes
  • 2026-04-28
  • 0

文章目录[隐藏]

  • 一、数据准备
  • 二、获取密钥凭证
  • 三、创建文件
    • 1. .env 文件
    • 2. fetch_amazon_sales.py
  • 四、创建 SKILL.MD
  • 五、后记

最近在折腾用 OpenClaw 调用亚马逊后台数据,把整个过程记录下来,供有需要的同学参考。

一、数据准备

通过亚马逊后台申请必要权限。申请资料填写亚马逊的注册企业资料。

申请时注意:用途仅为本企业内使用,不与外部共享。这样申请下来的开发者为私人开发者,可以避免很多资料审核上的麻烦。

申请通过后,添加 APP 客户端。权限内容根据需要选择,建议勾选以下几项:

  • 财务与会计核算
  • 销售伙伴
  • 买家沟通
  • 库存和订单追踪
  • 品牌分析
  • 亚马逊仓储和分拨服务

博主目前只有订单数据可以获取,其他数据权限还在与亚马逊开 CASE 沟通中。

二、获取密钥凭证

创建好应用名称后,通过 LWA 凭证栏目获取:

  • LWA_APP_ID
  • LWA_CLIENT_SECRET

在编辑应用程序后面的三个点,可以获取:

  • AMAZON_REFRESH_TOKEN

LWA凭证获取示意

三、创建文件

在 OpenClaw 的 skill 文件夹下新建一个文件夹,命名 get-amazon-date。

文件夹结构示意

1. .env 文件

放入上面三个密钥:

AMAZON_REFRESH_TOKEN=授权令牌
LWA_APP_ID=应用程序ID
LWA_CLIENT_SECRET=你的密钥

2. fetch_amazon_sales.py

import os
import json
from datetime import datetime, timedelta
from pathlib import Path
from dotenv import load_dotenv
from sp_api.api import Orders
from sp_api.base import Marketplaces

env_path = Path(__file__).parent / ".env"
load_dotenv(dotenv_path=env_path)

def get_sales_data():
    credentials = {
        "refresh_token": os.getenv("AMAZON_REFRESH_TOKEN"),
        "lwa_app_id": os.getenv("LWA_APP_ID"),
        "lwa_client_secret": os.getenv("LWA_CLIENT_SECRET"),
    }

    if not all(credentials.values()):
        return "错误:.env 文件中缺少必要配置"

    try:
        obj = Orders(credentials=credentials, marketplace=Marketplaces.US)
        created_after = (datetime.utcnow() - timedelta(days=7)).isoformat()
        res = obj.get_orders(CreatedAfter=created_after)
        raw_orders = res.payload.get('Orders', [])

        if not raw_orders:
            return "最近 7 天暂无订单数据。"

        refined_orders = []
        for order in raw_orders:
            refined_orders.append({
                "订单号": order.get("AmazonOrderId"),
                "下单时间": order.get("PurchaseDate"),
                "状态": order.get("OrderStatus"),
                "金额": order.get("OrderTotal", {}).get("Amount", "0.00"),
                "币种": order.get("OrderTotal", {}).get("CurrencyCode", "USD"),
                "配送方式": order.get("FulfillmentChannel"),
                "城市": order.get("ShippingAddress", {}).get("City", "N/A"),
                "州": order.get("ShippingAddress", {}).get("StateOrRegion", "N/A"),
                "类型": "企业订单" if order.get("IsBusinessOrder") else "个人订单"
            })

        return json.dumps(refined_orders, ensure_ascii=False, indent=2)
    except Exception as e:
        return f"亚马逊数据获取失败: {str(e)}"

if __name__ == "__main__":
    print(get_sales_data())

四、创建 SKILL.MD

# 技能名称:亚马逊运营数据助手

## 基础信息
- **ID**: com.niubiplus.amazon.helper
- **版本**: 1.1.0
- **作者**: CBnotes.net
- **描述**: 针对亚马逊卖家开发的自动化数据查询工具,支持按时间维度、特定 SKU 精准调取订单数据。

## 触发指令示例

### 销售与订单查询
- "帮我查一下近3天的销售额"
- "上周总共卖了多少单?"

### 库存查询
- "帮我查看 SKU [ABC-123] 的库存情况"
- "哪些产品快没货了?"

### 综合指令
- "对比一下最近两天订单数量的变化"

五、后记

整个过程都是自己折腾出来的,如果有大神发现其中问题,欢迎不吝赐教。后续也会继续更新更多数据权限的调用教程。

小白自己折腾,如果有大神发现其中问题,不吝赐教。

© 2026 跨境笔记-CBnotes.net
Theme by Wing
  • {{ item.name }}
  • {{ item.name }}