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; }
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)); }); }