333 lines
11 KiB
Markdown
333 lines
11 KiB
Markdown
|
|
# Walmart Marketplace API 文档
|
|||
|
|
|
|||
|
|
## 1. 概述
|
|||
|
|
|
|||
|
|
Walmart Marketplace API 是Walmart为卖家和开发者提供的开放API平台,旨在帮助卖家更高效地管理其在Walmart平台上的业务。通过Walmart API,开发者可以创建各种工具和服务,帮助卖家处理产品管理、订单处理、库存管理等业务流程。
|
|||
|
|
|
|||
|
|
Walmart是美国最大的零售商之一,其在线市场Walmart Marketplace允许第三方卖家在Walmart.com上销售商品。
|
|||
|
|
|
|||
|
|
## 2. API分类
|
|||
|
|
|
|||
|
|
### 2.1 认证API
|
|||
|
|
|
|||
|
|
| 接口名称 | 功能描述 | 适用场景 |
|
|||
|
|
|---------|---------|----------|
|
|||
|
|
| Token API | 获取访问令牌(Access Token) | API认证、授权 |
|
|||
|
|
| Refresh Token API | 刷新访问令牌 | 保持API访问权限 |
|
|||
|
|
|
|||
|
|
### 2.2 产品管理API
|
|||
|
|
|
|||
|
|
| 接口名称 | 功能描述 | 适用场景 |
|
|||
|
|
|---------|---------|----------|
|
|||
|
|
| 产品上传API | 上传新产品到Walmart Marketplace | 商品上架、批量上传 |
|
|||
|
|
| 产品更新API | 更新现有产品信息 | 商品信息维护 |
|
|||
|
|
| 产品查询API | 查询产品信息 | 产品管理、库存同步 |
|
|||
|
|
| 产品状态API | 查询产品状态 | 产品审核跟踪 |
|
|||
|
|
|
|||
|
|
### 2.3 订单管理API
|
|||
|
|
|
|||
|
|
| 接口名称 | 功能描述 | 适用场景 |
|
|||
|
|
|---------|---------|----------|
|
|||
|
|
| 订单列表API | 获取订单列表 | 订单管理、订单同步 |
|
|||
|
|
| 订单详情API | 获取订单详细信息 | 订单处理、物流安排 |
|
|||
|
|
| 订单状态更新API | 更新订单状态 | 订单处理、发货管理 |
|
|||
|
|
| 订单取消API | 取消订单 | 订单管理、客户服务 |
|
|||
|
|
| 退货API | 处理退货请求 | 售后管理 |
|
|||
|
|
|
|||
|
|
### 2.4 库存管理API
|
|||
|
|
|
|||
|
|
| 接口名称 | 功能描述 | 适用场景 |
|
|||
|
|
|---------|---------|----------|
|
|||
|
|
| 库存更新API | 更新产品库存 | 库存同步、库存管理 |
|
|||
|
|
| 库存查询API | 查询产品库存 | 库存监控、库存管理 |
|
|||
|
|
|
|||
|
|
### 2.5 价格管理API
|
|||
|
|
|
|||
|
|
| 接口名称 | 功能描述 | 适用场景 |
|
|||
|
|
|---------|---------|----------|
|
|||
|
|
| 价格更新API | 更新产品价格 | 价格管理、促销活动 |
|
|||
|
|
| 价格查询API | 查询产品价格 | 价格监控、价格管理 |
|
|||
|
|
|
|||
|
|
### 2.6 报告API
|
|||
|
|
|
|||
|
|
| 接口名称 | 功能描述 | 适用场景 |
|
|||
|
|
|---------|---------|----------|
|
|||
|
|
| 销售报告API | 获取销售数据报告 | 销售分析、财务报表 |
|
|||
|
|
| 库存报告API | 获取库存数据报告 | 库存分析、库存管理 |
|
|||
|
|
| 订单报告API | 获取订单数据报告 | 订单分析、客户行为分析 |
|
|||
|
|
|
|||
|
|
## 3. API认证与授权
|
|||
|
|
|
|||
|
|
### 3.1 开发者注册流程
|
|||
|
|
|
|||
|
|
**注册地址**:[Walmart Developer Portal](https://developer.walmart.com/)
|
|||
|
|
|
|||
|
|
**注册资格**:
|
|||
|
|
- 企业开发者:需要提供企业营业执照、税务登记证等
|
|||
|
|
- 个人开发者:需要提供个人身份证明
|
|||
|
|
- 必须拥有Walmart Marketplace卖家账号
|
|||
|
|
|
|||
|
|
**所需材料**:
|
|||
|
|
1. 企业营业执照(企业开发者)
|
|||
|
|
2. 税务登记证(企业开发者)
|
|||
|
|
3. 法人身份证明
|
|||
|
|
4. 联系方式(邮箱、电话)
|
|||
|
|
5. Walmart Marketplace卖家账号信息
|
|||
|
|
6. 银行账户信息(用于收款)
|
|||
|
|
|
|||
|
|
**注册步骤**:
|
|||
|
|
1. 访问Walmart Developer Portal注册地址
|
|||
|
|
2. 点击"Sign Up"按钮,创建开发者账号
|
|||
|
|
3. 填写注册信息,验证邮箱
|
|||
|
|
4. 登录开发者控制台
|
|||
|
|
5. 创建应用,获取Client ID和Client Secret
|
|||
|
|
6. 设置应用回调地址
|
|||
|
|
7. 获取测试环境访问权限
|
|||
|
|
8. 提交应用审核(如需生产环境访问)
|
|||
|
|
|
|||
|
|
**注意事项**:
|
|||
|
|
- 确保提供真实有效的信息
|
|||
|
|
- 保护好Client ID和Client Secret,避免泄露
|
|||
|
|
- 遵守Walmart的使用条款和限制
|
|||
|
|
- 定期更新API密钥以保证安全
|
|||
|
|
- 如遇到注册问题,可联系Walmart开发者支持
|
|||
|
|
|
|||
|
|
### 3.2 认证流程
|
|||
|
|
|
|||
|
|
1. 注册Walmart Marketplace卖家账号
|
|||
|
|
2. 在Walmart Developer Portal创建应用并获取API密钥(Client ID和Client Secret)
|
|||
|
|
3. **OAuth 2.0授权流程**:
|
|||
|
|
- **Client Credentials Grant流程**:
|
|||
|
|
1. 向`https://marketplace.walmartapis.com/v3/token`发送POST请求
|
|||
|
|
2. 提供grant_type=client_credentials、client_id和client_secret参数
|
|||
|
|
3. 接收包含access_token的响应
|
|||
|
|
- **Authorization Code Grant流程**:
|
|||
|
|
1. 重定向用户到Walmart授权页面:`https://marketplace.walmartapis.com/v3/us/authorize?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}`
|
|||
|
|
2. 用户登录并授权应用
|
|||
|
|
3. Walmart重定向回redirect_uri,附带authorization code
|
|||
|
|
4. 使用code向`https://marketplace.walmartapis.com/v3/token`获取access_token和refresh_token
|
|||
|
|
- **Refresh Token Grant流程**:
|
|||
|
|
1. 当access_token过期时,使用refresh_token向`https://marketplace.walmartapis.com/v3/token`发送POST请求
|
|||
|
|
2. 提供grant_type=refresh_token、client_id、client_secret和refresh_token参数
|
|||
|
|
3. 接收新的access_token
|
|||
|
|
4. 使用访问令牌调用API接口
|
|||
|
|
|
|||
|
|
### 3.3 授权方式
|
|||
|
|
|
|||
|
|
- **OAuth 2.0授权**:支持多种授权类型,包括Client Credentials Grant、Authorization Code Grant、Refresh Token Grant
|
|||
|
|
- **访问令牌**:有效期为15分钟
|
|||
|
|
- **刷新令牌**:有效期为1年
|
|||
|
|
|
|||
|
|
## 4. API调用示例
|
|||
|
|
|
|||
|
|
### 4.1 获取访问令牌示例
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
import requests
|
|||
|
|
|
|||
|
|
def get_access_token(client_id, client_secret):
|
|||
|
|
url = "https://marketplace.walmartapis.com/v3/token"
|
|||
|
|
|
|||
|
|
payload = {
|
|||
|
|
"grant_type": "client_credentials",
|
|||
|
|
"client_id": client_id,
|
|||
|
|
"client_secret": client_secret
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
headers = {
|
|||
|
|
"Content-Type": "application/x-www-form-urlencoded"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
response = requests.post(url, data=payload, headers=headers)
|
|||
|
|
return response.json()
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.2 产品上传示例
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
import requests
|
|||
|
|
import json
|
|||
|
|
|
|||
|
|
def upload_product(access_token, product_data):
|
|||
|
|
url = "https://marketplace.walmartapis.com/v3/items"
|
|||
|
|
|
|||
|
|
headers = {
|
|||
|
|
"Authorization": f"Bearer {access_token}",
|
|||
|
|
"Content-Type": "application/json"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
response = requests.post(url, json=product_data, headers=headers)
|
|||
|
|
return response.json()
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.3 订单列表查询示例
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
import requests
|
|||
|
|
|
|||
|
|
def get_orders(access_token, created_start_date, created_end_date, limit=20):
|
|||
|
|
url = "https://marketplace.walmartapis.com/v3/orders"
|
|||
|
|
|
|||
|
|
params = {
|
|||
|
|
"createdStartDate": created_start_date,
|
|||
|
|
"createdEndDate": created_end_date,
|
|||
|
|
"limit": limit
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
headers = {
|
|||
|
|
"Authorization": f"Bearer {access_token}",
|
|||
|
|
"Content-Type": "application/json"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
response = requests.get(url, params=params, headers=headers)
|
|||
|
|
return response.json()
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 5. API返回值解析
|
|||
|
|
|
|||
|
|
### 5.1 访问令牌API返回值
|
|||
|
|
|
|||
|
|
| 字段名 | 类型 | 描述 |
|
|||
|
|
|-------|------|------|
|
|||
|
|
| access_token | String | 访问令牌 |
|
|||
|
|
| token_type | String | 令牌类型,通常为"Bearer" |
|
|||
|
|
| expires_in | Number | 令牌过期时间(秒) |
|
|||
|
|
| refresh_token | String | 刷新令牌(仅在Authorization Code Grant类型下返回) |
|
|||
|
|
|
|||
|
|
### 5.2 产品API返回值
|
|||
|
|
|
|||
|
|
| 字段名 | 类型 | 描述 |
|
|||
|
|
|-------|------|------|
|
|||
|
|
| itemId | String | 产品ID |
|
|||
|
|
| sku | String | 卖家SKU |
|
|||
|
|
| name | String | 产品名称 |
|
|||
|
|
| price | Object | 价格信息 |
|
|||
|
|
| description | String | 产品描述 |
|
|||
|
|
| images | Array | 产品图片URL列表 |
|
|||
|
|
| attributes | Object | 产品属性 |
|
|||
|
|
| status | String | 产品状态 |
|
|||
|
|
|
|||
|
|
### 5.3 订单API返回值
|
|||
|
|
|
|||
|
|
| 字段名 | 类型 | 描述 |
|
|||
|
|
|-------|------|------|
|
|||
|
|
| purchaseOrderId | String | 订单ID |
|
|||
|
|
| customerOrderId | String | 客户订单ID |
|
|||
|
|
| orderDate | String | 订单日期 |
|
|||
|
|
| orderStatus | String | 订单状态 |
|
|||
|
|
| totalAmount | Object | 订单总金额 |
|
|||
|
|
| shippingInfo | Object | 配送信息 |
|
|||
|
|
| items | Array | 订单商品列表 |
|
|||
|
|
| customerInfo | Object | 客户信息 |
|
|||
|
|
|
|||
|
|
### 5.4 错误码定义
|
|||
|
|
|
|||
|
|
| 错误码 | 错误消息 | 可能原因 | 解决方法 |
|
|||
|
|
|-------|---------|---------|----------|
|
|||
|
|
| 400 | Bad Request | 请求参数错误 | 检查请求参数是否符合要求 |
|
|||
|
|
| 401 | Unauthorized | 认证失败 | 检查API密钥和访问令牌是否正确 |
|
|||
|
|
| 403 | Forbidden | 权限不足 | 检查应用是否有相应的权限 |
|
|||
|
|
| 404 | Not Found | 资源不存在 | 检查请求的资源ID是否正确 |
|
|||
|
|
| 429 | Too Many Requests | 请求频率过高 | 减少API调用频率,实现限流机制 |
|
|||
|
|
| 500 | Internal Server Error | 服务器内部错误 | 稍后重试,如持续失败联系平台支持 |
|
|||
|
|
| 503 | Service Unavailable | 服务不可用 | 稍后重试,检查Walmart服务状态 |
|
|||
|
|
| 4001 | Invalid Client ID | 无效的Client ID | 检查Client ID是否正确 |
|
|||
|
|
| 4002 | Invalid Client Secret | 无效的Client Secret | 检查Client Secret是否正确 |
|
|||
|
|
| 4003 | Token Expired | 令牌过期 | 重新获取访问令牌 |
|
|||
|
|
| 4004 | Invalid SKU | 无效的SKU | 检查产品SKU是否存在 |
|
|||
|
|
| 4005 | Inventory Not Available | 库存不可用 | 检查库存水平,确保有足够库存 |
|
|||
|
|
|
|||
|
|
## 6. 最佳实践
|
|||
|
|
|
|||
|
|
### 6.1 API调用频率限制
|
|||
|
|
|
|||
|
|
- **API调用频率限制**:
|
|||
|
|
- 标准API调用限制:600次/分钟
|
|||
|
|
- 批量操作API限制:50次/分钟
|
|||
|
|
- 报告API限制:30次/分钟
|
|||
|
|
- 使用批量操作减少API请求次数
|
|||
|
|
- 实现指数退避策略处理限流
|
|||
|
|
- 监控API调用频率,避免超过限制
|
|||
|
|
|
|||
|
|
### 6.2 错误处理
|
|||
|
|
|
|||
|
|
- 正确处理API返回的错误码
|
|||
|
|
- 实现重试机制处理临时错误
|
|||
|
|
- 监控API调用成功率
|
|||
|
|
|
|||
|
|
### 6.3 安全措施
|
|||
|
|
|
|||
|
|
- 保护API密钥和访问令牌
|
|||
|
|
- 使用HTTPS协议进行API调用
|
|||
|
|
- 定期更新访问令牌
|
|||
|
|
- 限制API密钥的权限范围
|
|||
|
|
|
|||
|
|
### 6.4 安全最佳实践
|
|||
|
|
|
|||
|
|
- **API密钥保护**:
|
|||
|
|
- 不要在代码中硬编码Client ID和Client Secret
|
|||
|
|
- 使用环境变量或安全的配置管理系统存储API密钥
|
|||
|
|
- 定期更换API密钥
|
|||
|
|
- 限制API密钥的使用范围
|
|||
|
|
|
|||
|
|
- **访问令牌管理**:
|
|||
|
|
- 妥善存储访问令牌和刷新令牌
|
|||
|
|
- 设置合理的令牌过期时间
|
|||
|
|
- 实现令牌自动刷新机制
|
|||
|
|
- 避免在客户端存储敏感令牌
|
|||
|
|
|
|||
|
|
- **请求安全**:
|
|||
|
|
- 始终使用HTTPS协议进行API调用
|
|||
|
|
- 正确生成和验证请求签名
|
|||
|
|
- 避免在URL中传递敏感信息
|
|||
|
|
- 实现请求超时和重试机制
|
|||
|
|
|
|||
|
|
- **权限控制**:
|
|||
|
|
- 仅申请必要的API权限
|
|||
|
|
- 定期审查应用的权限设置
|
|||
|
|
- 对不同环境使用不同的API密钥
|
|||
|
|
|
|||
|
|
- **数据安全**:
|
|||
|
|
- 加密存储用户数据
|
|||
|
|
- 避免传输敏感信息
|
|||
|
|
- 实现数据访问控制
|
|||
|
|
- 定期备份重要数据
|
|||
|
|
|
|||
|
|
### 6.5 性能优化
|
|||
|
|
|
|||
|
|
- 合理使用缓存减少API调用
|
|||
|
|
- 批量处理提高效率
|
|||
|
|
- 优化请求参数减少响应数据大小
|
|||
|
|
|
|||
|
|
## 7. 接口使用场景分析
|
|||
|
|
|
|||
|
|
### 7.1 电商ERP系统集成
|
|||
|
|
|
|||
|
|
- **产品管理**:批量上传、更新产品信息
|
|||
|
|
- **订单处理**:自动同步订单、批量发货
|
|||
|
|
- **库存管理**:实时同步库存信息
|
|||
|
|
- **价格管理**:动态调整价格
|
|||
|
|
- **数据分析**:获取销售数据进行分析
|
|||
|
|
|
|||
|
|
### 7.2 库存管理系统
|
|||
|
|
|
|||
|
|
- **库存同步**:实时更新库存信息
|
|||
|
|
- **库存监控**:监控库存水平,避免缺货
|
|||
|
|
- **库存预测**:基于销售数据预测库存需求
|
|||
|
|
|
|||
|
|
### 7.3 价格优化工具
|
|||
|
|
|
|||
|
|
- **价格监控**:监控竞争对手价格
|
|||
|
|
- **动态定价**:根据市场情况自动调整价格
|
|||
|
|
- **促销管理**:创建和管理促销活动
|
|||
|
|
|
|||
|
|
## 8. 总结
|
|||
|
|
|
|||
|
|
Walmart Marketplace API为卖家和开发者提供了丰富的接口,涵盖了认证、产品管理、订单管理、库存管理、价格管理和报告等各个方面。通过合理使用这些API,开发者可以创建各种工具和服务,帮助卖家提高运营效率、提升销售业绩。
|
|||
|
|
|
|||
|
|
在使用Walmart API时,开发者需要注意遵守平台的使用规则,合理控制API调用频率,确保数据安全,并不断优化API调用策略,以获得最佳的使用效果。
|
|||
|
|
|
|||
|
|
## 9. 参考资源
|
|||
|
|
|
|||
|
|
- [Walmart Developer Portal](https://developer.walmart.com/)
|
|||
|
|
- [Walmart Marketplace API Documentation](https://developer.walmart.com/api/us/mp/)
|