導(dǎo)入商品庫
更新時(shí)間:
云價(jià)簽產(chǎn)品提供開發(fā)使用的SDK庫,用戶通過標(biāo)準(zhǔn)阿里云 POP 調(diào)用就可方便的使用該SDK庫操作云價(jià)簽。
使用SDK庫前,用戶需要確定調(diào)用SDK庫的AK密鑰對,請參見系統(tǒng)搭建步驟4。以下以JAVA SDK為例,展示通過SDK導(dǎo)入商品庫的過程。
建議通過阿里云提供的Credentials工具,實(shí)現(xiàn)以非AK硬編碼的方式訪問阿里云OpenAPI,具體使用方式可以參照Credentials工具身份驗(yàn)證,此方案僅為建議方案,需要用戶安裝阿里云Credentials工具才能支持,用戶也可以選擇自由優(yōu)化的安全方案來使用AK。
POM依賴
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-cloudesl</artifactId>
<version>2.0.8</version>
</dependency>
代碼示例
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.cloudesl.model.v20200201.BatchInsertItemsRequest;
import com.aliyuncs.cloudesl.model.v20200201.BatchInsertItemsResponse;
import com.aliyuncs.cloudesl.model.v20200201.DescribeItemsRequest;
import com.aliyuncs.cloudesl.model.v20200201.DescribeItemsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import java.util.ArrayList;
import java.util.List;
public class EslPopTest {
/**
* POP客戶端
*/
private DefaultAcsClient client;
/**
* 門店ID
*/
private String storeId = "";
/**
* 初始化POP客戶端
*/
public void init(){
String regionId = "cn-hangzhou";
/**
* accessKey請?jiān)诎⒗镌乒倬W(wǎng)生成
* 使用默認(rèn)憑證初始化Credentials Client。
*/
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
String accessKeyId = credentialClient.getAccessKeyId();
String accessKeySecret = credentialClient.getAccessKeySecret();
/**
* 封裝需要的參數(shù)
*/
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
/**
* 手動(dòng)設(shè)置Endpoint
*/
DefaultProfile.addEndpoint(regionId,"cloudesl","cloudesl.cn-hangzhou.aliyuncs.com");
/**
* 創(chuàng)建pop客戶端
*/
client = new DefaultAcsClient(profile);
}
/**
* 新增商品
*/
public void insertItem() {
/**
* 調(diào)用前先初始化POP客戶端
*/
init();
/**
* 準(zhǔn)備參數(shù)
*/
List<BatchInsertItemsRequest.ItemInfo> itemInfos = new ArrayList<BatchInsertItemsRequest.ItemInfo>();
/**
* 商品對象
*/
BatchInsertItemsRequest.ItemInfo itemInfo = new BatchInsertItemsRequest.ItemInfo();
//商品條形碼
itemInfo.setItemBarCode("");
//商品Id 只支持?jǐn)?shù)字
itemInfo.setItemId("");
//商品標(biāo)題
itemInfo.setItemTitle("");
//計(jì)價(jià)單位
itemInfo.setPriceUnit("");
//銷售價(jià)格
itemInfo.setActionPrice();
//商品規(guī)格
itemInfo.setSaleSpec("");
/**
* 上面6個(gè)為必填參數(shù),其他是選填參數(shù),不再一一列舉,可以根據(jù)情況自行選擇填寫
*/
//產(chǎn)地
itemInfo.setProductionPlace("");
//是否促銷
itemInfo.setBePromotion();
//促銷開始時(shí)間,請使用UTC時(shí)間
itemInfo.setPromotionStart("2020-02-01T08:00:00Z");
//促銷結(jié)束時(shí)間,請使用UTC時(shí)間
itemInfo.setPromotionEnd("2020-02-02T08:00:00Z");
// 是否會(huì)員
itemInfo.setBeMember(false);
// 是否溯源
itemInfo.setBeSourceCode(false);
// 庫存狀態(tài) 缺貨-OUT_OF_STOCK 正常-NORMAL
itemInfo.setInventoryStatus("NORMAL");
// 自定義模板
itemInfo.setTemplateSceneId("");
/**
* 商品對象1
*/
BatchInsertItemsRequest.ItemInfo itemInfo1 = new BatchInsertItemsRequest.ItemInfo();
itemInfo1.setItemBarCode("");
itemInfo1.setItemId("");
itemInfo1.setItemTitle("");
itemInfo1.setPriceUnit("");
itemInfo1.setActionPrice();
itemInfo1.setSaleSpec("");
/**
* 放入集合中,批量插入每次最多100條
*/
itemInfos.add(itemInfo);
itemInfos.add(itemInfo1);
/**
* 創(chuàng)建請求對象,為屬性賦值
*/
BatchInsertItemsRequest request = new BatchInsertItemsRequest();
/**
* 批量插入強(qiáng)制使用POST請求
*/
request.setSysMethod(MethodType.POST);
request.setStoreId(storeId);
request.setItemInfos(itemInfos);
/**
* 請求時(shí)加上以下兩個(gè)參數(shù),可以獲取中文錯(cuò)誤碼
*/
request.putQueryParameter("AcceptLanguage","zh-CN");
request.putQueryParameter("Code","apiDynamicErrorCode");
try {
/**
* 發(fā)送請求
*/
BatchInsertItemsResponse acsResponse = client.getAcsResponse(request);
/**
* 處理響應(yīng)結(jié)果
*/
if (acsResponse.getSuccess()) {
List<BatchInsertItemsResponse.BatchResult> batchResults = acsResponse.getBatchResults();
if (null != batchResults && batchResults.size() > 0) {
batchResults.forEach(System.out::println);
}
}
} catch (ClientException e) {
//打印錯(cuò)誤信息
System.out.println("POP調(diào)用失敗,ErrorMessage:" + e.getErrorDescription());
}
}
/**
* 查詢商品
*/
public void describeItems() {
//調(diào)用前先初始化POP客戶端
init();
//準(zhǔn)備參數(shù)
DescribeItemsRequest request = new DescribeItemsRequest();
//門店Id
request.setStoreId(storeId);
//頁碼
request.setPageNumber(1);
//每頁多少條
request.setPageSize(10);
//請求時(shí)加上以下兩個(gè)參數(shù),可以獲取中文錯(cuò)誤碼
request.putQueryParameter("AcceptLanguage","zh-CN");
request.putQueryParameter("Code","apiDynamicErrorCode");
try {
//發(fā)送請求
DescribeItemsResponse acsResponse = client.getAcsResponse(request);
//處理響應(yīng)結(jié)果
if (acsResponse.getSuccess()) {
List<DescribeItemsResponse.ItemInfo> items = acsResponse.getItems();
if (null != items) {
System.out.println(acsResponse.getRequestId());
items.forEach(System.out::println);
}
}
} catch (ClientException e) {
//打印錯(cuò)誤信息
System.out.println("POP調(diào)用失敗,ErrorMessage:" + e.getErrorDescription());
}
}
}
重要
在request 里和itemInfo 里加上 storeId。
request 要設(shè)置為 POST 方法調(diào)用。
文檔內(nèi)容是否對您有幫助?