iT邦幫忙

0

蝦皮商品實作串接筆記-串接 API 蝦皮商品(2)

  • 分享至 

  • xImage
  •  

前言

目標:串接蝦皮商品,目前串接蝦皮 OpenAPI 2.0 版本,串接手冊
這次要串接商品資料會用到的有

  1. get_item_list 取得商品清單
  2. get_item_base_info 取得商品基本資料
  3. get_model_list 取得規格資料
    上一篇 已經用 get_item_list 取得商品的 item_id,這一篇要來串接 get_item_base_info & get_model_list

get_item_base_info

這個 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.'&timestamp='.$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


get_model_list

這個 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.'&timestamp='.$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 少掉這個規格而已


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言