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

63
BBWY.JDSDK/Request/ImageWriteUpdateRequest.cs

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

42
BBWY.JDSDK/Request/TransparentImageWriteUpdateRequest.cs

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

224
BBWY.Test/JDProductAPITest.cs

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

19
BBWY.Test/Program.cs

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

Loading…
Cancel
Save