![]() |
Gift certificates are treated just like any other product when it comes to the Bestsellers Sidebox in Zen Cart. This sidebox displays the top selling items according to the orders listed in your database.
So, what can you do if you would like to remove gift certificates from being displayed as a best seller? Providing the gift certificate items are all in the same category, it is easy to modify the bestsellers query to ignore this category when generating the best selling products for the sidebox. In a default installation of Zen Cart with the demo products on, the gift certificates are in category 21. Check the Category ID in your Zen Cart store by going to Zen Cart Admin > Catalog > Categories/Products. |
To remove Gift Certificates from the Bestsellers Sidebox in Zen Cart:
- Open the best_sellers.php file located in the /includes/modules/sideboxes/ directory.
- Find this section of code (around line 34):
$best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_status = '1' and p.products_ordered > 0 and p.products_id = pd.products_id and pd.language_id = '" . (int)$_SESSION['languages_id'] . "' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and '" . (int)$current_category_id . "' in (c.categories_id, c.parent_id) order by p.products_ordered desc, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS;
- and modify to include the Master Category ID you wish to exclude:
$best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_status = '1' and p.products_ordered > 0 and p.products_id = pd.products_id and pd.language_id = '" . (int)$_SESSION['languages_id'] . "' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and '" . (int)$current_category_id . "' in (c.categories_id, c.parent_id) and p.master_categories_id !=21 order by p.products_ordered desc, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS;
- Also, find this section of code (around line 51):
$best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_ordered > 0 and p.products_id = pd.products_id and pd.language_id = '" . (int)$_SESSION['languages_id'] . "' order by p.products_ordered desc, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS;
- And modify to include the Master Category ID you wish to exclude:
$best_sellers_query = "select distinct p.products_id, pd.products_name, p.products_ordered from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_ordered > 0 and p.products_id = pd.products_id and pd.language_id = '" . (int)$_SESSION['languages_id'] . "' and p.master_categories_id !=21 order by p.products_ordered desc, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS;
** In this example we are excluding products that have the Master Category ID of 21 from the best sellers query.
- Save the modified best_sellers.php file to your override folder. This will be /includes/modules/sideboxes/CUSTOM/ where CUSTOM represents the name of your current template folder.
|
|||||||



