500 | DisableLazyLoading | 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.
|
600 | ValidateContext | Validates the request context and parameters.
- Key functionality
- 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.
|
700 | ValidateApplyPersonalization | Validates personalization application conditions.
- Key functionality – Determines if personalization should be applied based on user status and personas.
- Skip conditions
- 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.
- Data modifications
- Sets
result.PersonalizationSessionId . - Sets
result.AutoAssignGuestUserPersonas . - May modify
parameter.ApplyPersonalization to false .
|
800 | GetProductIdsForExtendedNames | Resolves product IDs from various product identifiers.
- Key functionality
- 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.
|
900 | GetFrequentlyPurchased | Retrieves frequently purchased products.
- Key functionality – Gets frequently purchased products through catalog pipeline.
- Skip conditions – Skips if
GetFrequentlyPurchased parameter is false . - Data modifications
- Stores
result.GetFrequentlyPurchasedProductsResult . - Updates
parameter.ProductErpNumbers .
|
1000 | GetRecentlyPurchased | Retrieves recently purchased products.
- Key Functionality – Gets recently purchased products through catalog pipeline.
- Skip Conditions – Skips if
GetRecentlyPurchased parameter is false . - Data Modifications
- Stores
result.GetRecentlyPurchasedProductsResult . - Updates
parameter.ProductErpNumbers .
|
1100 | GetAlsoPurchased | Retrieves "also purchased" product recommendations.
- Key functionality
- Gets products commonly purchased alongside products in current cart.
- Applies pagination to the results.
- Skip conditions
- Skipped if
GetAlsoPurchased parameter is false . - Skipped if cart is empty.
- Data modifications – Updates
parameter.ProductIds with also purchased product IDs.
|
1200 | GetRecentlyViewed | Retrieves recently viewed products.
- Key functionality – Gets recently viewed products through catalog pipeline.
- Skip conditions – Skips if
GetRecentlyViewed parameter is false . - Data modifications
- Stores
result.GetRecentlyViewedProductsResult . - Updates
parameter.ProductErpNumbers .
|
1300 | GetTopSellers | Retrieves top-selling products.
- Key functionality
- 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.
|
1400 | GetSiteCrossSells | Retrieves site-level cross-sell products.
- Key functionality
- 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.
|
1500 | FindProductsWithSearch | Executes product search using search criteria.
- Key functionality
- 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. - Data modifications
- Stores
result.ProductSearchResult . - Sets
result.HideFacetsUntilCategorySelected .
|
1510 | GetMissingVariants | Retrieves variant products potentially missing from search results.
- Key functionality
- 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 .
|
1600 | ProcessSearchResults | Processes search results into product DTOs.
- Key functionality
- 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. - Data modifications
- Populates
result.ProductDtos . - Sets pagination, sorting, and search metadata.
|
1700 | PopulateContextData | 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.
|
1800 | GetExpandedProductData | Retrieves expanded product data from database.
- Key functionality
- 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.
- Data modifications
- Stores
result.GetProductDataResult . - Populates or updates
result.ProductDtos . - Updates product visibility based on rule engine evaluation.
|
1900 | PopulateExpandedProductData | Populates expanded product data into DTOs.
- Key functionality
- 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. - Data modifications
- Enriches
result.ProductDtos with expanded details. - Filters out products found in search but not in database.
|
2000 | SortByErpNumbers | Sorts products by ERP numbers.
- Key functionality
- Sorts product DTOs by the order of their ERP numbers.
- Updates sort options accordingly.
- Skip conditions – Skips if not
GetFrequentlyPurchased or GetRecentlyViewed . - Data modifications
- Re-orders
result.ProductDtos . - Updates
result.SortOrder and result.SortOptions .
|
2100 | SortByProductIds | Sorts products by product IDs.
- Key functionality
- Sorts product DTOs by the order of their IDs.
- Updates sort options accordingly.
- Skip conditions – Skips if not
GetAlsoPurchased , GetTopSellers , or GetSiteCrossSells . - Data modifications
- Re-orders
result.ProductDtos . - Updates
result.SortOrder and result.SortOptions .
|
2200 | SortByRecentlyPurchased | Sorts and configures recently purchased products.
- Key functionality
- 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 . - Data modifications
- Updates
result.ProductDtos with correct unit of measure defaults, - Updates
result.SortOrder and result.SortOptions .
|
2300 | SortAndPageByPrice | Sorts products by price and applies pagination.
- Key functionality
- 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.
- Skip conditions
- Skipped if using list pricing.
- Skipped if sort order is not price-based.
- Skipped if sort option is not available.
- Data modifications
- Updates
result.ProductDtos with pricing data and applies sorting/paging. - Updates
result.SortOrder and result.SortOptions .
|
2400 | CreatePersonalization | Creates personalization events.
- Key functionality – Creates dynamic personalization events for product-related personas.
- Skip conditions
- Skipped if
ApplyPersonalization is false . - Skipped if no personalization persona IDs are available.
- Data modifications – Inserts personalization events into event repository.
|
2500 | UpdatePersonalization | Updates user personas based on personalization events.
- Key functionality
- Counts personalization events.
- Assigns additional personas to users who meet threshold criteria.
- Skip conditions:
- Skipped if
ApplyPersonalization is false . - Skipped if there are no eligible personas.
- Data modifications – Updates user's assigned personas in site context.
|