全部产品

导入商品库

SDK导入商品库

云价签产品提供开发使用的SDK库,用户通过标准阿里云 POP 调用就可方便的使用该SDK库操作云价签。

使用SDK库前,用户需要确定调用SDK库的AK秘钥对,请参见创建子账号章节。以下以JAVA SDK为例,展示通过SDK导入商品库的过程。

批量添加商品库的示例代码

POM依赖:

  1. <dependency>
  2. <groupId>com.aliyun</groupId>
  3. <artifactId>aliyun-java-sdk-core</artifactId>
  4. <version>4.5.1</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.aliyun</groupId>
  8. <artifactId>aliyun-java-sdk-cloudesl</artifactId>
  9. <version>2.0.4</version>
  10. </dependency>

代码示例:

  1. import com.aliyuncs.DefaultAcsClient;
  2. import com.aliyuncs.cloudesl.model.v20200201.BatchInsertItemsRequest;
  3. import com.aliyuncs.cloudesl.model.v20200201.BatchInsertItemsResponse;
  4. import com.aliyuncs.cloudesl.model.v20200201.DescribeItemsRequest;
  5. import com.aliyuncs.cloudesl.model.v20200201.DescribeItemsResponse;
  6. import com.aliyuncs.exceptions.ClientException;
  7. import com.aliyuncs.http.MethodType;
  8. import com.aliyuncs.profile.DefaultProfile;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. public class EslPopTest {
  12. //POP客户端
  13. private DefaultAcsClient client;
  14. //门店ID
  15. private String storeId = "";
  16. /**
  17. * 初始化POP客户端
  18. */
  19. public void init(){
  20. String regionId = "cn-hangzhou";
  21. //accessKey请在阿里云官网生成
  22. String accessKeyId = "";
  23. String accessKeySecret = "";
  24. //封装需要的参数
  25. DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
  26. //手动设置Endpoint
  27. profile.addEndpoint(regionId,"cloudesl","cloudesl.cn-hangzhou.aliyuncs.com");
  28. //创建pop客户端
  29. client = new DefaultAcsClient(profile);
  30. }
  31. /**
  32. * 新增商品
  33. */
  34. public void insertItem() {
  35. //调用前先初始化POP客户端
  36. init();
  37. //准备参数
  38. List<BatchInsertItemsRequest.ItemInfo> itemInfos = new ArrayList<BatchInsertItemsRequest.ItemInfo>();
  39. //商品对象
  40. BatchInsertItemsRequest.ItemInfo itemInfo = new BatchInsertItemsRequest.ItemInfo();
  41. itemInfo.setItemBarCode("");//商品条形码
  42. itemInfo.setItemId("");//商品Id 只支持数字
  43. itemInfo.setItemTitle("");//商品标题
  44. itemInfo.setPriceUnit("");//计价单位
  45. itemInfo.setActionPrice();//销售价格
  46. itemInfo.setSaleSpec("");//商品规格
  47. //上面6个为必填参数,其他是选填参数,不在一一列举,可以根据情况自行选择填写
  48. itemInfo.setProductionPlace("");//产地
  49. itemInfo.setBePromotion();//是否促销
  50. itemInfo.setPromotionStart("2020-02-01T08:00:00Z");//促销结束时间 请使用UTC时间
  51. itemInfo.setPromotionEnd("2020-02-02T08:00:00Z");//促销结束时间 请使用UTC时间
  52. //商品对象1
  53. BatchInsertItemsRequest.ItemInfo itemInfo1 = new BatchInsertItemsRequest.ItemInfo();
  54. itemInfo1.setItemBarCode("");
  55. itemInfo1.setItemId("");
  56. itemInfo1.setItemTitle("");
  57. itemInfo1.setPriceUnit("");
  58. itemInfo1.setActionPrice();
  59. itemInfo1.setSaleSpec("");
  60. //放入集合中 批量插入每次最多100条
  61. itemInfos.add(itemInfo);
  62. itemInfos.add(itemInfo1);
  63. //创建请求对象,为属性赋值
  64. BatchInsertItemsRequest request = new BatchInsertItemsRequest();
  65. //批量插入强制使用POST请求
  66. request.setSysMethod(MethodType.POST);
  67. request.setStoreId(storeId);
  68. request.setItemInfos(itemInfos);
  69. //请求时加上以下两个参数,可以获取中文错误码
  70. request.putQueryParameter("AcceptLanguage","zh-CN");
  71. request.putQueryParameter("Code","apiDynamicErrorCode");
  72. try {
  73. //发送请求
  74. BatchInsertItemsResponse acsResponse = client.getAcsResponse(request);
  75. //处理响应结果
  76. if (acsResponse.getSuccess()) {
  77. List<BatchInsertItemsResponse.BatchResult> batchResults = acsResponse.getBatchResults();
  78. if (null != batchResults && batchResults.size() > 0) {
  79. batchResults.forEach(System.out::println);
  80. }
  81. }
  82. } catch (ClientException e) {
  83. //打印错误信息
  84. System.out.println("POP调用失败,ErrorMessage:" + e.getErrorDescription());
  85. }
  86. }
  87. /**
  88. * 查询商品
  89. */
  90. public void describeItems() {
  91. //调用前先初始化POP客户端
  92. init();
  93. //准备参数
  94. DescribeItemsRequest request = new DescribeItemsRequest();
  95. request.setStoreId(storeId);//门店Id
  96. request.setPageNumber(1);//页码
  97. request.setPageSize(10);//每页多少条
  98. //请求时加上以下两个参数,可以获取中文错误码
  99. request.putQueryParameter("AcceptLanguage","zh-CN");
  100. request.putQueryParameter("Code","apiDynamicErrorCode");
  101. try {
  102. //发送请求
  103. DescribeItemsResponse acsResponse = client.getAcsResponse(request);
  104. //处理响应结果
  105. if (acsResponse.getSuccess()) {
  106. List<DescribeItemsResponse.ItemInfo> items = acsResponse.getItems();
  107. if (null != items) {
  108. System.out.println(acsResponse.getRequestId());
  109. items.forEach(System.out::println);
  110. }
  111. }
  112. } catch (ClientException e) {
  113. //打印错误信息
  114. System.out.println("POP调用失败,ErrorMessage:" + e.getErrorDescription());
  115. }
  116. }
  117. }

注意事项:

  1. requets 里和itemInfo 里加上 storeId
  2. requet 要设置为 POST 方法调用