目標:串接蝦皮商品,目前串接蝦皮 OpenAPI 2.0 版本,串接手冊
這次要串接商品資料會用到的有
說明一下串接商品的流程
get_item_list ,可以用來取得蝦皮的商品 id,然後再用商品 id 去串接 get_item_base_info,就會得到商品的詳細資料,如果商品有其他規格的話就要用商品 id 去串接 get_model_list
規格指的是這區塊的資料:
這個 API 可以取得蝦皮的商品 id 跟狀態
格式 | HTTP/JSON |
---|---|
URL | • 正式區:https://partner.shopeemobile.com/api/v2/product/get_item_list |
• 測試區:https://partner.test-stable.shopeemobile.com/api/v2/product/get_item_list | |
請求方式 | GET |
公共參數
參數 | 類型 | 說明 |
---|---|---|
sign | string | access_token、partner_id、api path、shop_id、timestamp HMAC-SHA256 編碼,並用 partner key 當作加密 Key (可參授權商店那一篇) |
partner_id | int | Create App 產生的 partner_id (可參Create App 那一篇) |
timestamp | int | 時間戳,期限 5 min |
access_token | string | 期限 4 小時(可參取得 access token 那一篇) |
shop_id | int | 商店 ID(可參授權商店那一篇) |
業務參數
參數 | 類型 | 說明 |
---|---|---|
offset | int | 預設 0,如果資料有超過 1 頁,就填寫,就可以取到下頁的資料 |
page_size | int | 一頁的資料數,最大 100 |
update_time_from | timestamp | 更新時間 |
item_status | string[] | 商品狀態 有 NORMAL/BANNED/DELETED/UNLIST |
以 PHP 為例
// 取得商品清單
function getItemLit(
$host,
$partnerId,
$partnerKey,
$timestamp,
$access_token,
$shop_id,
$parameter
){
$path='/api/v2/product/get_item_list';
$base_string=strval($partnerId.$path.$timestamp.$access_token.$shop_id);
$sign=hash_hmac('sha256',$base_string,$partnerKey,false);
$url=$host.$path.'?partner_id='.$partnerId.'×tamp='.$timestamp.'&sign='.$sign.'&access_token='.$access_token.'&shop_id='.$shop_id.$paremeter;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$res = curl_exec($ch);
return $res;
}
//取得上架跟下架的商品
$parameter='&offset=0&page_size=100&item_status=NORMAL&item_status=UNLIST';
getItemLit($host,$partnerId,$partnerKey,$timestamp,$access_token,$shop_id,$parameter);
可以依據狀態取得想要的商品 item_id
取得商品的 item_id 後就可以用 item_id 去串接 get_item_base_info、get_model_list 來取得其他商品資訊
我覺得很有趣的是串這個 get_item_list 只會給你 item id 的清單,並不會有所有商品的詳細資料,或許是為了讓你先篩選想要的商品 id 再去根據需求取得其他資料,可以更彈性也不用一次回傳過於龐大的資料。