shanji 3 years ago
parent
commit
ba460670f6
  1. 59
      BBWY.JDSDK/Request/ImageWriteUpdateRequest.cs
  2. 38
      BBWY.JDSDK/Request/TransparentImageWriteUpdateRequest.cs
  3. 224
      BBWY.Test/JDProductAPITest.cs
  4. 19
      BBWY.Test/Program.cs

59
BBWY.JDSDK/Request/ImageWriteUpdateRequest.cs

@ -6,39 +6,44 @@ namespace Jd.Api.Request
{
public class ImageWriteUpdateRequest : JdRequestBase<ImageWriteUpdateResponse>
{
public Nullable<long>
wareId
{get; set;}
public string
colorId {get; set; }
public string
imgId {get; set; }
public string
imgIndex {get; set; }
public string
imgUrl {get; set; }
public string
imgZoneId {get; set; }
public override string ApiName
{
get{return "jingdong.image.write.update";}
}
protected override void PrepareParam(IDictionary<String, Object> parameters)
{
parameters.Add("wareId", this. wareId
public Nullable<long>
wareId
{ get; set; }
public string
colorId
{ get; set; }
public string
imgId
{ get; set; }
public string
imgIndex
{ get; set; }
public string
imgUrl
{ get; set; }
public string
imgZoneId
{ get; set; }
public override string ApiName
{
get { return "jingdong.image.write.update"; }
}
protected override void PrepareParam(IDictionary<String, Object> parameters)
{
parameters.Add("wareId", this.wareId
);
parameters.Add("colorId", this. colorId
parameters.Add("colorId", this.colorId
);
parameters.Add("imgId", this. imgId
parameters.Add("imgId", this.imgId
);
parameters.Add("imgIndex", this. imgIndex
parameters.Add("imgIndex", this.imgIndex
);
parameters.Add("imgUrl", this. imgUrl
parameters.Add("imgUrl", this.imgUrl
);
parameters.Add("imgZoneId", this. imgZoneId
parameters.Add("imgZoneId", this.imgZoneId
);
}
}
}
}

38
BBWY.JDSDK/Request/TransparentImageWriteUpdateRequest.cs

@ -6,27 +6,29 @@ namespace Jd.Api.Request
{
public class TransparentImageWriteUpdateRequest : JdRequestBase<TransparentImageWriteUpdateResponse>
{
public Nullable<long>
wareId
{get; set;}
public string
colorId {get; set; }
public string
imageUrl {get; set; }
public override string ApiName
{
get{return "jingdong.transparentImage.write.update";}
}
protected override void PrepareParam(IDictionary<String, Object> parameters)
{
parameters.Add("wareId", this. wareId
public Nullable<long>
wareId
{ get; set; }
public string
colorId
{ get; set; }
public string
imageUrl
{ get; set; }
public override string ApiName
{
get { return "jingdong.transparentImage.write.update"; }
}
protected override void PrepareParam(IDictionary<String, Object> parameters)
{
parameters.Add("wareId", this.wareId
);
parameters.Add("colorId", this. colorId
parameters.Add("colorId", this.colorId
);
parameters.Add("imageUrl", this. imageUrl
parameters.Add("imageUrl", this.imageUrl
);
}
}
}
}

224
BBWY.Test/JDProductAPITest.cs

@ -6,6 +6,7 @@ using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BBWY.Test
{
@ -24,11 +25,11 @@ namespace BBWY.Test
Console.WriteLine(JsonConvert.SerializeObject(response));
}
public void QueryTouTu(IJdClient client, string token, string spu)
public void QueryTouTu(IJdClient client, string token)
{
var req = new TransparentImageReadFindByWareIdAndColorIdRequest();
req.wareId = long.Parse(spu);
var mainSpu = "10022905456671";
req.wareId = long.Parse(mainSpu);
req.colorId = "0000000000";
var response = client.Execute(req, token, DateTime.Now.ToLocalTime());
@ -52,7 +53,7 @@ namespace BBWY.Test
public void ShangJiaTest(IJdClient client, string token)
{
var mainSpu = "10022905456671";
var mainSpu = "10022612803735";
var giftSpu = "10023500913672";
var barCode = "";
@ -62,7 +63,7 @@ namespace BBWY.Test
var selectGiftSkuList = new List<ProductSkuResponse>();
#region 取主商品信息
#region 取主商品sku信息
{
var req = new SkuReadSearchSkuListRequest()
{
@ -124,6 +125,36 @@ namespace BBWY.Test
}
#endregion
#region 获取细节图
//IList<JToken> imagesByColorList = new List<JToken>();
//{
// var req = new ImageReadFindImagesByColorRequest();
// req.wareId = long.Parse(mainSpu);
// req.colorId = "0000000000";
// var response = client.Execute(req, token, DateTime.Now.ToLocalTime());
// if (response.Json == null)
// response.Json = JObject.Parse(response.Body);
// imagesByColorList = response.Json["jingdong_image_read_findImagesByColor_responce"]["images"].ToList();
//}
#endregion
//#region 获取透图
//JToken toutuJToken = null;
//{
// var req = new TransparentImageReadFindByWareIdAndColorIdRequest();
// req.wareId = long.Parse(mainSpu);
// req.colorId = "0000000000";
// var response = client.Execute(req, token, DateTime.Now.ToLocalTime());
// if (response.Json == null)
// response.Json = JObject.Parse(response.Body);
// toutuJToken = response.Json["jingdong_transparentImage_read_findByWareIdAndColorId_responce"]["imageList"];
//}
//#endregion
#region 获取销售属性
IList<JToken> colorSaleAttrs = null;
@ -144,69 +175,176 @@ namespace BBWY.Test
#endregion
#region 增量保存sku
List<string> newSkuList = new List<string>();
{
var skusParamList = new List<SkuWriteUpdateSkusItem>();
var takeColorIndex = colorSaleAttrs.Count() - 10;
for (var i = 0; i < 3; i++)
var updateSkuTitleParamList = new List<WareWriteUpdateWareSaleAttrvalueAliasRequestItem>();
var transparentImageWriteAddRequestList = new List<TransparentImageWriteAddRequest>();
var imageWriteUpdateRequestList = new List<ImageWriteUpdateRequest>();
var takeColorIndex = colorSaleAttrs.Count() - 1;
for (var i = 0; i < selectGiftSkuList.Count(); i++)
{
var giftSku = selectGiftSkuList[i];
var colorProperty = colorSaleAttrs[takeColorIndex];
var p = new SkuWriteUpdateSkusItem()
{
type = "com.jd.pop.ware.ic.api.domain.Sku",
wareId = long.Parse(mainSpu),
//skuId = long.Parse(sku.Id),
jdPrice = giftSku.Price,
stockNum = 500,
barCode = barCode,
saleAttrs = new List<SkuWriteUpdateSkusItemSaleAttrs>()
{
new SkuWriteUpdateSkusItemSaleAttrs()
{
type = "com.jd.pop.ware.ic.api.domain.Prop",
attrId = colorProperty.Value<string>("attId"),
attrValues = new List<string>() { colorProperty.Value<string>("id") },
index = takeColorIndex
}
}
};
var colorProperty = colorSaleAttrs[takeColorIndex];
p.saleAttrs = new List<SkuWriteUpdateSkusItemSaleAttrs>();
var m = new SkuWriteUpdateSkusItemSaleAttrs();
m.type = "com.jd.pop.ware.ic.api.domain.Prop";
m.attrId = colorProperty.Value<string>("attId");
m.attrValues = new List<string>() { colorProperty.Value<string>("id") };
m.attrValueAlias = new List<string>() {
giftSku.Title
//colorProperty.Value<string>("name")
};
m.index = takeColorIndex;
p.saleAttrs.Add(m);
takeColorIndex--;
p.multiCateProps = new List<SkuWriteUpdateSkusItemSaleAttrs>();
if (multiCateProps != null && multiCateProps.Count() > 0)
{
foreach (var multiCateProp in multiCateProps)
{
var m = new SkuWriteUpdateSkusItemSaleAttrs();
m.type = "com.jd.pop.ware.ic.api.domain.Prop";
m.attrId = multiCateProp.Value<string>("attrId");
m.attrValues = multiCateProp.Value<JArray>("attrValues").Select(x => x.ToString()).ToList();
p.multiCateProps.Add(m);
}
}
//修改标题参数
updateSkuTitleParamList.Add(new WareWriteUpdateWareSaleAttrvalueAliasRequestItem()
{
attrId = p.saleAttrs[0].attrId,
attrValues = p.saleAttrs[0].attrValues,
attrValueAlias = new List<string>() { giftSku.Title }
});
//foreach (var saleAttr in colorSaleAttrs)
////修改透图参数
//var transparentImageWriteAddRequest = new TransparentImageWriteAddRequest()
//{
// var m = new SkuWriteUpdateSkusItemSaleAttrs();
// m.attrId = saleAttr.Value<string>("attrId");
// m.attrValues = saleAttr.Value<JArray>("attrValues").Select(x => x.ToString()).ToList();
// p.saleAttrs.Add(m);
//}
//p.multiCateProps = new List<SkuWriteUpdateSkusItemSaleAttrs>();
//if (multiCateProps != null && multiCateProps.Count() > 0)
// wareId = long.Parse(mainSpu),
// colorId = colorProperty.Value<string>("id"),
// //colorId = "0000000000",
// imageUrl = toutuJToken.Value<string>("imageUrl")
//};
//transparentImageWriteAddRequestList.Add(transparentImageWriteAddRequest);
//修改商品细节图参数
var imgUrlBuilder = new StringBuilder();
var imgIndexBuilder = new StringBuilder();
imgUrlBuilder.Append($"{giftSku.Logo.Substring(giftSku.Logo.IndexOf("jfs"))},");
imgIndexBuilder.Append("1,");
//for (var ii = 0; ii <= 3; ii++)
//{
// foreach (var multiCateProp in multiCateProps)
// {
// var m = new SkuWriteUpdateSkusItemSaleAttrs();
// m.attrId = multiCateProp.Value<string>("attrId");
// m.attrValues = multiCateProp.Value<JArray>("attrValues").Select(x => x.ToString()).ToList();
// p.multiCateProps.Add(m);
// }
// var imgJToken = imagesByColorList[ii];
// imgUrlBuilder.Append($"{imgJToken.Value<string>("imgUrl")},");
// imgIndexBuilder.Append($"{imgJToken.Value<int>("imgIndex") + 1},");
//}
imageWriteUpdateRequestList.Add(new ImageWriteUpdateRequest()
{
wareId = long.Parse(mainSpu),
colorId = colorProperty.Value<string>("id"),
imgUrl = imgUrlBuilder.ToString().Trim(','),
imgIndex = imgIndexBuilder.ToString().Trim(',')
});
takeColorIndex--;
skusParamList.Add(p);
}
var req = new SkuWriteUpdateSkusRequest();
req.wareId = long.Parse(mainSpu);
req.skus = skusParamList;
#region 上架sku
{
var req = new SkuWriteUpdateSkusRequest();
req.wareId = long.Parse(mainSpu);
req.skus = skusParamList;
Console.WriteLine("上架请求参数");
Console.WriteLine(JsonConvert.SerializeObject(req));
var res = client.Execute(req, token, DateTime.Now.ToLocalTime());
Console.WriteLine();
Console.WriteLine("上架返回内容");
Console.WriteLine(JsonConvert.SerializeObject(res));
if (res.Json == null)
res.Json = JObject.Parse(res.Body);
newSkuList = res.Json["jingdong_sku_write_updateSkus_responce"]["skuList"].ToList().Select(x => x.Value<string>("skuId")).ToList();
}
#endregion
#region 改名
{
Console.WriteLine();
Console.WriteLine();
var request = new WareWriteUpdateWareSaleAttrvalueAliasRequest()
{
wareId = long.Parse(mainSpu),
props = updateSkuTitleParamList
};
Console.WriteLine("改名请求参数");
Console.WriteLine(JsonConvert.SerializeObject(request));
var res = client.Execute(request, token, DateTime.Now.ToLocalTime());
Console.WriteLine();
Console.WriteLine("改名返回内容");
Console.WriteLine(JsonConvert.SerializeObject(res));
}
#endregion
#region 修改细节图
foreach (var request in imageWriteUpdateRequestList)
{
Console.WriteLine("修改细节图请求参数");
Console.WriteLine(JsonConvert.SerializeObject(request));
var res = client.Execute(request, token, DateTime.Now.ToLocalTime());
Console.WriteLine();
Console.WriteLine("修改细节图返回内容");
Console.WriteLine(JsonConvert.SerializeObject(res));
Console.WriteLine();
}
#endregion
//#region 修改透图
//foreach (var request in transparentImageWriteAddRequestList)
//{
// Console.WriteLine("修改透图请求参数");
// Console.WriteLine(JsonConvert.SerializeObject(request));
// var res = client.Execute(request, token, DateTime.Now.ToLocalTime());
// Console.WriteLine();
// Console.WriteLine("修改透图返回内容");
// Console.WriteLine(JsonConvert.SerializeObject(res));
// Console.WriteLine();
//}
//#endregion
}
#endregion
Console.WriteLine("请求参数");
Console.WriteLine(JsonConvert.SerializeObject(req));
#region 删除SKU
foreach (var sku in newSkuList)
{
var req = new SkuWriteDeleteSkuRequest();
req.skuId = long.Parse(sku);
var res = client.Execute(req, token, DateTime.Now.ToLocalTime());
Console.WriteLine();
Console.WriteLine("返回内容");
Console.WriteLine("删除sku返回结果");
Console.WriteLine(JsonConvert.SerializeObject(res));
Console.WriteLine();
}
#endregion
}

19
BBWY.Test/Program.cs

@ -15,11 +15,15 @@ namespace BBWY.Test
static void Main(string[] args)
{
var appkey = "120EA9EC65AB017567D78CC1139EEEA5";
var appSecret = "8a42bc2301e8439b896e99f5475e0a9b";
//0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛
//2ace3023200c4ea9aa682bbf8bffee18jztm 布莱特玩具
var token = "0e61c4a8ec3e4df4b5836e10884db9220yth"; //"b46065ef5b894f2297686e28d39cb37a2mdy";//"";
//var appkey = "120EA9EC65AB017567D78CC1139EEEA5";
//var appSecret = "8a42bc2301e8439b896e99f5475e0a9b";
////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛
////2ace3023200c4ea9aa682bbf8bffee18jztm 布莱特玩具
//var token = "0e61c4a8ec3e4df4b5836e10884db9220yth"; //"b46065ef5b894f2297686e28d39cb37a2mdy";//"";
var appkey = "E1AA9247D5583A6D87449CE6AB290185";
var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c";
var token = "832ed917f2ec4accb849e4760dbab2a5myzw";
//var path = @"C:\Users\pengcong001\Desktop\含赠品SKU.txt";
//var j = JToken.Parse(System.IO.File.ReadAllText(path, System.Text.Encoding.UTF8));
@ -58,8 +62,9 @@ namespace BBWY.Test
//var ddTest = new DingDingAPITest();
//ddTest.Send();
//test1.ShangJiaTest(client, token);
test1.(client, token);
test1.ShangJiaTest(client, token);
//test1.修改属性别名(client, token);
//test1.QueryTouTu(client,token);
Console.ReadKey();
}
}

Loading…
Cancel
Save