private async Task <string[]> TryAddItemsToCartAsync(BulkOrderItem[] bulkOrderItems)
        {
            var skus = bulkOrderItems.Select(i => i.Sku);
            var productSearchResult = await _catalogSearchService.SearchProductsAsync(new ProductSearchCriteria
            {
                PageSize = skus.Count(),
                Terms    = new[] { new Term {
                                       Name = "code", Value = string.Join(",", skus)
                                   } }
            });

            foreach (var product in productSearchResult.Products)
            {
                var bulkOrderItem = bulkOrderItems.FirstOrDefault(i => i.Sku == product.Sku);
                if (bulkOrderItem != null)
                {
                    await _cartBuilder.AddItemAsync(product, bulkOrderItem.Quantity);
                }
            }

            await _cartBuilder.SaveAsync();

            var notFoundedSkus = bulkOrderItems.Select(x => x.Sku).Except(productSearchResult.Products.Select(x => x.Sku))
                                 .Distinct().ToArray();

            return(notFoundedSkus);
        }
Пример #2
0
        public async Task <ActionResult> SearchProducts(CatalogSearchCriteria searchCriteria)
        {
            var retVal = await _catalogSearchService.SearchProductsAsync(searchCriteria);

            return(Json(new
            {
                Products = retVal.Products,
                Aggregations = retVal.Aggregations,
                MetaData = retVal.Products.GetMetaData()
            }));
        }
Пример #3
0
        public async Task <ActionResult> SearchProducts(ProductSearchCriteria searchCriteria)
        {
            var retVal = await _catalogSearchService.SearchProductsAsync(searchCriteria);

            foreach (var product in retVal.Products)
            {
                product.Url = base.UrlBuilder.ToAppAbsolute(product.Url);
            }
            return(Json(new
            {
                Products = retVal.Products,
                Aggregations = retVal.Aggregations,
                MetaData = retVal.Products.GetMetaData()
            }));
        }