目標:串接蝦皮商品,目前串接蝦皮 OpenAPI 2.0 版本,串接手冊
這次要串接商品資料會用到的有
這個 API 可以取得蝦皮的商品的基本資訊
格式 | HTTP/JSON |
---|---|
URL | • 正式區:https://partner.shopeemobile.com/api/v2/product/get_item_base_info |
• 測試區:https://partner.test-stable.shopeemobile.com/api/v2/product/get_item_base_info | |
請求方式 | 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(可參授權商店那一篇) |
業務參數
參數 | 類型 | 說明 |
---|---|---|
item_id_list | int[] | item_id,可以帶入多組,多組的話[1234567,1234568] 這樣帶入 |
need_tax_info | boolean | 預設 false,true 的話會回應 tax_info 的資料 |
need_complaint_policy | boolean | 預設 false,true 的話會回應 need_complaint_policy 的資料 |
以 PHP 為例
// 取得商品清單
function getItemBaseInfo(
$host,
$partnerId,
$partnerKey,
$timestamp,
$access_token,
$shop_id,
$parameter
){
$path='/api/v2/product/get_item_base_info';
$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='&item_id_list=[1234567,1234568]';
getItemBaseInfo($host,$partnerId,$partnerKey,$timestamp,$access_token,$shop_id,$parameter);
你會取得所有商品清單的資訊,但最多好像只能 50 筆
有一個狀況很特別,如果這個商品有設定其他規格(尺寸、大小),那麼 price_info、stock_info 就不會有資料,而是要再去串接 get_model_list 才可以取的每個規格對應的 price_info、stock_info
這個 API 可以取得蝦皮商品的規格資料
格式 | HTTP/JSON |
---|---|
URL | • 正式區:https://partner.shopeemobile.com/api/v2/product/get_model_list |
• 測試區:https://partner.test-stable.shopeemobile.com/api/v2/product/get_model_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(可參授權商店那一篇) |
業務參數
參數 | 類型 | 說明 |
---|---|---|
item_id | int | 一次帶入一組 item_id |
以 PHP 為例
// 取得商品清單
function getModelList(
$host,
$partnerId,
$partnerKey,
$timestamp,
$access_token,
$shop_id,
$parameter
){
$path='/api/v2/product/get_model_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='&item_id=1234567';
getItemBaseInfo($host,$partnerId,$partnerKey,$timestamp,$access_token,$shop_id,$parameter);
在 get_item_base_info 沒有取得 price_info、stock_info 的話就可以從這邊取得
有一點很特別,option_list 是規格清單,model 的 tier_index 是 option 對應的 index,要用這個 index 才可以取得對應的規格名稱
一開始串接訂單的時候一直不明白為甚麼有 model 這個欄位,後來才發現是跟商品有關
然後規格如果被刪掉了,不會有跟 item_status 一樣有 DELETE 的狀態,刪掉就只是 option_list 少掉這個規格而已