Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Best sellers on mainpage in individual boxes


Guest

Recommended Posts

Hi all,

 

I have the following problem:

 

I have removed the "best sellers" box from my column_right.php and placed it in the index.php as per contribution: Best Sellers Content Box

 

Then I placed it in individual boxes as per contribution: Individual boxes for products in central modules

 

Up to here it all works nice. :)

 

What I want now is to display only 2 randomly chosen best sellers out of a list of eg. 30.

 

Up untill now, I was unable to implement that. :(

 

I believe the code to chose a random bestseller should be placed somewhere in the beginning of best_seller_mod.php (which is part of the above 1st mentioned contri).

 

I put the code here, so maybe somebody has an idea on how it should be done.

 

Note: I'm trying this bestseller thing first on my "local host", it is not yet live, however if you want to check how the individual boxes contri works, please visit my site Small Craft Solutions

 

Many thanks

Best regards

Geeraard

 

?>
<!-- best_sellers //-->
<?php
 $info_box_contents = array();
 $info_box_contents[] = array('align' => 'left', 'text' => sprintf(TABLE_HEADING_BEST_SELLERS, strftime('%B')));
// new contentBoxHeading($info_box_contents);

 if ($cPath) {
$best_sellers_query = tep_db_query("select distinct p.products_id, pd.products_name, p.products_image, pd.products_description, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . 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)$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);
//revised to take into account special prices- original code below
//$best_sellers_query = tep_db_query("select distinct p.products_id, pd.products_name, p.products_image, p.products_tax_class_id, p.products_price, 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 = '" . $languages_id . "' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and (c.categories_id = '" . $current_category_id . "' OR c.parent_id = '" . $current_category_id . "') order by p.products_ordered DESC, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS);
 } else {
$best_sellers_query = tep_db_query("select distinct p.products_id, pd.products_name, p.products_image, pd.products_description, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . 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)$languages_id . "' order by p.products_ordered desc, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS);
//revised to take into account special prices- original code below
//$best_sellers_query = tep_db_query("select p.products_id, pd.products_name, p.products_image, p.products_price, p.products_tax_class_id, 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 = '" . $languages_id . "' order by p.products_ordered DESC, pd.products_name limit " . MAX_DISPLAY_BESTSELLERS);
 }


 $info_box_contents = array();
 $row = 0;
 $col = 0;
 while ($best_sellers = tep_db_fetch_array($best_sellers_query)) {
$best_sellers['products_name'] = tep_get_products_name($best_sellers['products_id']);

$sql = 'SELECT `products_description` FROM `products_description` WHERE products_id ='.$best_sellers['products_id'].' && language_id='.(int)$languages_id;
$description_query = tep_db_query($sql);
$description = mysql_fetch_array($description_query, MYSQL_ASSOC);		
$description['products_description'] = substr($description['products_description'], 0, 150);
$desc_len = strlen($description['products_description']);
$description['products_description'][$desc_len-1] = '.';
$description['products_description'][$desc_len-2] = '.';
$description['products_description'][$desc_len-3] = '.';

$description['products_description'] = ereg_replace("(Array)", "", $description['products_description']);

if ($col == 0)
$info_box_contents[$row][$col] = array('align' => 'center',
									   'params' => 'class="smallText" cellspacing="0" width="50%" valign="top"',
									   'text' => '<table width="100%" border="0" cellspacing="0" bgcolor="#ffffff" cellpadding="0">
 <tr>
<td align="right" valign="bottom" bordercolor="0"><img src="images/infobox/upper_left.gif" alt="1" width="12" height="33" /></td>	
<td colspan="2" background="images/infobox/top.gif" class=mws_boxTop><a class=productTitle href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $best_sellers['products_id']) . '">' . substr($best_sellers['products_name'], 0, 30) . '</a></td>
<td align="left" valign="bottom"><img src="images/infobox/upper_right.gif" alt="2" width="14" height="33" /></td>
 </tr>
 <tr>
<td background="images/infobox/left.gif">?</td>
<td align="center"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $best_sellers['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $best_sellers['products_image'], $best_sellers['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br>?<a href="' . tep_href_link(FILENAME_BESTSELLING_PRODUCTS). '">' . tep_image(DIR_WS_LANGUAGES . $language . '/images/buttons/bestseller.jpg', IMAGE_NEW_PRODUCT). '</a>?</td>
<td class="smallText">'. strip_tags($description['products_description']) . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, "products_id=" . $best_sellers["products_id"]). '">' . DESCR_READ_MORE . '</a><br><br><a href="' . tep_href_link(FILENAME_DEFAULT, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $best_sellers['products_id']) . '">' . tep_image_button('cart_buy.gif', IMAGE_BUTTON_IN_CART) . '</a>?<strong>' . $currencies->display_price($best_sellers['products_price'], tep_get_tax_rate($best_sellers['products_tax_class_id'])).'</strong></td>
<td background="images/infobox/right.gif" class="smallText"><img src="images/infobox/right.gif" width="14" height="149" /></td>
 </tr>
 <tr>
<td align="right" valign="top"><img src="images/infobox/lower_left.gif" alt="5" width="12" height="12" /></td>
<td colspan="2" background="images/infobox/bot.gif"><img src="images/infobox/bot.gif" alt="5" width="2" height="12" /></td>
<td align="left" valign="top" class="smallText"><img src="images/infobox/lower_right.gif" alt="2" width="14" height="12" /></td>
 </tr>
</table>');
 else $info_box_contents[$row][$col] = array('align' => 'center',
									   'params' => 'class="smallText" cellspacing="0" width="50%" valign="top" cellpadding="0"',
									   'text' => '<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff">
 <tr>
<td align="right" valign="bottom" bordercolor="0"><img src="images/infobox/upper_left.gif" alt="1" width="12" height="33" /></td>	
<td colspan="2" background="images/infobox/top.gif" class=mws_boxTop><a class=productTitle href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $best_sellers['products_id']) . '">' . substr($best_sellers['products_name'], 0, 30) . '</a></td>
<td align="left" valign="bottom"><img src="images/infobox/upper_right.gif" alt="2" width="14" height="33" /></td>
 </tr>
 <tr>
<td background="images/infobox/left.gif">?</td>
<td align="center"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $best_sellers['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $best_sellers['products_image'], $best_sellers['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br>?<a href="' . tep_href_link(FILENAME_BESTSELLING_PRODUCTS). '">' . tep_image(DIR_WS_LANGUAGES . $language . '/images/buttons/bestseller.jpg', IMAGE_NEW_PRODUCT). '</a>?</td>
<td class="smallText">'.strip_tags($description['products_description']) . '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, "products_id=" . $best_sellers["products_id"]). '">' . DESCR_READ_MORE . '</a><br><br><a href="' . tep_href_link(FILENAME_DEFAULT, tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $best_sellers['products_id']) . '">' . tep_image_button('cart_buy.gif', IMAGE_BUTTON_IN_CART) . '</a>?<strong>' . $currencies->display_price($best_sellers['products_price'], tep_get_tax_rate($best_sellers['products_tax_class_id'])) . '</strong></td>
<td background="images/infobox/right.gif" class="smallText"><img src="images/infobox/right.gif" width="14" height="149" /></td>
 </tr>
 <tr>
<td align="right" valign="top"><img src="images/infobox/lower_left.gif" alt="2" width="12" height="12" /></td>
<td colspan="2" background="images/infobox/bot.gif"><img src="images/infobox/bot.gif" alt="2" width="2" height="12" /></td>
<td align="left" valign="top" class="smallText"><img src="images/infobox/lower_right.gif" alt="2" width="14" height="12" /></td>
 </tr>
</table><br>');


// -- Find the 149 in thats second code, this define the internal height of module.  -- //

$col ++;
if ($col > 1) {
  $col = 0;
  $row ++;
}
 }
 new noborderBox($info_box_contents);

?><!-- best_sellers_eof //-->

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...