chenwenkai 2 months ago
commit da9b5baeda

@ -1842,10 +1842,18 @@ namespace APIClients.ShopifyAPI
public partial class Body3
{
/// <summary>
/// 变体SKU
/// 产品ID
/// </summary>
[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; }
/// <summary>
/// 变体编码
/// </summary>
[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<string, object> _additionalProperties;

@ -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.CommitTransaction();
}
catch (Exception ex)
{
db.RollbackTransaction();
db.InsertWithInt32Identity(newDtShopifyUsedSaleOrderItem);
db.DT_ShopifyUsedSaleOrder.Where(x => x.Id == dtShopifyUsedSaleOrderId)
.Set(x => x.PlaceOrderMessage, $"更新二手订单信息失败,原因:{ex.Message}")
.Update();
}
}

@ -3,6 +3,9 @@ using LinqToDB.Mapping;
namespace TradeUsedSale.Repositories.Models
{
/// <summary>
/// 二手商品Shopify订单表
/// </summary>
public class DT_ShopifyUsedSaleOrder
{
[PrimaryKey, Identity] public int Id { get; set; }
@ -96,5 +99,15 @@ namespace TradeUsedSale.Repositories.Models
/// 原始Json
/// </summary>
public string OriginJson { get; set; }
/// <summary>
/// 是否同步下单信息成功
/// </summary>
public bool IsPlaceOrderSuccess { get; set; }
/// <summary>
/// 下单同步信息
/// </summary>
public string PlaceOrderMessage { get; set; }
}
}

@ -2,6 +2,9 @@
namespace TradeUsedSale.Repositories.Models
{
/// <summary>
/// 二手商品Shopify订单明细表
/// </summary>
public class DT_ShopifyUsedSaleOrderItem
{
[PrimaryKey, Identity] public int Id { get; set; }

Loading…
Cancel
Save