Exemplo n.º 1
0
        public void ShouldGetNewOrders()
        {
            var store = new AmazonStore();
            var results = store.GetNewOrders();

            results.Count.ShouldBeGreaterThan(1);
            results.ForEach(x => Console.WriteLine(x.OrderId));
            var orderService = new OrderService();
            //results.ForEach(x => orderService.CreateAmazonOrder(x));
        }
Exemplo n.º 2
0
        protected override void OnStart(string[] args)
        {
            NLog.LogManager.GetCurrentClassLogger().Info("AxIntegratorService.OnStart()");
            orderService = new OrderService();

            //GetNewOrdersFromMagento
            //UpdateOdersThatShippedFromShipWorks
            //push new inventory to stores
                //new items
                //inventory levels
                //turn item on or off
             var workerThread = new Thread(new ThreadStart(GetNewOrders));
             workerThread.Start();
        }
Exemplo n.º 3
0
        public SalesOrder MapOrderFromStore(salesOrderEntity magentoOrder)
        {
            var order = new SalesOrder();
            order.OrderId = magentoOrder.increment_id;
            order.NativeId = magentoOrder.order_id;
            order.CustomerEmail = magentoOrder.customer_email;
            order.BillToCustomerName = magentoOrder.customer_firstname + " " + magentoOrder.customer_lastname;
            if(string.IsNullOrWhiteSpace(order.BillToCustomerName) && magentoOrder.billing_address != null)
               order.BillToCustomerName = magentoOrder.billing_address.firstname + " " + magentoOrder.billing_address.lastname;

            order.DeliveryCustomerName = magentoOrder.shipping_address.firstname + " " + magentoOrder.shipping_address.lastname;
            order.DeliveryStreet = magentoOrder.shipping_address.street;
            order.DeliveryCity = magentoOrder.shipping_address.city;
            order.DeliveryState = magentoOrder.shipping_address.region;
            order.DeliveryZip = magentoOrder.shipping_address.postcode;
            order.DeliveryCountry = magentoOrder.shipping_address.country_id;
            SetBillingAddress(order, magentoOrder);
            DateTime utcSalesDate = DateTime.SpecifyKind(DateTime.Parse(magentoOrder.created_at), DateTimeKind.Utc);
            order.StoreCreatedAt =utcSalesDate.ToLocalTime();
            DateTime utcUpdateDate = DateTime.SpecifyKind(DateTime.Parse(magentoOrder.updated_at), DateTimeKind.Utc);
            order.StoreUpdatedAt = utcUpdateDate.ToLocalTime();
            order.StoreStatus = magentoOrder.status;

            var customFields = GetMagentoOrderCustomFields(int.Parse(magentoOrder.order_id));
            order.GiftMessageFrom = customFields.gift_message_sender;
            order.GiftMessageTo = customFields.gift_message_recipient;
            order.GiftMessageBody = customFields.gift_message;
            order.CustomerOrderComment = customFields.customer_comment;
            order.ShippingChargeCode = FreeShip(customFields.coupon_code,magentoOrder.shipping_method ) ? "FREESHIP" :"FREIGHT"; // or FREESHIP
            order.ShippingChargeAmount = FreeShip(customFields.coupon_code,magentoOrder.shipping_method) ? 0.0m : Decimal.Parse(magentoOrder.shipping_amount);

            order.EndDiscount = magentoOrder.customer_group_id.Trim() == "2" ? "RWC" : ""; // this is the whole sale group on magento
            order.PaymentMethod = MapPaymentMethod( magentoOrder);
            order.DeliveryMode = MapDeliveryMethod(magentoOrder);
            if(!string.IsNullOrWhiteSpace(magentoOrder.shipping_description))
                order.ShippingMethodDescription = ScrubShippingMethodDescription(magentoOrder.shipping_description);
            OrderService orderService = new OrderService();
            foreach(var line in magentoOrder.items)
            {
                order.AddLineItem(line.sku, line.name, Decimal.Parse(line.qty_ordered),
                                  Decimal.Parse(line.price),
                                  Decimal.Parse(line.row_total),
                                  orderService.GetItemSalesUoM(line.sku),
                                  orderService.GetItemPrice(line.sku),
                                  Decimal.Parse(line.discount_amount));
            }

            return order;
        }
Exemplo n.º 4
0
        public void GetOrderItems(SalesOrder salesOrder)
        {
            salesOrder.DeliveryMode = "Standard";
            salesOrder.ShippingMethodDescription = "Standard";
            salesOrder.ShippingChargeCode = "FREIGHT";

            OrderFetcher fetcher = new OrderFetcher(service, merchantId, new string[] { marketplaceId });
            var orderService = new OrderService();
            fetcher.FetchOrderItems(salesOrder.NativeId, delegate(OrderItem item)
            {
                NLog.LogManager.GetCurrentClassLogger().Info(item.ToString());
                if(item.IsSetShippingPrice())
                    salesOrder.ShippingChargeAmount += Decimal.Parse(item.ShippingPrice.Amount);
                var quantityOrdered = item.IsSetQuantityOrdered() ? item.QuantityOrdered : 0;
                if(!item.IsSetItemPrice() && quantityOrdered == 0)
                    NLog.LogManager.GetCurrentClassLogger().Error("Amazon, Assuming Line is Cancelled.  Item Price and Quantity not set for Order {0} Item SKU {1} Quantity Ordered {2}",salesOrder.OrderId,item.SellerSKU, quantityOrdered);
                else
                    salesOrder.AddLineItem(item.SellerSKU,item.Title,item.QuantityOrdered,decimal.Parse(item.ItemPrice.Amount) /  item.QuantityOrdered,
                                          decimal.Parse(item.ItemPrice.Amount),
                                           orderService.GetItemSalesUoM(item.SellerSKU),
                                           orderService.GetItemPrice(item.SellerSKU));
            });
        }
 public void ProcessUpdatedMagentoOrdersTest()
 {
     var service = new OrderService();
     var store = new MagentoStore();
     service.ProcessUpdatedMagentoOrders(store.GetUpdatedOrders());
 }
 public void ProcessAmazonOrders()
 {
     //things to fix, address white space for addtional lines, net amount not set, UoM
     var orderService = new OrderService();
     orderService.ProcessAmazonOrders();
 }
 public void InsertNewMagentoOrdersIntoAx()
 {
     var service = new OrderService();
     service.ProcessNewMagentoOrders();
 }
 public void GetItemSalesUoM()
 {
     var service = new OrderService();
     var uom = service.GetItemSalesUoM("618632-aa");
     uom.ShouldBe("12 COUNT");
 }