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