public Response <OrderResponse> CreateOrder(Packages package, ShippingMethod method = null) { Orders order = package.Orders; Addresses address = order.Addresses; if (method == null) { method = package.Method; } try { var serviceTypeList = GetServiceTypeList(); string buyerName = string.Join(" ", new string[] { address.FirstName, address.MiddleInitial, address.LastName }); string buyerAddress2 = !string.IsNullOrEmpty(address.StreetLine2) ? address.StreetLine2.Trim() : ""; if (!string.IsNullOrEmpty(address.CompanyName)) { string companyName = address.CompanyName.Trim(); if (string.Format("{0} {1}", buyerName, companyName).Length <= 50) { buyerName = string.Format("{0} {1}", buyerName, companyName).Trim(); } else { buyerAddress2 = string.Format("{0} {1}", companyName, buyerAddress2).Trim(); } } List <Items> itemList = package.Items.Where(i => i.IsEnable.Value).ToList(); var orderData = new OrderData() { service_type = serviceTypeList[method.MethodType.Value], sales_record_number = string.Format("{0}-{1}", package.OrderID, Convert.ToInt32(package.ShipDate.Value.Subtract(new DateTime(1970, 1, 1)).TotalSeconds)), product_type = string.Join(",", itemList.Select(i => i.Skus.ProductType).Select(t => t.ProductTypeName).Distinct()), buyer_name = buyerName, buyer_phone = !string.IsNullOrEmpty(address.PhoneNumber) ? address.PhoneNumber.Trim() : "", buyer_address1 = address.StreetLine1.Trim(), buyer_address2 = buyerAddress2, buyer_city = address.City.Trim(), buyer_country = address.CountryName.Trim(), buyer_state = !string.IsNullOrEmpty(address.StateName) ? (address.CountryCode.Equals("US") && address.StateName.Length > 2 ? EnumData.StateAbbreviationExpand(address.StateName.Trim()) : address.StateName.Trim()) : "", buyer_zip = address.CountryCode.Equals("US") ? address.PostalCode.Split('-').First() : address.PostalCode.Trim(), cost = itemList.Sum(i => i.Qty.Value * i.DLDeclaredValue) }; var request = new { data = new CreateOrderRequest { orders = new OrderData[] { orderData } } }; return(Request <OrderResponse>("orders", "POST", request)); } catch (Exception e) { return(new Response <OrderResponse>() { status = 400, message = e.InnerException?.Message ?? e.Message }); } }