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

使用SDK库前,用户需要确定调用SDK库的AK秘钥对,请参见系统搭建步骤4。以下以JAVA SDK为例,展示通过SDK导入商品库的过程。

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.6</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请在阿里云官网生成
        String accessKeyId = "";
        String accessKeySecret = "";
        //封装需要的参数
        DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
        //手动设置Endpoint
        profile.addEndpoint(regionId,"cloudesl","cloudesl.cn-hangzhou.aliyuncs.com");
        //创建pop客户端
        client = new DefaultAcsClient(profile);
    }


    /**
     * 新增商品
     */
    public void insertItem() {
        //调用前先初始化POP客户端
        init();

        //准备参数
        List<BatchInsertItemsRequest.ItemInfo> itemInfos = new ArrayList<BatchInsertItemsRequest.ItemInfo>();
        //商品对象
        BatchInsertItemsRequest.ItemInfo itemInfo = new BatchInsertItemsRequest.ItemInfo();
        itemInfo.setItemBarCode("");//商品条形码
        itemInfo.setItemId("");//商品Id 只支持数字
        itemInfo.setItemTitle("");//商品标题
        itemInfo.setPriceUnit("");//计价单位
        itemInfo.setActionPrice();//销售价格
        itemInfo.setSaleSpec("");//商品规格

        //上面6个为必填参数,其他是选填参数,不在一一列举,可以根据情况自行选择填写
        itemInfo.setProductionPlace("");//产地
        itemInfo.setBePromotion();//是否促销
        itemInfo.setPromotionStart("2020-02-01T08:00:00Z");//促销结束时间 请使用UTC时间
        itemInfo.setPromotionEnd("2020-02-02T08:00:00Z");//促销结束时间 请使用UTC时间
        itemInfo.setBeMember(false);// 是否会员
        itemInfo.setBeSourceCode(false); // 是否溯源
        itemInfo.setInventoryStatus("NORMAL");// 库存状态  缺货-OUT_OF_STOCK 正常-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);

        //创建请求对象,为属性赋值
        BatchInsertItemsRequest request = new BatchInsertItemsRequest();
        //批量插入强制使用POST请求
        request.setSysMethod(MethodType.POST);
        request.setStoreId(storeId);
        request.setItemInfos(itemInfos);
        //请求时加上以下两个参数,可以获取中文错误码
        request.putQueryParameter("AcceptLanguage","zh-CN");
        request.putQueryParameter("Code","apiDynamicErrorCode");

        try {
            //发送请求
            BatchInsertItemsResponse acsResponse = client.getAcsResponse(request);

            //处理响应结果
            if (acsResponse.getSuccess()) {
                List<BatchInsertItemsResponse.BatchResult> batchResults = acsResponse.getBatchResults();
                if (null != batchResults && batchResults.size() > 0) {
                    batchResults.forEach(System.out::println);
                }
            }
        } catch (ClientException e) {
            //打印错误信息
            System.out.println("POP调用失败,ErrorMessage:" + e.getErrorDescription());
        }
    }

    /**
     * 查询商品
     */
    public void describeItems() {
        //调用前先初始化POP客户端
        init();

        //准备参数
        DescribeItemsRequest request = new DescribeItemsRequest();
        request.setStoreId(storeId);//门店Id
        request.setPageNumber(1);//页码
        request.setPageSize(10);//每页多少条

        //请求时加上以下两个参数,可以获取中文错误码
        request.putQueryParameter("AcceptLanguage","zh-CN");
        request.putQueryParameter("Code","apiDynamicErrorCode");

        try {
            //发送请求
            DescribeItemsResponse acsResponse = client.getAcsResponse(request);
            //处理响应结果
            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) {
            //打印错误信息
            System.out.println("POP调用失败,ErrorMessage:" + e.getErrorDescription());
        }
    }
}
注意
  • 在requets 里和itemInfo 里加上 storeId。
  • requet 要设置为 POST 方法调用。