diff --git a/TradeManageNew/APIClients/ShopifyApi/ShopifyAPIClient.cs b/TradeManageNew/APIClients/ShopifyApi/ShopifyAPIClient.cs
index 35b9c1b..ce541ad 100644
--- a/TradeManageNew/APIClients/ShopifyApi/ShopifyAPIClient.cs
+++ b/TradeManageNew/APIClients/ShopifyApi/ShopifyAPIClient.cs
@@ -1842,10 +1842,18 @@ namespace APIClients.ShopifyAPI
public partial class Body3
{
///
- /// 变体SKU
+ /// 产品ID
///
- [Newtonsoft.Json.JsonProperty("sku", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
- public string Sku { get; set; }
+ [Newtonsoft.Json.JsonProperty("productId", Required = Newtonsoft.Json.Required.Always)]
+ [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)]
+ public string ProductId { get; set; }
+
+ ///
+ /// 变体编码
+ ///
+ [Newtonsoft.Json.JsonProperty("code", Required = Newtonsoft.Json.Required.Always)]
+ [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings = true)]
+ public string Code { get; set; }
private System.Collections.Generic.IDictionary _additionalProperties;
diff --git a/TradeManageNew/DD_OrderServiceNew.asmx.cs b/TradeManageNew/DD_OrderServiceNew.asmx.cs
index ba254e6..8c04d27 100644
--- a/TradeManageNew/DD_OrderServiceNew.asmx.cs
+++ b/TradeManageNew/DD_OrderServiceNew.asmx.cs
@@ -28927,10 +28927,10 @@ namespace TradeManageNew
{
Return_quantity = 1,
ImgUrl = imageUrls.Count > 0 ? imageUrls[0] : null,
- ImgUrl2 = imageUrls.Count > 0 ? imageUrls[0] : null,
- ImgUrl3 = imageUrls.Count > 0 ? imageUrls[0] : null,
- ImgUrl4 = imageUrls.Count > 0 ? imageUrls[0] : null,
- ImgUrl5 = imageUrls.Count > 0 ? imageUrls[0] : null,
+ ImgUrl2 = imageUrls.Count > 1 ? imageUrls[1] : null,
+ ImgUrl3 = imageUrls.Count > 2 ? imageUrls[2] : null,
+ ImgUrl4 = imageUrls.Count > 3 ? imageUrls[3] : null,
+ ImgUrl5 = imageUrls.Count > 4 ? imageUrls[4] : null,
StoreName = orderUsedSalePlatform.WarehouseLocation ==
TradeUsedSale.Enums.WarehouseLocation.East
? "E"
@@ -29026,31 +29026,98 @@ namespace TradeManageNew
PaymentMethod = originJsonData.Financial.PaymentMethod,
FinancialStatus = originJsonData.Financial.FinancialStatus,
RefundedAmount = originJsonData.Financial.RefundedAmount,
- OriginJson = originJson
+ OriginJson = originJson,
+ IsPlaceOrderSuccess = false
};
var dtShopifyUsedSaleOrderId = db.InsertWithInt32Identity(newDtShopifyUsedSaleOrder);
- foreach (var item in originJsonData.Items)
- {
- var newDtShopifyUsedSaleOrderItem =
- new TradeUsedSale.Repositories.Models.DT_ShopifyUsedSaleOrderItem
- {
- DtShopifyUsedSaleOrderId = dtShopifyUsedSaleOrderId,
- OriginSku = item.OriginSku,
- Sku = item.Sku,
- ProductCode = item.ProductCode,
- Quantity = item.Quantity,
- Price = item.Price,
- Title = item.Title,
- VariantTitle = item.VariantTitle,
- ProductId = item.ProductId,
- VariantId = item.VariantId,
- Image = item.Image,
- ShippingMethod = item.ShippingMethod
- };
+ db.BeginTransaction();
+
+ try
+ {
+ foreach (var item in originJsonData.Items)
+ {
+ var newDtShopifyUsedSaleOrderItem =
+ new TradeUsedSale.Repositories.Models.DT_ShopifyUsedSaleOrderItem
+ {
+ DtShopifyUsedSaleOrderId = dtShopifyUsedSaleOrderId,
+ OriginSku = item.OriginSku,
+ Sku = item.Sku,
+ ProductCode = item.ProductCode,
+ Quantity = item.Quantity,
+ Price = item.Price,
+ Title = item.Title,
+ VariantTitle = item.VariantTitle,
+ ProductId = item.ProductId,
+ VariantId = item.VariantId,
+ Image = item.Image,
+ ShippingMethod = item.ShippingMethod
+ };
+
+ db.InsertWithInt32Identity(newDtShopifyUsedSaleOrderItem);
+
+ //ERP二手商品信息
+ var orderUsedSalePlatform = db.DT_OrderUsedSalePlatform.FirstOrDefault(x => x.BarCode == item.ProductCode);
+ if (orderUsedSalePlatform is null)
+ {
+ throw new Exception($"未获取到编码[{item.ProductCode}]的二手商品信息");
+ }
+
+ //Shopify商品映射
+ var shopifyProductGoodsMap = db.DT_ShopifyProductGoodsMap.FirstOrDefault(x => x.SkuId == orderUsedSalePlatform.SkuId);
+ if (shopifyProductGoodsMap is null)
+ {
+ throw new Exception($"未获取到SKU[{orderUsedSalePlatform.SkuCode}]对应的Shopify产品信息");
+ }
+
+ //下单后修改二手商品信息
+ var statement = db.DT_OrderUsedSalePlatform.Where(x => x.BarCode == item.ProductCode)
+ .Set(x => x.Status, TradeUsedSale.Enums.UsedSalePlatformStatus.PendingPickup);
+ if (item.ShippingMethod == "SP")
+ {
+ statement = statement.Set(x => x.ShippingMethod,
+ TradeUsedSale.Enums.ShippingMethod.SelfPickup);
+ }
+
+ if (item.ShippingMethod == "DL")
+ {
+ statement = statement.Set(x => x.ShippingMethod,
+ TradeUsedSale.Enums.ShippingMethod.ExpressDelivery);
+ }
+ statement.Update();
+
+ // Shopify客户端
+ // 删除产品变体
+ var shopifyApiClient = new ShopifyAPIClient();
+ var productVariantRes = shopifyApiClient.DeleteProductVariantAsync(new Body3
+ {
+ ProductId = shopifyProductGoodsMap.ShopifyProductId,
+ Code = item.ProductCode,
+ }).ConfigureAwait(false)
+ .GetAwaiter()
+ .GetResult();
+
+ if (productVariantRes.Success != true)
+ {
+ throw new Exception(productVariantRes.Message);
+ }
+
+ db.DT_ShopifyUsedSaleOrder.Where(x => x.Id == dtShopifyUsedSaleOrderId)
+ .Set(x => x.IsPlaceOrderSuccess, true)
+ .Set(x => x.PlaceOrderMessage, "更新二手订单信息成功")
+ .Update();
+ }
- db.InsertWithInt32Identity(newDtShopifyUsedSaleOrderItem);
+ db.CommitTransaction();
+ }
+ catch (Exception ex)
+ {
+ db.RollbackTransaction();
+
+ db.DT_ShopifyUsedSaleOrder.Where(x => x.Id == dtShopifyUsedSaleOrderId)
+ .Set(x => x.PlaceOrderMessage, $"更新二手订单信息失败,原因:{ex.Message}")
+ .Update();
}
}
diff --git a/TradeUsedSale/Repositories/Models/DT_ShopifyUsedSaleOrder.cs b/TradeUsedSale/Repositories/Models/DT_ShopifyUsedSaleOrder.cs
index f856c14..ceae844 100644
--- a/TradeUsedSale/Repositories/Models/DT_ShopifyUsedSaleOrder.cs
+++ b/TradeUsedSale/Repositories/Models/DT_ShopifyUsedSaleOrder.cs
@@ -3,6 +3,9 @@ using LinqToDB.Mapping;
namespace TradeUsedSale.Repositories.Models
{
+ ///
+ /// 二手商品Shopify订单表
+ ///
public class DT_ShopifyUsedSaleOrder
{
[PrimaryKey, Identity] public int Id { get; set; }
@@ -96,5 +99,15 @@ namespace TradeUsedSale.Repositories.Models
/// 原始Json
///
public string OriginJson { get; set; }
+
+ ///
+ /// 是否同步下单信息成功
+ ///
+ public bool IsPlaceOrderSuccess { get; set; }
+
+ ///
+ /// 下单同步信息
+ ///
+ public string PlaceOrderMessage { get; set; }
}
}
\ No newline at end of file
diff --git a/TradeUsedSale/Repositories/Models/DT_ShopifyUsedSaleOrderItem.cs b/TradeUsedSale/Repositories/Models/DT_ShopifyUsedSaleOrderItem.cs
index 9877285..e4bae27 100644
--- a/TradeUsedSale/Repositories/Models/DT_ShopifyUsedSaleOrderItem.cs
+++ b/TradeUsedSale/Repositories/Models/DT_ShopifyUsedSaleOrderItem.cs
@@ -2,6 +2,9 @@
namespace TradeUsedSale.Repositories.Models
{
+ ///
+ /// 二手商品Shopify订单明细表
+ ///
public class DT_ShopifyUsedSaleOrderItem
{
[PrimaryKey, Identity] public int Id { get; set; }