| | Disables lazy loading for the database context. - Key functionality– Prevents inadvertent lazy loading of related entities during handler execution.
- Skip conditions – None; always executes.
- Data modifications – Sets DisableLazyLoading on the unit of work's data provider.
|
| | Validates the request context and parameters. - Verifies user has permission to view products.
- Ensures API compatibility with pricing and inventory settings.
- Validates parameter combinations and dependencies.
- Skip conditions – Returns error if validation fails.
- Data modifications – Sets result.GetProductSettingsResult with product settings.
|
| ValidateApplyPersonalization | Validates personalization application conditions. - Key functionality – Determines if personalization should be applied based on user status and personas.
- Skips personalization if ApplyPersonalization parameter is false.
- Skips if user is in CMS shell or is a remembered/signed-in user.
- Skips if no personalization session ID exists.
- Skips if no auto-assign personas are available.
- Sets result.PersonalizationSessionId.
- Sets result.AutoAssignGuestUserPersonas.
- May modify parameter.ApplyPersonalization to false.
|
| GetProductIdsForExtendedNames | Resolves product IDs from various product identifiers. - Checks for product replacement.
- Converts extended names, names, or ERP numbers to product IDs.
- Enforces product visibility restrictions if needed.
- Skip conditions – Skips if no product identifiers are provided.
- Data modifications – Sets parameter.ProductIds with resolved product IDs.
|
| | Retrieves frequently purchased products. - Key functionality – Gets frequently purchased products through catalog pipeline.
- Skip conditions – Skips if GetFrequentlyPurchased parameter is false.
- Stores result.GetFrequentlyPurchasedProductsResult.
- Updates parameter.ProductErpNumbers.
|
| | Retrieves recently purchased products. - Key Functionality – Gets recently purchased products through catalog pipeline.
- Skip Conditions – Skips if GetRecentlyPurchased parameter is false.
- Stores result.GetRecentlyPurchasedProductsResult.
- Updates parameter.ProductErpNumbers.
|
| | Retrieves "also purchased" product recommendations. - Gets products commonly purchased alongside products in current cart.
- Applies pagination to the results.
- Skipped if GetAlsoPurchased parameter is false.
- Skipped if cart is empty.
- Data modifications – Updates parameter.ProductIds with also purchased product IDs.
|
| | Retrieves recently viewed products. - Key functionality – Gets recently viewed products through catalog pipeline.
- Skip conditions – Skips if GetRecentlyViewed parameter is false.
- Stores result.GetRecentlyViewedProductsResult.
- Updates parameter.ProductErpNumbers.
|
| | Retrieves top-selling products. - Gets top-selling products based on weighted scores.
- Filters by category, brand, or product line if specified.
- Supports randomization of recommended products.
- Skip conditions – Skips if GetTopSellers parameter is false.
- Data modifications – Updates parameter.ProductIds with top-selling product IDs.
|
| | Retrieves site-level cross-sell products. - Gets active cross-sell products defined at the website level.
- Filters for visible products and parent products for styled variants.
- Skip conditions – Skips if GetSiteCrossSells parameter is false.
- Data modifications – Updates parameter.ProductIds with site cross-sell product IDs.
|
| | Executes product search using search criteria. - Configures comprehensive search parameter from request parameters.
- Executes search through catalog pipeline.
- Handles facet visibility based on settings.
- Skip conditions – Skips if ProductIds or ProductExtendedNames are already populated.
- Stores result.ProductSearchResult.
- Sets result.HideFacetsUntilCategorySelected.
|
| | Retrieves variant products potentially missing from search results. - Identifies missing variant products from frequently/recently purchased items.
- Validates visibility of variant products.
- Skip conditions – Skips if not GetFrequentlyPurchased and not GetRecentlyPurchased.
- Data modifications – Adds visible variant product IDs to result.AdditionalProductIds.
|
| | Processes search results into product DTOs. - Converts search results to ProductDto objects.
- Populates result metadata (pagination, sorting options, and so on).
- Handles "did you mean" suggestions and corrected queries.
- Skip conditions – Skips if ProductIds or ProductExtendedNames are populated.
- Populates result.ProductDtos.
- Sets pagination, sorting, and search metadata.
|
| | Populates context-specific data in product DTOs. - Key functionality – Enriches product DTOs with context-dependent information.
- Skip conditions – Skips if ProductDtos is empty.
- Data modifications – Updates result.ProductDtos with context data.
|
| | Retrieves expanded product data from database. - Configures product data retrieval parameters.
- Gets expanded product details from repository.
- Creates product DTOs for products by ID or additional products.
- Skip conditions – Skips if no product IDs, no product DTOs, and no additional product IDs.
- Stores result.GetProductDataResult.
- Populates or updates result.ProductDtos.
- Updates product visibility based on rule engine evaluation.
|
| PopulateExpandedProductData | Populates expanded product data into DTOs. - Adds variant traits, content, images, documents, specifications, and so on.
- Gets kit product data and visibility.
- Handles product translation.
- Skip conditions – Skips if ProductDtos is empty.
- Enriches result.ProductDtos with expanded details.
- Filters out products found in search but not in database.
|
| | Sorts products by ERP numbers. - Sorts product DTOs by the order of their ERP numbers.
- Updates sort options accordingly.
- Skip conditions – Skips if not GetFrequentlyPurchased or GetRecentlyViewed.
- Re-orders result.ProductDtos.
- Updates result.SortOrder and result.SortOptions.
|
| | Sorts products by product IDs. - Sorts product DTOs by the order of their IDs.
- Updates sort options accordingly.
- Skip conditions – Skips if not GetAlsoPurchased, GetTopSellers, or GetSiteCrossSells.
- Re-orders result.ProductDtos.
- Updates result.SortOrder and result.SortOptions.
|
| | Sorts and configures recently purchased products. - Joins product DTOs with recently purchased products data.
- Sets the correct unit of measure as default for each product.
- Skip conditions – Skips if not GetRecentlyPurchased.
- Updates result.ProductDtos with correct unit of measure defaults,
- Updates result.SortOrder and result.SortOptions.
|
| | Sorts products by price and applies pagination. - Gets product pricing from pricing pipeline if needed.
- Sorts products by price (low to high or high to low).
- Applies pagination to the sorted results.
- Skipped if using list pricing.
- Skipped if sort order is not price-based.
- Skipped if sort option is not available.
- Updates result.ProductDtos with pricing data and applies sorting/paging.
- Updates result.SortOrder and result.SortOptions.
|
| | Creates personalization events. - Key functionality – Creates dynamic personalization events for product-related personas.
- Skipped if ApplyPersonalization is false.
- Skipped if no personalization persona IDs are available.
- Data modifications – Inserts personalization events into event repository.
|
| | Updates user personas based on personalization events. - Counts personalization events.
- Assigns additional personas to users who meet threshold criteria.
- Skipped if ApplyPersonalization is false.
- Skipped if there are no eligible personas.
- Data modifications – Updates user's assigned personas in site context.
|