Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

similar products of a product


sharma.atul85

Recommended Posts

hi all..I recently added an addon about similar products which works fine if used under infobox

i just gave the name of single file which need to be included in column_right.php and it works fine .

but i want to display it under product_info page not in infobox ..

please help..

here's the code of that file which is included

 

<?php
/*
 $Id: similar_products.php,v 1.0 2004/06/06 jck Exp $
   Based on whats_new.php,v 1.31 by hpdl

 osCommerce, Open Source E-Commerce Solutions
 [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url]

 Copyright © 2004 osCommerce

 Released under the GNU General Public License
*/


// Set the sort order for the display
 switch(SIMILAR_PRODUCTS_ORDER){
   case 'Random': 
     $sort_order = 'RAND() ';
     break;
   case 'Products ID': 
     $sort_order = 'p.products_id ';
     break;
   case 'Model Number': 
     $sort_order = 'p.products_model ';
     break;
   case 'Price': 
     $sort_order = 'p.products_price ';
     break;
   case 'Date Added': 
     $sort_order = 'p.products_date_added ';
     break;
   case 'Last Modified': 
     $sort_order = 'p.products_last_modified ';
     break;
   case 'Products Ordered': 
     $sort_order = 'p.products_ordered ';
     break;
   case 'Products Name': 
     $sort_order = 'pd.products_name ';
     break;
   case 'Products Viewed': 
     $sort_order = 'pd.products_viewed ';
     break;
   default:
     $sort_order = 'RAND() ';
 } // switch

 switch(SIMILAR_PRODUCTS_SORT_ORDER){
   case 'Ascending': 
     $sort_order .= 'asc';
     break;
   case 'Descending': 
     $sort_order .= 'desc';
     break;
   default:
     $sort_order .= 'asc';
 } // switch

// Find the id # of the category that the current product is in
   $category_query = tep_db_query("select categories_id 
                                from " . TABLE_PRODUCTS_TO_CATEGORIES . " 
								where products_id = '" . (int)$_GET['products_id'] . "'"
                                 );
   $category = tep_db_fetch_array($category_query);
   $category_id = $category['categories_id'];

// Count prods in category; if less than 2 dont display (removes empty infobox from pages)
$product_count_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p,  
                                   " . TABLE_PRODUCTS_DESCRIPTION . " pd,  
                                   " . TABLE_PRODUCTS_TO_CATEGORIES . " pc  
                                   where p.products_id = pc.products_id
                                     and p.products_id = pd.products_id
                                     and p.products_id != '" . (int)$_GET['products_id'] . "'
                                     and p.products_status = '1'
                                     and pc.categories_id = '" . (int)$category_id . "'
                                     and pd.language_id = '". (int)$languages_id ."'"
                                   );
$product_count = tep_db_fetch_array($product_count_query);

// if less than total similar prods displayed exist in current category, dont display (empty) infobox
if ($product_count['total'] >= MAX_SIMILAR_PRODUCTS) {
	// Select the other products in the same category
  		$products_query = tep_db_query("select p.products_id, 
                                  p.products_image,
                                  p.products_price,
                                  p.products_model,
                                  pd.products_name,
									   p.products_tax_class_id
                                   from " . TABLE_PRODUCTS . " p,  
                                        " . TABLE_PRODUCTS_DESCRIPTION . " pd,  
                                        " . TABLE_PRODUCTS_TO_CATEGORIES . " pc  
                                   where p.products_id = pc.products_id
                                     and p.products_id = pd.products_id
                                     and p.products_id != '" . (int)$_GET['products_id'] . "'
                                     and p.products_status = '1'
                                     and pc.categories_id = '" . (int)$category_id . "'
                                     and pd.language_id = '" . (int)$languages_id . "'
                                   order by " . $sort_order . " 
                                   limit " . MAX_SIMILAR_PRODUCTS
                                 );
	 // Write the output containing each of the products
    $products_string = '';
    $count_products = 0;
    while ($products = tep_db_fetch_array($products_query)) {
	  if ($products['products_id'] != $_GET['products_id']) {
        $products_string .= '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id']) . '">';
        $products_string .= tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT);
        $products_string .= '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id']) . '">';
        if (SIMILAR_PRODUCTS_SHOW_MODEL == 'true' && tep_not_null($products['products_model'])) {
          $products_string .= $products['products_model'] . '<br>';
        }
        if ((SIMILAR_PRODUCTS_SHOW_NAME == 'true') && tep_not_null($products['products_name'])) {
          $products_string .= $products['products_name'] . '<br>';
        }
        if (SIMILAR_PRODUCTS_SHOW_PRICE == 'true') {
        #$products_string .= $currencies->display_price($products['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '<br>';
		  $products_string .= $currencies->display_price($products['products_price'], tep_get_tax_rate($products['products_tax_class_id'])) . '<br>';
        }
        $products_string .= '</a><br>';
        $count_products++;
	  }
	}

?>
<!-- similar_products //-->
          <tr>
            <td>
<?php

    $info_box_contents = array();
    $info_box_contents[] = array('text' => BOX_HEADING_SIMILAR_PRODUCTS);

    new infoBoxHeading($info_box_contents, false, false);

    $info_box_contents = array();
    $info_box_contents[] = array('align' => 'center',
                                  'text' => $products_string
                                );

    new infoBox($info_box_contents);
?>
            </td>
          </tr>
<?
} // END PROD TOTAL (WITHIN CURRENT CATEGORY) CHECK
?>
<!-- similar_products_eof //-->

Link to comment
Share on other sites

can you not just use the code to show the box in your colum, in the product info page. The recently viewed contribution adds

 

 

 

<?php

// Begin recently_viewed

if (RECENTLY_VIEWED_BOTTOM_BOX == 'True') {

include_once (DIR_WS_MODULES . FILENAME_RECENTLY_VIEWED);

}

// End recently_viewed

?>

 

to the product info page. Could you not alter this code for the box that you require.

REMEMBER BACKUP, BACKUP AND BACKUP

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...