public FileStream GetSingleFeed(object feed, AmazonEnvelopeMessageType amazonEnvelopeMessageType, AmazonEnvelopeMessageOperationType?amazonEnvelopeMessageOperationType) { if (feed != null) { var message = new AmazonEnvelopeMessage { MessageID = "1", Item = feed }; if (amazonEnvelopeMessageOperationType != null) { message.OperationType = amazonEnvelopeMessageOperationType.Value; } var amazonEnvelope = new AmazonEnvelope { Header = new Header { DocumentVersion = "1.0", MerchantIdentifier = _amazonSellerSettings.SellerId }, MessageType = amazonEnvelopeMessageType, Message = new AmazonEnvelopeMessageCollection() { message } }; return(AmazonAppHelper.GetStream(amazonEnvelope, amazonEnvelopeMessageType)); } return(null); }
public AmazonOrder ScheduleSync(Order order) { switch (order.OrderStatus) { case OrderStatusEnum.Unshipped: case OrderStatusEnum.PartiallyShipped: case OrderStatusEnum.Shipped: case OrderStatusEnum.Canceled: { if (!_importAmazonOrderService.IsCurrencyValid(order)) { _amazonLogService.Add(AmazonLogType.Orders, AmazonLogStatus.Stage, null, null, AmazonApiSection.Orders, null, null, null, null, string.Format( "Amazon Order #{0} uses different currency than current MrCMS Site.", order.AmazonOrderId)); } else { var amazonOrder = _amazonOrderService.GetByAmazonOrderId(order.AmazonOrderId); var amazonOrderData = _amazonOrderSyncInfoService.GetByAmazonOrderId(order.AmazonOrderId).ToList(); if (order.OrderStatus == OrderStatusEnum.Canceled) { return(amazonOrder); } var newAmazonOrderData = new AmazonOrderSyncData { OrderId = order.AmazonOrderId, Operation = (amazonOrder == null ? (amazonOrderData.Any(x => x.Operation == SyncAmazonOrderOperation.Add) ? SyncAmazonOrderOperation.Update : SyncAmazonOrderOperation.Add) : SyncAmazonOrderOperation.Update), Status = SyncAmazonOrderStatus.Pending, Data = AmazonAppHelper.SerializeToJson(order), Site = CurrentRequestData.CurrentSite }; if (amazonOrder != null) { newAmazonOrderData.AmazonOrder = amazonOrder; } _amazonOrderSyncInfoService.Add(newAmazonOrderData); return(amazonOrder); } } break; } return(null); }
public ProductImage GetProductImage(AmazonListing listing) { if (listing.ProductVariant != null && listing.ProductVariant.Product != null && listing.ProductVariant.Product.Images.Any()) { var image = listing.ProductVariant.Product.Images.First(); if (image.FileExtension.Contains(".jpeg")) { return(new ProductImage() { SKU = listing.SellerSKU, ImageType = ProductImageImageType.Main, ImageLocation = AmazonAppHelper.GetValidImageUrl(image.FileUrl) }); } } return(null); }
public AmazonOrder UpdateOrder(AmazonOrderSyncData amazonOrderSyncData) { var existingAmazonOrder = _amazonOrderService.GetByAmazonOrderId(amazonOrderSyncData.OrderId); if (amazonOrderSyncData.Operation == SyncAmazonOrderOperation.Add && existingAmazonOrder != null) { amazonOrderSyncData.Status = SyncAmazonOrderStatus.Synced; amazonOrderSyncData.AmazonOrder = existingAmazonOrder; _amazonOrderSyncDataService.Update(amazonOrderSyncData); _amazonOrderSyncDataService.Delete(amazonOrderSyncData); return(existingAmazonOrder); } if (amazonOrderSyncData.AmazonOrder == null && existingAmazonOrder != null) { amazonOrderSyncData.AmazonOrder = existingAmazonOrder; _amazonOrderSyncDataService.Update(amazonOrderSyncData); } var amazonOrder = amazonOrderSyncData.AmazonOrder = amazonOrderSyncData.AmazonOrder ?? new AmazonOrder(); var order = AmazonAppHelper.DeserializeFromJson <Order>(amazonOrderSyncData.Data); var success = ProcessOrder(order, ref amazonOrder, amazonOrderSyncData.Operation == SyncAmazonOrderOperation.Add); if (success) { amazonOrderSyncData.Status = SyncAmazonOrderStatus.Synced; amazonOrderSyncData.AmazonOrder = amazonOrder; _amazonOrderSyncDataService.Update(amazonOrderSyncData); _amazonOrderSyncDataService.Delete(amazonOrderSyncData); } else { amazonOrderSyncData.Status = SyncAmazonOrderStatus.Pending; amazonOrderSyncData.AmazonOrder = amazonOrder; _amazonOrderSyncDataService.Update(amazonOrderSyncData); } return(amazonOrder); }
public AmazonDashboardModel GetAmazonDashboardModel(DateTime?from, DateTime?to) { var model = new AmazonDashboardModel(); if (from.HasValue) { model.FilterFrom = from.Value; } if (to.HasValue) { model.FilterUntil = to.Value; } model.NoOfActiveListings = GetNumberOfActiveListings(); model.NoOfApiCalls = GetNumberOfApiCalls(model.FilterFrom, model.FilterUntil); model.NoOfOrders = GetNumberOfOrders(model.FilterFrom, model.FilterUntil); model.NoOfUnshippedOrders = GetNumberUnshippedOrders(model.FilterFrom, model.FilterUntil); model.AverageOrderAmount = GetAverageOrderAmount(model.FilterFrom, model.FilterUntil); model.NoOfOrderedProducts = GetNumberOfOrderedProducts(model.FilterFrom, model.FilterUntil); model.NoOfShippedProducts = GetNumberOfShippedProducts(model.FilterFrom, model.FilterUntil); model.AppSettingsStatus = AmazonAppHelper.CheckAppSettingsStatus(_amazonAppSettings); model.SellerSettingsStatus = AmazonAppHelper.CheckSellerSettingsStatus(_amazonSellerSettings); return(model); }
public FileStream GetFeed(IEnumerable <object> feeds, AmazonEnvelopeMessageType amazonEnvelopeMessageType, AmazonEnvelopeMessageOperationType?amazonEnvelopeMessageOperationType) { if (feeds != null && feeds.Any()) { var messages = new AmazonEnvelopeMessageCollection(); var msgCounter = 1; foreach (var feed in feeds) { var message = new AmazonEnvelopeMessage { MessageID = msgCounter.ToString(), Item = feed }; if (amazonEnvelopeMessageOperationType != null) { message.OperationType = amazonEnvelopeMessageOperationType.Value; } messages.Add(message); msgCounter++; } var amazonEnvelope = new AmazonEnvelope { Header = new Header { DocumentVersion = "1.0", MerchantIdentifier = _amazonSellerSettings.SellerId }, MessageType = amazonEnvelopeMessageType, Message = messages }; return(AmazonAppHelper.GetStream(amazonEnvelope, amazonEnvelopeMessageType)); } return(null); }