public static List <eBayFBOrder> MapNewOrders(Config cfg, OrderTypeCollection orders)
        {
            var ret = new List <eBayFBOrder>();

            foreach (OrderType o in orders)
            {
                var x = new eBayFBOrder();
                x.eBayOrder    = o;
                x.CustomerName = MapCustomerName(cfg, o);
                ret.Add(x);
            }

            return(ret);
        }
        private static List <CustomField> MapCustomFields(Config cfg, eBayFBOrder ord)
        {
            List <CustomField> ret = new List <CustomField>();

            if (ord.eBayOrder.TransactionArray?.Count > 0)
            {
                String emailAdd = ord.eBayOrder.TransactionArray.ItemAt(0).Buyer.Email;
                ret.Add(new CustomField()
                {
                    Name = "Order Email",
                    Type = "CFT_LONG_TEXT",
                    Info = emailAdd
                });
            }
            ret.Add(new CustomField()
            {
                Name = "Ebay Record No",
                Type = "CFT_LONG_TEXT",
                Info = ord.eBayOrder.OrderID.ToString()
            });

            ret.Add(new CustomField()
            {
                Name = "Requested Shipping",
                Type = "CFT_LONG_TEXT",
                Info = MapCarrier(cfg, ord.eBayOrder.ShippingServiceSelected.ShippingService)
            });

            ret.Add(new CustomField()
            {
                Name = "Delivery Instructions:",
                Type = "CFT_LONG_TEXT",
                Info = ord.eBayOrder?.BuyerCheckoutMessage ?? ""
            });



            return(ret);
        }
        public static FishbowlSDK.SalesOrder MapSalesOrder(Config cfg, eBayFBOrder ord, String OrderStatus)
        {
            SalesOrder salesOrder = new SalesOrder();

            var o = ord.eBayOrder;

            salesOrder.CustomerName = ord.CustomerName;

            salesOrder.TotalIncludesTax          = true;
            salesOrder.TotalIncludesTaxSpecified = true;

            salesOrder.CustomerPO = o.BuyerUserID.ToString();

            salesOrder.Salesman = cfg.Store.OrderSettings.Salesman;
            salesOrder.Carrier  = MapCarrier(cfg, o.ShippingServiceSelected.ShippingService);

            salesOrder.LocationGroup = cfg.Store.OrderSettings.LocationGroup;
            salesOrder.FOB           = cfg.Store.OrderSettings.ShipTerms;
            salesOrder.Status        = OrderStatus;

            salesOrder.CustomerContact = "Ebay Sale";



            salesOrder.Items = MapItems(cfg, ord.eBayOrder.TransactionArray).ToList();

            //salesOrder.Items.Add(AddSubTotal(salesOrder.Items.First()));

            //salesOrder.Items.Add(AddDiscountMiscSale(o.TransactionArray.Transaction.SellerDiscounts, salesOrder.Items.First()));

            /*
             * if (o.giftcert_discount > 0)
             * {
             *  salesOrder.Items.Add(AddSubTotal(salesOrder.Items.First()));
             *  salesOrder.Items.Add(AddGiftCertificateDiscount(o.giftcert_discount, o.giftcert_ids, salesOrder.Items.First()));
             * }
             */


            double ShippingCost = 0.00;

            if (ord.eBayOrder.ShippingServiceSelected.ShippingServiceCost != null)
            {
                ShippingCost = ord.eBayOrder.ShippingServiceSelected.ShippingServiceCost.Value;
            }

            salesOrder.Items.Add(AddShipping(MapCarrier(cfg, o.ShippingServiceSelected.ShippingService), "Shipping", Math.Round(ShippingCost, 2), salesOrder.Items.First()));



            salesOrder.CustomFields = MapCustomFields(cfg, ord);

            String address = (((o.ShippingAddress?.CompanyName ?? "").Trim() + " " + (o.ShippingAddress?.Street ?? "").Trim() + " " + (o.ShippingAddress?.Street1 ?? "").Trim() + " " + (o.ShippingAddress?.Street2 ?? "").Trim())).Trim().Replace(",", " ");

            salesOrder.Ship = new ShipType
            {
                AddressField = address,
                City         = o.ShippingAddress.CityName,
                Country      = o.ShippingAddress.CountryName,
                State        = o.ShippingAddress.StateOrProvince,
                Zip          = o.ShippingAddress.PostalCode,
                Name         = o.ShippingAddress.Name
            };

            salesOrder.BillTo = new BillType
            {
                AddressField = address,
                City         = o.ShippingAddress.CityName,
                Country      = o.ShippingAddress.CountryName,
                State        = o.ShippingAddress.StateOrProvince,
                Zip          = o.ShippingAddress.PostalCode,
                Name         = o.ShippingAddress.Name
            };

            return(salesOrder);
        }