Catalog
Describes Catalog pipelines in Optimizely Configured Commerce.
AddToRecentlyViewedProducts
Order | Pipe | Description |
---|---|---|
100 | AddToRecentlyViewedProducts | Adds to user recently viewed products. If RecentlyViewedEnabledsetting is set to false then bypasses pipe. Stores information about recently viewed products in cookies and also stores this information in database if user is logged in. |
CanConfigure
Order | Pipe | Description |
---|---|---|
100 | CanConfigure | Setsresult.CanConfigureto true if product setting CanAddToCartis set to true and product property ConfigurationObjectIdis not null. |
CanShowPrice
Order | Pipe | Description |
---|---|---|
100 | CanShowPrice | Setsresult.CanShowPriceto true if product setting CanSeePricesis set to true and product can not be configure. |
CheckForReplacement
100 | CheckForReplacement | Checks for replacement product for specifiedSearchCriteriaparameter. If parameterSeachCriteriais blank or product for that text is not found then bypasses pipe. If replacement product is found and it is not the initial product then sets its ErpNumbertoresult.SearchCriteria. |
CreateProductDto
Order | Pipe | Description |
---|---|---|
100 | CreateProductDto | CreatesProductDtoor find him in SearchResultProductDtosparameter ifFoundWithSearchparameter is true. |
200 | CopyProductToProductDto | MapsProductparameter toresult.ProductDto. |
300 | PopulateProductDto | Populates remaining fields for result.ProductDto namely:
|
400 | PopulateQtyOnHand | Retrieves remaining quantity for specified product and sets it toresult.ProductDto.QtyOnHand. |
500 | PopulateCanConfigureAndCanShowPrice | Calls CanConfigureand CanShowPricepipelines and populates corresponded fields inProductDto. |
600 | PopulateCanAddToCart | Populates CanAddToCart property. It sets to false in cases:
Also populates CanEnterQuantity with same as CanAddToCart value, and populate CanViewDetails with negated CanAddToCart value. |
650 | PunchoutPopulateCanAddToCart | If the current session is a punchout session andIPunchOutSessionUtilities.CanModifyOrder is false, sets resultCanAddToCart to false. |
700 | PopulateCanAddToWishList | Populates CanAddToWishList property. It sets to false in cases:
|
750 | PunchoutPopulateCanAddToWishlist | If the current session is a punchout session, sets resultCanAddToWishlist to false. |
800 | PopulateImages | Populates small, medium and large images paths, also sets alt text for images. |
900 | PopulateConfigurationDto | CreatesConfigurationDtofor product. If parameterSkipLoadingConfigurationsis true or product is not configurable or has no kit sections then bypasses pipe. |
1000 | PopulateSubscription | Creates and fillsProductSubscriptionDtoand sets him to ProductDto.ProductSubscription. |
1100 | PopulateCustomerProduct | FoundsCustomerProductfor current billto and specified product. If user not logged in or CustomerProductnot found then bypasses pipe. Otherwise populates ProductDto.CustomerNameand ProductDto.CustomerUnitOfMeasurewith correspondedCustomerProductfields. |
1200 | PopulateProductDtoProductUnitOfMeasures | If Product.UnitOfMeasureis blank then bypasses pipe. Otherwise adds it to ProductUnitOfMeasurescollection and populates availability for each ProductUnitOfMeasurein that collection. |
1300 | PopulateProductDtoUnitOfMeasure | PopulatesProductDto.UnitOfMeasure, ProductDto.SelectedUnitOfMeasureand ProductDto.Availability. If there is no unit of measure for the product then clears all related to unit of measure fields. |
1400 | PopulatePricing | Populates pricing for ProductDto. Bypasses pipe in next cases:
|
1500 | PopulateCosts | PopulatesUnitCostinProductDto.Pricing. If user is not salesperson or pipeline called not for order line then bypasses pipe. |
1600 | PopulateProductStyles | PopulatesProductDto.StyledProducts. If product is not a style parent then bypasses pipe. |
1700 | PopulateAttributeValues | Populates attribute types and values forProductDto. If parameter GetAttributeValuesis false or product has no attribute values then bypasses pipe. |
1800 | PopulateDocuments | Populates ProductDto.Documents. If parameter GetDocumentsis false then bypasses pipe. |
1900 | PopulateSpecifications | Populates ProductDto.Specifications. If parameter GetSpecifications is false then bypasses pipe. |
2000 | PopulateCrossSells | Populates ProductDto.CrossSells. If parameterGetCrossSellsis false then bypasses pipe. |
2100 | PopulateAccessories | Populates ProductDto.Accessories. If parameterGetAccessoriesis false then bypasses pipe. |
2150 | PopulateRelatedProducts | Populates ProductDto.RelatedProducts. If parameterGetRelatedProductsis false then bypasses pipe. |
2200 | PopulateWarehouses | Populates ProductDto.Warehousesand warehouses for each styled products. If parameterGetWarehousesis false then bypasses pipe. |
2300 | CopyCustomPropertiesToResult | Copies custom properties from parameterProducttoresult.ProductDto. |
CreateProductDtos
Order | Pipe | Description |
---|---|---|
100 | ValidateContext | If parameterProductsis empty then bypasses all pipeline. If parameter FoundWithSearchis true then fillsresult.ProductIdsInOrderwith ids from SearchResultProductDtosparameter, otherwise from Products parameter. |
200 | ProcessReplacementProducts | If parameter ReplaceProductsis false then bypasses pipe. Otherwise tries to find replacement product for each product in parameter.Productscollection. |
300 | ProcessProductRestrictions | If parameter FoundWithSearchis true or parameter EnforceRestrictions is false then bypasses the pipe. Exclude restricted products fromresult.Productscollection. If products count was decreased then setsresult.NotAllProductsAllowedto true. If there is no products after processing and it is not crosssels or configuration request then returns error. |
350 | CacheIsStyleParent | Determine if each product is a styleparent and cache them in one database call if they are not already in the cache. |
400 | CallProductBatchLoader | Calls BatchLoadmethod in IProductBatchLoaderwith ids of result.Products as parameter. |
500 | GetCategory | If parameter CategoryIdis not specified then bypasses pipe. Retrieves category for specified CategoryIdparameter and sets it toresult.Category. If category is not found then returns error. |
600 | CreateProductDtos | Iterates through result.ProductIdsInOrder, for each productid founds product and calls CreateProductDto pipeline. |
GetAvailability
Order | Pipe | Description |
---|---|---|
100 | GetAvailability | Populatesresult.AvailabilityDto. If inventory not showed on site or product is not active or product can be configure then returns NoMessage type. If CustomAvailabilityMessageis not blank then returns Availabletype. Ifproduct.TackInventoryis false and product is not discontinued then returns NoMessage type. IfAvailableQtymore than low stock level then returns Availabletype. If AvailableQtyless than low stock level but greater than 0 then returns LowStocktype. Otherwise returnsOutOfStocktype. |
GetAlsoPurchasedProducts
Order | Pipe | Description |
---|---|---|
100 | GetAlsoPurchasedProducts | If parameter ProductIds is null or empty, then bypasses the pipe. If parameter MaxRows is 0, then set MaxRows to value of StorefrontApiSettings.DefaultPageSize. If parameter MaxRows is more than 25, then set MaxRows to 25. Then returns the top MaxRows products from the ProductAlsoPurchasedWith table, using a select on ProductId IN ProductIds ordered by WeightedScore descending in a collection named AlsoPurchasedProducts. |
GetFrequentlyPurchasedProducts
Order | Pipe | Description |
---|---|---|
100 | GetFrequentlyPurchasedProducts | Gets 5 most purchased products and sets theirErpNumbersto theresult.ProductErpNumbers. If user is not logged in then bypasses pipe. |
GetRecentlyViewedProducts
Order | Pipe | Description |
---|---|---|
100 | GetRecentlyViewedProducts | Gets recently viewed products and sets pairs of their ErpNumberand view date to the result.Products. If RecentlyViewedEnabled setting is set to false then bypasses pipe. |
PerformProductSearch
Order | Pipe | Description |
---|---|---|
100 | CheckForReplacement | Checks for replacement product by calling CheckForReplacementpipeline. |
200 | GetSearchResults | Gets search results by calling GetSearchResultsmethod fromIProductSearchProviderand sets them to result.ProductSearchResult. |
300 | GetAutoCorrectedSearchResults | Gets autocorrected search results. If ProductSearchResult.AutoCorrectSuggestion is null then bypasses pipe. Otherwise re-get product search results for autocorrected query and if results contains products then update result.ProductSearchResultwith autocorrected results. |
400 | TranslateAttributes | For each attribute type inProductSearchResult.AttributeTypeDtosfills NameDisplayand ValueDisplayfields with translatedNameandValuefields. |
500 | SetSelectedPriceRanges | For each price facet sets Selectedproperty to true ifProductSearchParameter.PriceFilterscontains value of hisMinimumPrice property. Bypasses pipe when parameter CanShowPriceFiltersis false or current currency is not default. |
ValidateAndReplaceProduct
Order | Pipe | Description |
---|---|---|
100 | ValidateAndReplaceProduct | Finds replacement product and check if he can be showed to user. If product is found then sets him toresult.Product, otherwise setsnull. |
Updated over 1 year ago