When you go to configure products for a Quote/Proposal, you can control which products from the price list are visible on the catalog page. 

The following table describes some scenarios through which you can control the product visibility on the catalog page.

ScenarioFunctionalityConfiguration Required
You want to ensure that the products having Red color are visible on the Catalog page.Refine Your SearchSelect Red check box in the color section in Refine your Search dialog box.

Search Filters (CPQ)Select the appropriate price list in the Inclusion Criteria; select Color from Field, Equal to from Operator, and Red from Value.

Visibility Rules through Custom Classes. Refer to Product Filter Callback Class

Modify the custom callback class code to list the catalog products as

global String getProductFilterExpr(CustomClass.ActionParams params) {
       return 'Color__c = \'Red\''; 
CODE
You want to ensure that the Bundle products having Red color and relevant Option products having Green color are visible on the Catalog page.Search Filters (CPQ) and Visibility Rules through Custom Classes. Refer to Product Filter Callback Class

Select the appropriate Price List in the Inclusion Criteria; select Configuration Type from Field, Equal to from Operator, and Bundle as Value.

Modify the custom callback class code to list the catalog products as

global String getProductFilterExpr(CustomClass.ActionParams params) {
       return 'Color__c = \'Red\'';
CODE

Modify the custom callback class code to list the option products as

global String getOptionFilterExpr(CustomClass.ActionParams params) {
        return 'ComponentProductId__r.Color__c =\'Green\'';
CODE


Product Visibility can be controlled in the following functionality.