public AmazonListing UpdateAmazonListing(AmazonListing amazonListing)
        {
            var productVariant = _productVariantService.GetProductVariantBySKU(amazonListing.ProductVariant.SKU);

            amazonListing.ProductVariant = productVariant;
            amazonListing.Brand          = productVariant.Product.Brand != null ? productVariant.Product.Brand.Name : String.Empty;
            amazonListing.Condition      = ConditionType.New;
            var currency = _ecommerceSettings.Currency();

            amazonListing.Currency      = (currency != null && !String.IsNullOrWhiteSpace(currency.Code))?currency.Code:CurrencyCode.GBP.GetDescription();
            amazonListing.Manafacturer  = productVariant.Product.Brand != null ? productVariant.Product.Brand.Name : String.Empty;
            amazonListing.MfrPartNumber = productVariant.ManufacturerPartNumber;
            amazonListing.Quantity      = productVariant.TrackingPolicy == TrackingPolicy.Track
                                          ? _getStockRemainingQuantity.Get(productVariant)
                                          : 1000;
            amazonListing.Price                 = _productPricingMethod.GetUnitPrice(productVariant, 0m, 0m);
            amazonListing.SellerSKU             = productVariant.SKU;
            amazonListing.Title                 = productVariant.DisplayName;
            amazonListing.StandardProductIDType = _amazonSellerSettings.BarcodeIsOfType;
            amazonListing.StandardProductId     = productVariant.Barcode.Trim();

            amazonListing.FulfillmentChannel = amazonListing.AmazonListingGroup.FulfillmentChannel ?? AmazonFulfillmentChannel.MFN;

            _amazonListingService.Save(amazonListing);

            return(amazonListing);
        }
Beispiel #2
0
        public void ListingController_AddOnePOST_ShouldCallSave()
        {
            var listing = new AmazonListing();

            var result = _listingController.AddOne_POST(listing);

            A.CallTo(() => _amazonListingService.Save(listing)).MustHaveHappened();
        }
        public void PrepareForSyncAmazonListingService_UpdateAmazonListing_ShouldCallSave()
        {
            var item = new Currency()
            {
                Code = "GBP", Id = 1
            };

            Session.Transact(session => session.Save(item));

            var mockingKernel = new MockingKernel();

            MrCMSKernel.OverrideKernel(mockingKernel);
            mockingKernel.Bind <ISession>().ToMethod(context => A.Fake <ISession>());
            mockingKernel.Bind <EcommerceSettings>().ToMethod(context => new EcommerceSettings()
            {
                CurrencyId = 1
            });

            var product = new Product()
            {
                BrandPage = new Brand()
                {
                    Name = "B"
                }
            };
            var productVariant = new ProductVariant()
            {
                Product                = product,
                SKU                    = "S1",
                BasePrice              = 1,
                StockRemaining         = 2,
                Name                   = "P",
                ManufacturerPartNumber = "MPN1",
                Barcode                = ""
            };
            var model = new AmazonListing()
            {
                ProductVariant        = productVariant,
                StandardProductId     = "1P",
                StandardProductIDType = StandardProductIDType.EAN,
                AmazonListingGroup    = new AmazonListingGroup()
                {
                    FulfillmentChannel = AmazonFulfillmentChannel.MFN
                }
            };

            A.CallTo(() => _productVariantService.GetProductVariantBySKU(model.ProductVariant.SKU)).Returns(productVariant);

            var results = _prepareForSyncAmazonListingService.UpdateAmazonListing(model);

            A.CallTo(() => _amazonListingService.Save(model)).MustHaveHappened();
        }
 public ActionResult AddOne_POST(AmazonListing amazonListing)
 {
     if (amazonListing != null)
     {
         if (ModelState.IsValid)
         {
             _amazonListingService.Save(amazonListing);
             return(RedirectToAction("SyncOne", new { id = amazonListing.Id }));
         }
         return(View(amazonListing));
     }
     return(RedirectToAction("Index", "ListingGroup"));
 }