签到领奖
查看: 289|回复: 4

[寻求帮助] 如何识别多属性刊登list和普通刊登list以使用对应方式获取...

[复制链接]
发表于 2018-4-11 11:44:08 | 显示全部楼层 |阅读模式
100豆币
@龟蛇龙
版主,有个很急的问题需要向您求助,使用ebay api的getorder下载订单时,因为需要获取List 里的SKU码用以关联产品出库,但我店的list里面有普通刊登list和多属性刊登list两种类型,普通刊登list获取SKU的字段是Item.SKU,但多属性刊登获取SKU的字段是Variation.SKU,两者完全不一样。
多属性刊登list如果使用了Item.SKU字段的话,返回值是空的。
普通刊登list如果使用了Variation.SKU字段的话就直接报错无法通过了。
我应该如何识别这两种类型list ?或者有没有其它可以两种类型都能同时使用的字段来获取SKU?

以上,谢谢!


发表于 2018-4-11 11:44:09 | 显示全部楼层
  1. for (int j =0 ;j < order.getTransactionArray().getTransactionLength(); j++){                       
  2.         TransactionType t = tArr.getTransaction(j);                               
  3.         if(t==null){
  4.                 continue;
  5.         }
  6.         String sku = "";
  7.         //如果是多属性,则取多属性中的SKU
  8.         if (t.getVariation() != null){
  9.                 sku = t.getVariation().getSKU();
  10.                 if(sku == null){
  11.                         sku = "";
  12.                 }               
  13.         }
  14.         //没有多属性的,或者多属性的SKU为空的,
  15.         //则取item中的SKU
  16.         if("".equals(sku) && t.getItem()!=null){
  17.                 sku = t.getItem().getSKU();                               
  18.         }
  19. }
复制代码
发表于 2018-4-11 16:09:12 | 显示全部楼层
一般情况下,单属性的订单,Item.Variation = null
可以使用这个方法来判断

当 Item.Variation 存在,但Item.Variation.SKU 是空(非null)的情况,
可以认为没有SKU,

上面代码会取Item.SKU, 这个方式不一定所有人都通用,
你自己根据实际情况修改一下逻辑.

可以改为

  1. if (t.getVariation() != null){
  2.                 sku = t.getVariation().getSKU();       
  3.         }else{
  4.                 if(t.getItem()!=null){
  5.                         sku = t.getItem().getSKU();                               
  6.                 }
  7.         }
复制代码



 楼主| 发表于 2018-4-11 17:38:18 | 显示全部楼层
我刚从文档上也查到这个提示了,还是非常感谢版主的热情回复。。。。。。。。因为本身英语一般,很多上面已经写的东西看得一知关解。。。。非常感谢版本。。。。。
发表于 2018-4-12 00:10:07 | 显示全部楼层
不用客气!相互交流,共同学习!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表