测试与验证
在全量接入之前,系统性的测试和验证是保证数据质量的关键步骤。7.1 小批量优先策略
核心原则: 先用约100条商品测试,确认无误后再扩展到全量。7.2 必填字段验证
确保以下必填字段都已正确填写:| 对象 | 必填字段 | 常见错误 |
|---|---|---|
| Product | id | ID不稳定、重复 |
| Product | variants | 空数组、缺少Variant |
| Variant | id | ID不稳定、跨Product重复 |
| Variant | title | 空字符串、缺失 |
7.3 价格格式验证
价格必须使用minor currency units(最小货币单位):| 货币 | minor unit | 10.00的表示 |
|---|---|---|
| USD | cent | amount: 1000 |
| EUR | cent | amount: 1000 |
| JPY | yen(无小数) | amount: 10 |
| GBP | penny | amount: 1000 |
amount必须大于等于0(0表示免费)currency使用ISO 4217三字母代码- 确认未将”元”误传为”分”(99.99 USD应传
9999而非99)
7.4 URL验证
逐一检查所有URL:7.5 SFTP连接测试
在正式上传数据前验证SFTP连通性:7.6 API认证测试
验证API凭证和header配置:- Bearer token是否正确
- token是否过期
- 账户权限是否已开通
7.7 常见错误排查
HTTP 400: invalid_payload
原因: 请求体格式错误或缺少必填字段。| 常见场景 | 解决方案 |
|---|---|
缺少 variants 数组 | 每个Product必须包含至少一个Variant |
Variant缺少 id 或 title | 补充必填字段 |
价格 amount 为负数 | 确保 amount 大于等于0 |
| JSON格式错误 | 检查括号、引号、逗号 |
| 编码不是UTF-8 | 确认文件和请求使用UTF-8 |
HTTP 404: not_found
原因: 请求的Feed或商品不存在。| 常见场景 | 解决方案 |
|---|---|
| Feed ID错误 | 确认使用 POST /product_feeds 返回的ID |
| Feed已删除 | 重新创建Feed |
| 路径拼写错误 | 检查URL路径 |
幂等性冲突
如果使用相同的Idempotency-Key 发送了不同的请求体,可能导致冲突。每个不同的请求批次必须使用唯一的key。
7.8 Checkout Session测试
如果商家同时实现了Agentic Checkout端点,需要测试完整的交易流程。创建会话
更新会话
完成支付
取消会话
7.9 Delegate Payment测试
Stripe提供测试模式(test mode)用于支付集成测试:| 测试项 | 说明 |
|---|---|
| 测试密钥 | 使用Stripe test mode的API key |
| 测试卡号 | 使用Stripe提供的测试卡号 |
| vault token | 测试模式下生成的 vt_test_... token |
| 支付确认 | 验证支付状态回调正确 |
| 3DS测试 | 使用Stripe的3DS测试卡号触发认证流程 |
7.10 数据同步监控
上线后持续监控数据同步状态:| 监控项 | 建议 |
|---|---|
| SFTP上传成功率 | 每日检查文件是否成功到达 |
| API请求成功率 | 监控4xx和5xx错误率 |
| 数据一致性 | 定期比对本地数据与Feed中的数据 |
| 价格准确性 | 抽查价格是否与实际一致 |
| 库存同步延迟 | 检查库存变化到Feed更新的时间差 |
| 促销状态 | 确认促销按时生效和过期 |
下一章: 第8章:常见问题 — ACP接入常见问题解答