Exemplo n.º 1
0
        public void SubmitSingleProductInventoryFeed(MarketplaceInventoryFeed inventoryFeed, string submittedBy)
        {
            try
            {
                // parse the EIS product and create Amazon envelope
                var envelope = RequestHelper.CreateInventoryFeedEnvelope(new List <AmazonInventoryFeed> {
                    inventoryFeed.AmazonInventoryFeed
                });

                // parse the envelope into file
                var xmlFullName = XmlParser.WriteXmlToFile(envelope, "AmazonSingleInventoryFeed");

                var submitFeedController = new SubmitFeedController(_amazonClient,
                                                                    _logger,
                                                                    _credential.MarketplaceId,
                                                                    _credential.MerchantId,
                                                                    submittedBy);
                var streamResponse = submitFeedController.SubmitFeedAndGetResponse(xmlFullName, AmazonFeedType._POST_INVENTORY_AVAILABILITY_DATA_);
                parsedResultStreamAndLogReport(streamResponse, AmazonEnvelopeMessageType.Inventory, submittedBy);

                _logger.LogInfo(LogEntryType.AmazonInventoryUpdate, string.Format("{0} - Successfully posted single inventory feed for EisSKU \'{1}\'.\nRequested by: {2}",
                                                                                  ChannelName, inventoryFeed.EisSKU, submittedBy));
            }
            catch (Exception ex)
            {
                var description = string.Format("{0} - Error in submitting single product inventory feed for EisSKU \'{3}\'. \nError Message: {1} \nRequested by: {2}",
                                                ChannelName,
                                                EisHelper.GetExceptionMessage(ex),
                                                submittedBy,
                                                inventoryFeed.EisSKU);
                _logger.Add(LogEntrySeverity.Error, LogEntryType.AmazonInventoryUpdate, description, ex.StackTrace);
            }
        }
Exemplo n.º 2
0
        private BigCommerce4Net.Domain.Product mapEISInventoryToBCProduct(MarketplaceInventoryFeed productFeed, BigCommerce4Net.Domain.Product bcProduct)
        {
            bcProduct.Sku = productFeed.EisSKU;

            bcProduct.InventoryLevel = productFeed.BigCommerceInventoryFeed.ProductQuantity;

            if (productFeed.BigCommerceInventoryFeed.InventoryWarningLevel.HasValue)
            {
                bcProduct.InventoryWarningLevel = productFeed.BigCommerceInventoryFeed.InventoryWarningLevel.Value;
            }

            if (productFeed.BigCommerceInventoryFeed.InventoryTracking.HasValue)
            {
                bcProduct.InventoryTracking = (ProductsInventoryTracking)productFeed.BigCommerceInventoryFeed.InventoryTracking.Value;
            }

            if (productFeed.BigCommerceInventoryFeed.OrderQuantityMinimum.HasValue)
            {
                bcProduct.OrderQuantityMinimum = productFeed.BigCommerceInventoryFeed.OrderQuantityMinimum.Value;
            }

            if (productFeed.BigCommerceInventoryFeed.OrderQuantityMaximum.HasValue)
            {
                bcProduct.OrderQuantityMaximum = productFeed.BigCommerceInventoryFeed.OrderQuantityMaximum.Value;
            }

            return(bcProduct);
        }
Exemplo n.º 3
0
        public void SubmitSingleProductInventoryFeed(MarketplaceInventoryFeed inventoryFeed, string submittedBy)
        {
            try
            {
                if (string.IsNullOrEmpty(inventoryFeed.eBayInventoryFeed.ItemId))
                {
                    _logger.LogInfo(LogEntryType.eBayInventoryUpdate, string.Format("Unable to send inventory update feed for \'{0}\' since it doesn't have ItemId. \nRequested by: {1}", inventoryFeed.EisSKU, submittedBy));
                    return;
                }

                // create inventory item feed
                var inventoryStatus = new InventoryStatusType
                {
                    ItemID   = inventoryFeed.eBayInventoryFeed.ItemId,
                    Quantity = inventoryFeed.eBayInventoryFeed.InventoryQuantity
                };

                var inventoryStatusCollection = new InventoryStatusTypeCollection();
                inventoryStatusCollection.Add(inventoryStatus);

                // set the log file name
                _context.ApiLogManager.ApiLoggerList.Add(new FileLogger(string.Format(_logDirectory, MethodBase.GetCurrentMethod().Name), false, true, true));

                // send the inventory collection request
                var apiCall = new ReviseInventoryStatusCall(_context);
                var inventoryStatusResult = apiCall.ReviseInventoryStatus(inventoryStatusCollection);

                _logger.LogInfo(LogEntryType.eBayInventoryUpdate, string.Format("Successfully posted single inventory feed for {0} - {1} item. \nRequested by: {2}",
                                                                                ChannelName, inventoryFeed.EisSKU, submittedBy));
            }
            catch (Exception ex)
            {
                var description = string.Format("Error in submitting single inventory price feed for \'{0}\'. \nError Message: {1} \nRequested by: {2}",
                                                inventoryFeed.EisSKU,
                                                EisHelper.GetExceptionMessage(ex),
                                                submittedBy);
                _logger.Add(LogEntrySeverity.Error, LogEntryType.eBayInventoryUpdate, description, ex.StackTrace);
            }
        }
Exemplo n.º 4
0
        public void Should_Send_InventoryListing()
        {
            // Arrange
            EisInventoryContext _context = new EisInventoryContext();
            var bcOrderInventoryProvider = new BigCommerceMarketplaceInventoryProvider();

            bcOrderInventoryProvider.Credential = _credential;

            var eisSKU          = "";
            var productListFeed = new List <MarketplaceInventoryFeed>();
            var product         = _context.products.FirstOrDefault(o => o.EisSKU == eisSKU);
            var productBC       = _context.productbigcommerces.FirstOrDefault(o => o.EisSKU == eisSKU);
            var productFeed     = new MarketplaceInventoryFeed()
            {
                EisSKU = product.EisSKU
            };

            productFeed.BigCommerceInventoryFeed = new BigCommerceInventoryFeed()
            {
                SKU                   = productBC.EisSKU,
                InventoryLevel        = productBC.InventoryLevel,
                InventoryWarningLevel = productBC.InventoryWarningLevel,
                InventoryTracking     = productBC.InventoryTracking,
                OrderQuantityMaximum  = productBC.OrderQuantityMaximum,
                OrderQuantityMinimum  = productBC.OrderQuantityMinimum,
                ProductId             = productBC.ProductId
            };

            productListFeed.Add(productFeed);

            // Act
            bcOrderInventoryProvider.SubmitProductInventoryFeeds(productListFeed, "Test");


            // Assert
        }