diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECAftersaleUpdateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs
similarity index 78%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECAftersaleUpdateEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs
index 2479a4ae..319dd37a 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECAftersaleUpdateEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs
@@ -22,6 +22,16 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
[System.Xml.Serialization.XmlElement("after_sale_order_id")]
public long AftersaleOrderId { get; set; }
+
+ ///
+ /// 获取或设置订单 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("order_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("order_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ [System.Xml.Serialization.XmlElement("order_id")]
+ public long OrderId { get; set; }
+
///
/// 获取或设置售后单状态。
///
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECBrandEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECBrandEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECBrandEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECBrandEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECCompliantUpdateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECCompliantUpdateEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECCompliantUpdateEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECCompliantUpdateEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECCouponReceiveEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECCouponReceiveEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECCouponReceiveEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECCouponReceiveEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECHeadSupplierItemUpdateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECHeadSupplierItemUpdateEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECHeadSupplierItemUpdateEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECHeadSupplierItemUpdateEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderCancelEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderCancelEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderCancelEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderCancelEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderConfirmEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderConfirmEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderConfirmEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderConfirmEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderDeliverEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderDeliverEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderDeliverEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderDeliverEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderExtInfoUpdateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderExtInfoUpdateEvent.cs
new file mode 100644
index 00000000..52dafcc9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderExtInfoUpdateEvent.cs
@@ -0,0 +1,44 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Events
+{
+ ///
+ /// 表示 EVENT.channels_ec_order_ext_info_update 事件的数据。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ public class ChannelsECOrderExtInfoUpdateEvent : WechatApiEvent
+ {
+ public static class Types
+ {
+ public class Order
+ {
+ ///
+ /// 获取或设置订单 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("order_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("order_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ [System.Xml.Serialization.XmlElement("order_id")]
+ public long OrderId { get; set; }
+
+ ///
+ /// 获取或设置取消类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ [System.Xml.Serialization.XmlElement("type")]
+ public int Type { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置订单信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("order_info")]
+ [System.Text.Json.Serialization.JsonPropertyName("order_info")]
+ [System.Xml.Serialization.XmlElement("order_info")]
+ public Types.Order Order { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderNewEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderNewEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderNewEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderNewEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderPayEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderPayEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderPayEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderPayEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderSettleEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderSettleEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECOrderSettleEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECOrderSettleEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECProductCategoryAuditEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductCategoryAuditEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECProductCategoryAuditEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductCategoryAuditEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductOrderStatusUpdateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductOrderStatusUpdateEvent.cs
new file mode 100644
index 00000000..cad338c2
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductOrderStatusUpdateEvent.cs
@@ -0,0 +1,41 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Events
+{
+ ///
+ /// 表示 EVENT.product_order_status_update 事件的数据。
+ /// REF: https://developers.weixin.qq.com/doc/channels/API/order/callback/product_order_status_update.html
+ ///
+ public class ChannelsECProductOrderStatusUpdateEvent : WechatApiEvent
+ {
+ public static class Types
+ {
+ public class Order
+ {
+ ///
+ /// 获取或设置订单 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("order_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("order_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ [System.Xml.Serialization.XmlElement("order_id")]
+ public long OrderId { get; set; }
+
+ ///
+ /// 获取或设置订单状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("status")]
+ [System.Text.Json.Serialization.JsonPropertyName("status")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ [System.Xml.Serialization.XmlElement("status")]
+ public int Status { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置订单信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("ProductOrderStatusUpdate")]
+ [System.Text.Json.Serialization.JsonPropertyName("ProductOrderStatusUpdate")]
+ [System.Xml.Serialization.XmlElement("ProductOrderStatusUpdate")]
+ public Types.Order Order { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECProductSPUAuditEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductSPUAuditEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECProductSPUAuditEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductSPUAuditEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECProductSPUListingEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductSPUListingEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECProductSPUListingEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductSPUListingEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductSPUUpdateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductSPUUpdateEvent.cs
new file mode 100644
index 00000000..ae40248c
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECProductSPUUpdateEvent.cs
@@ -0,0 +1,41 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Events
+{
+ ///
+ /// 表示 EVENT.product_spu_update 事件的数据。
+ /// REF: https://developers.weixin.qq.com/doc/channels/API/product/callback/ProductSpuUpdate.html
+ ///
+ public class ChannelsECProductSPUUpdateEvent : WechatApiEvent
+ {
+ public static class Types
+ {
+ public class Product
+ {
+ ///
+ /// 获取或设置商品 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("product_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("product_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ [System.Xml.Serialization.XmlElement("product_id")]
+ public long ProductId { get; set; }
+
+ ///
+ /// 获取或设置审核状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("status")]
+ [System.Text.Json.Serialization.JsonPropertyName("status")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ [System.Xml.Serialization.XmlElement("status")]
+ public int Status { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置商品信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("ProductSpuUpdate")]
+ [System.Text.Json.Serialization.JsonPropertyName("ProductSpuUpdate")]
+ [System.Xml.Serialization.XmlElement("ProductSpuUpdate")]
+ public Types.Product Product { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECSharerChangeEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECSharerChangeEvent.cs
new file mode 100644
index 00000000..938aee1f
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECSharerChangeEvent.cs
@@ -0,0 +1,35 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Events
+{
+ ///
+ /// 表示 EVENT.channels_ec_sharer_change 事件的数据。
+ /// REF: https://developers.weixin.qq.com/doc/channels/API/sharer/bindsharer.html
+ ///
+ public class ChannelsECSharerChangeEvent : WechatApiEvent
+ {
+ ///
+ /// 获取或设置审核状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("bind_status")]
+ [System.Text.Json.Serialization.JsonPropertyName("bind_status")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ [System.Xml.Serialization.XmlElement("bind_status")]
+ public int BindStatus { get; set; }
+
+ ///
+ /// 获取或设置绑定分享员 OpenId。
+ ///
+ [Newtonsoft.Json.JsonProperty("openid")]
+ [System.Text.Json.Serialization.JsonPropertyName("openid")]
+ [System.Xml.Serialization.XmlElement("openid")]
+ public string OpenId { get; set; } = default!;
+
+ ///
+ /// 获取或设置分享员类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("sharer_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("sharer_type")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ [System.Xml.Serialization.XmlElement("sharer_type")]
+ public int SharerType { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipCloseEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipCloseEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipCloseEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipCloseEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipGradeInfoUpgradeEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipGradeInfoUpgradeEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipGradeInfoUpgradeEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipGradeInfoUpgradeEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipJoinEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipJoinEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipJoinEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipJoinEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipScoreExchangeEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipScoreExchangeEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipScoreExchangeEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipScoreExchangeEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipScoreUpdateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipScoreUpdateEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipScoreUpdateEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipScoreUpdateEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipTaskAwardEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipTaskAwardEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/ChannelsECVipTaskAwardEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECVipTaskAwardEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/EWaybillPushPathEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EWaybill/EWaybillPushPathEvent.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.Api/Events/ChannelsEC/EWaybillPushPathEvent.cs
rename to src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EWaybill/EWaybillPushPathEvent.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductAddRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductAddRequest.cs
index 78f110ad..4ca5dc03 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductAddRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductAddRequest.cs
@@ -61,6 +61,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public long TemplateId { get; set; }
+
+ ///
+ /// 获取或设置商品重量(单位:克)。
+ ///
+ [Newtonsoft.Json.JsonProperty("weight")]
+ [System.Text.Json.Serialization.JsonPropertyName("weight")]
+ public int? Weight { get; set; }
}
public class SKU
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductGetResponse.cs
index cdc83a05..a6869a96 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductGetResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductGetResponse.cs
@@ -65,6 +65,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long TemplateId { get; set; }
+
+ ///
+ /// 获取或设置商品重量(单位:克)。
+ ///
+ [Newtonsoft.Json.JsonProperty("weight")]
+ [System.Text.Json.Serialization.JsonPropertyName("weight")]
+ public int? Weight { get; set; }
}
public class SKU
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductUpdateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductUpdateRequest.cs
index 5813aec5..44628331 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductUpdateRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductUpdateRequest.cs
@@ -32,7 +32,14 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
///
[Newtonsoft.Json.JsonProperty("sku_id")]
[System.Text.Json.Serialization.JsonPropertyName("sku_id")]
- public long SKUId { get; set; }
+ public long? SKUId { get; set; }
+
+ ///
+ /// 获取或设置商家自定义 SKU ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("out_sku_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("out_sku_id")]
+ public string? OutSKUId { get; set; }
///
/// 获取或设置缩略图 URL。
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECAftersaleUpdateEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECAftersaleUpdateEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECAftersaleUpdateEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECAftersaleUpdateEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECBrandEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECBrandEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECBrandEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECBrandEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECCompliantUpdateEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECCompliantUpdateEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECCompliantUpdateEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECCompliantUpdateEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECCouponReceiveEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECCouponReceiveEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECCouponReceiveEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECCouponReceiveEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECHeadSupplierItemUpdateEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECHeadSupplierItemUpdateEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECHeadSupplierItemUpdateEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECHeadSupplierItemUpdateEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderCancelEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderCancelEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderCancelEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderCancelEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderConfirmEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderConfirmEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderConfirmEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderConfirmEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderDeliverEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderDeliverEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderDeliverEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderDeliverEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderNewEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderNewEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderNewEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderNewEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderPayEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderPayEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderPayEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderPayEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderSettleEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderSettleEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECOrderSettleEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECOrderSettleEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECProductCategoryAuditEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECProductCategoryAuditEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECProductCategoryAuditEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECProductCategoryAuditEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECProductSPUAuditEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECProductSPUAuditEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECProductSPUAuditEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECProductSPUAuditEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECProductSPUListingEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECProductSPUListingEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECProductSPUListingEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECProductSPUListingEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipCloseEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipCloseEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipCloseEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipCloseEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipGradeInfoUpgradeEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipGradeInfoUpgradeEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipGradeInfoUpgradeEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipGradeInfoUpgradeEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipJoinEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipJoinEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipJoinEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipJoinEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipScoreExchangeEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipScoreExchangeEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipScoreExchangeEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipScoreExchangeEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipScoreUpdateEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipScoreUpdateEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipScoreUpdateEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipScoreUpdateEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipTaskAwardEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipTaskAwardEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/ChannelsECVipTaskAwardEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECVipTaskAwardEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/EWaybillPushPathEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EWaybill/EWaybillPushPathEvent.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/ChannelsEC/EWaybillPushPathEvent.json
rename to test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EWaybill/EWaybillPushPathEvent.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductAddRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductAddRequest.json
index 5658d954..0f6bff87 100644
--- a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductAddRequest.json
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductAddRequest.json
@@ -31,7 +31,8 @@
}
],
"express_info": {
- "template_id": "47428464001"
+ "template_id": "47428464001",
+ "weight": 100
},
"skus": [
{
@@ -61,11 +62,11 @@
],
"spu_code": "AABBCC",
"brand_id": 2100000000,
- "qualifications": [ "123123" ],
+ "qualifications": ["123123"],
"extra_service": {
"seven_day_return": 1,
"pay_after_use": 1,
- "freight_insurance": 0
+ "freight_insurance": 0
},
"listing": true,
"after_sale_info": {
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductGetResponse.json
index 0dfaa4a7..ca105ca5 100644
--- a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductGetResponse.json
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductGetResponse.json
@@ -36,7 +36,8 @@
}
],
"express_info": {
- "template_id": "123456"
+ "template_id": "123456",
+ "weight": 100
},
"status": 5,
"edit_status": 2,
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductUpdateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductUpdateRequest.json
index f08ef210..e581104a 100644
--- a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductUpdateRequest.json
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECProduct/ChannelsECProductUpdateRequest.json
@@ -32,7 +32,8 @@
}
],
"express_info": {
- "template_id": "47428464001"
+ "template_id": "47428464001",
+ "weight": 100
},
"skus": [
{
@@ -87,7 +88,7 @@
],
"spu_code": "AABBCC",
"brand_id": 2100000000,
- "qualifications": [ "123123" ],
+ "qualifications": ["123123"],
"extra_service": {
"seven_day_return": 1,
"pay_after_use": 1,