|
@ -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,71 +175,178 @@ 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) |
|
|
|
|
|
{ |
|
|
|
|
|
foreach (var multiCateProp in multiCateProps) |
|
|
|
|
|
{ |
|
|
var m = new SkuWriteUpdateSkusItemSaleAttrs(); |
|
|
var m = new SkuWriteUpdateSkusItemSaleAttrs(); |
|
|
m.type = "com.jd.pop.ware.ic.api.domain.Prop"; |
|
|
m.type = "com.jd.pop.ware.ic.api.domain.Prop"; |
|
|
m.attrId = colorProperty.Value<string>("attId"); |
|
|
m.attrId = multiCateProp.Value<string>("attrId"); |
|
|
m.attrValues = new List<string>() { colorProperty.Value<string>("id") }; |
|
|
m.attrValues = multiCateProp.Value<JArray>("attrValues").Select(x => x.ToString()).ToList(); |
|
|
m.attrValueAlias = new List<string>() { |
|
|
p.multiCateProps.Add(m); |
|
|
giftSku.Title |
|
|
} |
|
|
//colorProperty.Value<string>("name")
|
|
|
} |
|
|
}; |
|
|
|
|
|
m.index = takeColorIndex; |
|
|
|
|
|
p.saleAttrs.Add(m); |
|
|
|
|
|
takeColorIndex--; |
|
|
|
|
|
|
|
|
|
|
|
//foreach (var saleAttr in colorSaleAttrs)
|
|
|
//修改标题参数
|
|
|
//{
|
|
|
updateSkuTitleParamList.Add(new WareWriteUpdateWareSaleAttrvalueAliasRequestItem() |
|
|
// var m = new SkuWriteUpdateSkusItemSaleAttrs();
|
|
|
{ |
|
|
// m.attrId = saleAttr.Value<string>("attrId");
|
|
|
attrId = p.saleAttrs[0].attrId, |
|
|
// m.attrValues = saleAttr.Value<JArray>("attrValues").Select(x => x.ToString()).ToList();
|
|
|
attrValues = p.saleAttrs[0].attrValues, |
|
|
// p.saleAttrs.Add(m);
|
|
|
attrValueAlias = new List<string>() { giftSku.Title } |
|
|
//}
|
|
|
}); |
|
|
|
|
|
|
|
|
//p.multiCateProps = new List<SkuWriteUpdateSkusItemSaleAttrs>();
|
|
|
////修改透图参数
|
|
|
//if (multiCateProps != null && multiCateProps.Count() > 0)
|
|
|
//var transparentImageWriteAddRequest = new TransparentImageWriteAddRequest()
|
|
|
|
|
|
//{
|
|
|
|
|
|
// 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 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); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#region 上架sku
|
|
|
|
|
|
{ |
|
|
var req = new SkuWriteUpdateSkusRequest(); |
|
|
var req = new SkuWriteUpdateSkusRequest(); |
|
|
req.wareId = long.Parse(mainSpu); |
|
|
req.wareId = long.Parse(mainSpu); |
|
|
req.skus = skusParamList; |
|
|
req.skus = skusParamList; |
|
|
|
|
|
Console.WriteLine("上架请求参数"); |
|
|
Console.WriteLine("请求参数"); |
|
|
|
|
|
Console.WriteLine(JsonConvert.SerializeObject(req)); |
|
|
Console.WriteLine(JsonConvert.SerializeObject(req)); |
|
|
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("上架返回内容"); |
|
|
|
|
|
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)); |
|
|
Console.WriteLine(JsonConvert.SerializeObject(res)); |
|
|
} |
|
|
} |
|
|
#endregion
|
|
|
#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
|
|
|
|
|
|
|
|
|
|
|
|
#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("删除sku返回结果"); |
|
|
|
|
|
Console.WriteLine(JsonConvert.SerializeObject(res)); |
|
|
|
|
|
Console.WriteLine(); |
|
|
|
|
|
} |
|
|
|
|
|
#endregion
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void 修改属性别名(IJdClient client, string token) |
|
|
public void 修改属性别名(IJdClient client, string token) |
|
|