如何通过Flipkart卖家API直接获取全部订单数据?
Flipkart卖家API获取全部订单数据解决方案
你使用的/sellers/v2/orders/search本身就是官方提供的订单搜索接口,默认返回字段有限导致你只看到Orderitems,可以通过调整请求参数来获取完整订单数据,具体步骤如下:
1. 指定需要返回的订单字段
在请求JSON中添加fields数组,明确列出需要获取的订单字段(比如订单ID、创建时间、状态、收货地址等),示例修改后的请求体:
{ "sort": { "field": "dispatchByDate", "order": "desc" }, "fields": ["orderId", "orderDate", "status", "orderItems", "shippingAddress", "billingAddress"], "page": 1, "limit": 50 }
2. 修改后的完整代码
$url = "https://api.flipkart.net/sellers/v2/orders/search"; $curl = curl_init(); $json = '{ "sort": { "field": "dispatchByDate", "order": "desc" }, "fields": ["orderId", "orderDate", "status", "orderItems", "shippingAddress", "billingAddress"], "page": 1, "limit": 50 }'; curl_setopt($curl, CURLOPT_URL,$url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $json); // 生产环境请勿关闭SSL验证,此处仅为示例 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type:application/json', 'Authorization:Bearer '.$tokan['access_token'] )); $result = curl_exec($curl); $ee = curl_getinfo($curl); curl_close($curl); $result = json_decode($result,true); print_r($result);
3. 遍历获取全部订单(处理分页)
Flipkart API会对返回数据做分页限制,需要循环请求直到获取所有订单:
$url = "https://api.flipkart.net/sellers/v2/orders/search"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL,$url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type:application/json', 'Authorization:Bearer '.$tokan['access_token'] )); $page = 1; $limit = 50; $allOrders = []; do { $json = '{ "sort": { "field": "dispatchByDate", "order": "desc" }, "fields": ["orderId", "orderDate", "status", "orderItems", "shippingAddress"], "page": '.$page.', "limit": '.$limit.' }'; curl_setopt($curl, CURLOPT_POSTFIELDS, $json); $result = curl_exec($curl); $response = json_decode($result, true); if (!empty($response['orders'])) { $allOrders = array_merge($allOrders, $response['orders']); $page++; } else { break; } } while (count($response['orders']) == $limit); curl_close($curl); print_r($allOrders);
注意事项
- 生产环境必须开启
CURLOPT_SSL_VERIFYPEER,关闭会带来安全风险 - 可根据官方文档调整
fields数组,添加或移除需要的字段 - 确保你的access_token拥有订单读取的权限范围
内容的提问来源于stack exchange,提问作者Kindlebit Php
相关产品推荐
相关产品推荐

