需求目标:针对上架产品,产品修改标题、关键词、描述,提前预知产品是否包含侵权词,避免产品侵权而给店铺带来损失。
需求价值: 提升效率
没有接口前,一个月平均有60个产品违禁的,也有不少被扣分,这其中有一半是修改亚马逊的组合标题引起的,不少是新词,人工没法提前完善敏感词库。
业务价值:保证店铺的安全
需求内容:封装信息
1、接口地址:https://open.aliexpress.com/doc/api.htm#/api?cid=20904&path=aliexpress.postproduct.redefining.findaeproductprohibitedwords&methodType=GET/POST
2、传参信息包含:商品类目ID、商品标题、关键字、商品类目属性、商品的详细描述
3、响应参数:违禁词名称、违禁原因
4、将封装后代码提交赛盒,上传至聚石塔,提供给数据小组,线下使用
聚石塔项目接口:8fwu25wutz.ali.pro.redefining.findaeproductprohibitedwords
参数:
public class FindAEProductProhibiteDwordsParameter
{
/// <summary>
/// 商品类目ID
/// </summary>
[JsonProperty("category_id")]
public long? CategoryId { get; set; }
/// <summary>
/// 商品的详细描述
/// </summary>
[JsonProperty("detail")]
public string Detail { get; set; }
/// <summary>
/// none
/// </summary>
[JsonProperty("keywords")]
public string Keywords { get; set; }
/// <summary>
/// none
/// </summary>
[JsonProperty("product_properties")]
public string ProductProperties { get; set; }
/// <summary>
/// 商品的标题
/// </summary>
[JsonProperty("title")]
public string Title { get; set; }
}
响应:
[Serializable]
public abstract class TopResponse
{
/// <summary>
/// 错误码
/// </summary>
[XmlElement("code")]
[JsonProperty("code")]
public string ErrCode { get; set; }
/// <summary>
/// 错误信息
/// </summary>
[XmlElement("msg")]
[JsonProperty("msg")]
public string ErrMsg { get; set; }
/// <summary>
/// 子错误码
/// </summary>
[XmlElement("sub_code")]
[JsonProperty("sub_code")]
public string SubErrCode { get; set; }
/// <summary>
/// 子错误信息
/// </summary>
[XmlElement("sub_msg")]
[JsonProperty("sub_msg")]
public string SubErrMsg { get; set; }
/// <summary>
/// 响应原始内容
/// </summary>
[XmlElement("Body")]
[JsonProperty("Body")]
public string Body { get; set; }
[XmlElement("error_code")]
[JsonProperty("error_code")]
public string ErrorCode { get; set; }
private string errorMessge;
[XmlElement("error_message")]
[JsonProperty("error_message")]
public string ErrorMessage
{
get
{
if (string.IsNullOrWhiteSpace(errorMessge))
{
return this.errorMessge;
}
else
{
List<string> messageList = new List<string>();
if (!string.IsNullOrWhiteSpace(this.ErrorCode))
{
messageList.Add(string.Format("ErrCode : {0};", this.ErrorCode));
}
if (!string.IsNullOrWhiteSpace(this.ErrMsg))
{
messageList.Add(string.Format("ErrMsg : {0};", this.ErrMsg));
}
if (!string.IsNullOrWhiteSpace(this.SubErrCode))
{
messageList.Add(string.Format("SubErrCode : {0};", this.SubErrCode));
}
if (!string.IsNullOrWhiteSpace(this.SubErrMsg))
{
messageList.Add(string.Format("SubErrMsg : {0};", this.SubErrMsg));
}
return string.Join(";", messageList);
}
}
set
{
this.errorMessge = value;
}
}
[XmlElement("result_success")]
[JsonProperty("result_success")]
public bool ResultSuccess
{
get
{
return (string.IsNullOrEmpty(this.ErrCode)|| this.ErrCode=="0") && string.IsNullOrEmpty(this.SubErrCode);
}
}
/// <summary>
/// 响应结果是否错误
/// </summary>
public bool IsError
{
get
{
return (!string.IsNullOrEmpty(this.ErrCode)&&this.ErrCode!="0") || !string.IsNullOrEmpty(this.SubErrCode);
}
}
}
/// <summary>
/// AliexpressPostproductRedefiningFindaeproductprohibitedwordsResponse.
/// </summary>
public class AliexpressPostproductRedefiningFindaeproductprohibitedwordsResponse : TopResponse
{
/// <summary>
/// result
/// </summary>
[XmlElement("result")]
[JsonProperty("result")]
public AeopProhibitedWordsResultDtoDomain Result { get; set; }
/// <summary>
/// ProhibitedWordDomain Data Structure.
/// </summary>
[Serializable]
public class ProhibitedWordDomain : TopObject
{
/// <summary>
/// 违禁词名称
/// </summary>
[XmlElement("primary_word")]
[JsonProperty("primary_word")]
public string PrimaryWord { get; set; }
/// <summary>
/// 违禁原因
/// </summary>
[XmlArray("types")]
[XmlArrayItem("string")]
[JsonProperty("types")]
public List<string> Types { get; set; }
}
/// <summary>
/// AeopProhibitedWordsResultDtoDomain Data Structure.
/// </summary>
[Serializable]
public class AeopProhibitedWordsResultDtoDomain : TopObject
{
/// <summary>
/// 商品详描中的违禁词列表, 如果商品详描中没有违禁词, 则返回一个"'[]"。否则将以示例值中的格式返回。其中每个违禁词都包含了2个属性: primaryWord和types。其中primaryWord表示违禁词,types表示违禁词的类型,总共有四种类型: FORBIDEN_TYPE(禁用), RESTRICT_TYPE(限定), BRAND_TYPE(品牌), TORT_TYPE(侵权)。
/// </summary>
[XmlArray("detail_prohibited_words")]
[XmlArrayItem("prohibited_word")]
[JsonProperty("detail_prohibited_words")]
public List<ProhibitedWordDomain> DetailProhibitedWords { get; set; }
/// <summary>
/// 错误代码
/// </summary>
[XmlElement("error_code")]
[JsonProperty("error_code")]
public long ErrorCode { get; set; }
/// <summary>
/// 错误信息
/// </summary>
[XmlElement("error_message")]
[JsonProperty("error_message")]
public string ErrorMessage { get; set; }
/// <summary>
/// 关键字的违禁词列表, 如果关键字中没有违禁词, 则返回一个"'[]"。否则将以示例值中的格式返回。其中每个违禁词都包含了2个属性: primaryWord和types。其中primaryWord表示违禁词,types表示违禁词的类型,总共有四种类型: FORBIDEN_TYPE(禁用), RESTRICT_TYPE(限定), BRAND_TYPE(品牌), TORT_TYPE(侵权)。
/// </summary>
[XmlArray("keywords_prohibited_words")]
[XmlArrayItem("prohibited_word")]
[JsonProperty("keywords_prohibited_words")]
public List<ProhibitedWordDomain> KeywordsProhibitedWords { get; set; }
/// <summary>
/// 类目属性的违禁词列表, 如果类目属性中没有违禁词, 则返回一个"'[]"。否则将以示例值中的格式返回。其中每个违禁词都包含了2个属性: primaryWord和types。其中primaryWord表示违禁词,types表示违禁词的类型,总共有四种类型: FORBIDEN_TYPE(禁用), RESTRICT_TYPE(限定), BRAND_TYPE(品牌), TORT_TYPE(侵权)。
/// </summary>
[XmlArray("product_properties_prohibited_words")]
[XmlArrayItem("prohibited_word")]
[JsonProperty("product_properties_prohibited_words")]
public List<ProhibitedWordDomain> ProductPropertiesProhibitedWords { get; set; }
/// <summary>
/// 标题中的违禁词列表, 如果标题字中没有违禁词, 则返回一个"'[]"。否则将以示例值中的格式返回。其中每个违禁词都包含了2个属性: primaryWord和types。其中primaryWord表示违禁词,types表示违禁词的类型,总共有四种类型: FORBIDEN_TYPE(禁用), RESTRICT_TYPE(限定), BRAND_TYPE(品牌), TORT_TYPE(侵权)。
/// </summary>
[XmlArray("title_prohibited_words")]
[XmlArrayItem("prohibited_word")]
[JsonProperty("title_prohibited_words")]
public List<ProhibitedWordDomain> TitleProhibitedWords { get; set; }
}
}