Jump to content
scendent

Seperate Pricing Per Customer v3.5

Recommended Posts

Hi Guys

 

1) The prices displayed in the general category listings are always the standard retail price. However, when I select a product (signed in as a test customer) I see the actual price assigned to the group.

 

Many Thanks

 

Tim

 

See?

 

Same problem

Share this post


Link to post
Share on other sites
See?

 

Same problem

 

I would love to be able to combine it with the printable catalog, which now shows only retail prices, no matter which customer group is logged in.

I would like to use the printable catalog for the convenience of our sales team, so they can login as the customer/group and have his catalog ready to print or mail with the groups prices.

Thank you so much,

Eyal


Eyal

How About an Open Source Car?

Share this post


Link to post
Share on other sites
Hi Greg

 

You hit the mark with the agitation level thing :blush: Feels like I opened a tin of flipping worms here. anyway thanks for the patiens.

 

Unfortunately our site is modified a great deal so my attempts to compare with the original files didn't amount to much.

 

Looking back at the code I posted and the comments made on that I did find that there are indeed six sections of code regarding SPPC added to index.php which is completely absent in 2.2rc2a's index.php which i downloaded so what do I compare to?

Jan Mentioned somewhere that there is a B2B version with sppc already built in maybe I should get hold of that. Anybody knows where?

 

 

Hmmm...

Silly question:

Where exactly on your index page are the incorrect prices showing up? Inherently the source of these prices would be in boxes I think. Column presentations then would be drilled into via these boxes. Is it possible that what you are referring to on the index page is actually a box of sorts pulling stuff in, appearing as being 'the index' page?

 

Perhaps you should post your index page here (for starters). Then perhaps better understanding and direction can be provided.

 

Bear in mind, I am a noob. But perhaps myself or someone else will recognize a potential issue...

Share this post


Link to post
Share on other sites

<?php
/*
 $Id: index.php,v 1.1 2003/06/11 17:37:59 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 require('includes/application_top.php');
// BOF Separate Pricing Per Customer
 if (isset($_SESSION['sppc_customer_group_id']) && $_SESSION['sppc_customer_group_id'] != '0') {
 $customer_group_id = $_SESSION['sppc_customer_group_id'];
 } else {
  $customer_group_id = '0';
 }
// EOF Separate Pricing Per Customer
// the following cPath references come from application_top.php
 $category_depth = 'top';
 if (isset($cPath) && tep_not_null($cPath)) {
$categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");
$cateqories_products = tep_db_fetch_array($categories_products_query);
if ($cateqories_products['total'] > 0) {
  $category_depth = 'products'; // display products
} else {
			  $category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'");
  $category_parent = tep_db_fetch_array($category_parent_query);
  if ($category_parent['total'] > 0) {
	$category_depth = 'nested'; // navigate through the categories
  } else {
	$category_depth = 'products'; // category has no products, but display the 'no products' message
  }
}
 }

 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<?php
// BOF: Header Tag Controller 
if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) {
 require(DIR_WS_INCLUDES . 'header_tags.php');
} else {
?>
<title><?php echo TITLE; ?></title>
<?php
}
// EOF: Header Tag Controller 
?>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">



<div align="center">
<table width="1018" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr valign="top">
<td><div align="center">





<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<table border="0" width="1012" cellspacing="0" cellpadding="0" align="center" class="maincont_tb">
<tr>
 <td width="<?php echo BOX_WIDTH; ?>" valign="top" class="maincont_left_td"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="0" class="leftbar_tb">
  <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
</table></td>

 <?php
if ($category_depth == 'nested') {
$category_query = tep_db_query("select cd.categories_name, c.categories_image, cd.categories_htc_title_tag, cd.categories_htc_description from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'");
?>
 <td width="100%" valign="top" class="maincont_mid_td"><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
 <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
   <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
   </tr>
   <tr>
	<td><h1><?php echo $category['categories_htc_title_tag']; ?></h1></td>
	<td class="pageHeading" align="right"></td>
   </tr>
   <?php if (tep_not_null($category['categories_htc_description'])) { ?>
   <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
   </tr>
   <tr>
	<td><h2><?php echo $category['categories_htc_description']; ?></h2></td>
   </tr>
   <?php } ?>
  </table></td>
</tr>
<tr>
 <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
   <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
	   <?php
if (isset($cPath) && strpos('_', $cPath)) {
// check to see if there are deeper categories within the current category
  $category_links = array_reverse($cPath_array);
  for($i=0, $n=sizeof($category_links); $i<$n; $i++) {
	$categories_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");
	$categories = tep_db_fetch_array($categories_query);
	if ($categories['total'] < 1) {
	  // do nothing, go through the loop
	} else {
	  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
	  break; // we've found the deepest category the customer is in
	}
  }
} else {
  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
}

$number_of_categories = tep_db_num_rows($categories_query);

$rows = 0;
while ($categories = tep_db_fetch_array($categories_query)) {
  $rows++;
  $cPath_new = tep_get_path($categories['categories_id']);
  $width = (int)(100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%';
  echo '				<td align="center" class="smallText" width="' . $width . '" valign="top"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '<br>' . $categories['categories_name'] . '</a></td>' . "\n";
  if ((($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW)) && ($rows != $number_of_categories)) {
	echo '			  </tr>' . "\n";
	echo '			  <tr>' . "\n";
  }
}

// needed for the new products module shown below
$new_products_category_id = $current_category_id;
?>
	  </tr>
	 </table></td>
   </tr>
   <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
   </tr>
   <tr>
	<td><?php include(DIR_WS_MODULES . FILENAME_FEATURED); ?></td>
   </tr>
  </table></td>
</tr>
  </table></td>
 <?php
 } elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) {
// create column list
$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
					 'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
					 'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
					 'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
					 'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
					 'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
					 'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,
					 'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);

asort($define_list);

$column_list = array();
reset($define_list);
while (list($key, $value) = each($define_list)) {
  if ($value > 0) $column_list[] = $key;
}
// BOF Separate Pricing Per Customer
// this will build the table with specials prices for the retail group or update it if needed
// this function should have been added to includes/functions/database.php
  if ($customer_group_id == '0') {
  tep_db_check_age_specials_retail_table();
  }
  $status_product_prices_table = false;
  $status_need_to_get_prices = false;

  // find out if sorting by price has been requested
  if ( (isset($HTTP_GET_VARS['sort'])) && (ereg('[1-8][ad]', $HTTP_GET_VARS['sort'])) && (substr($HTTP_GET_VARS['sort'], 0, 1) <= sizeof($column_list)) && $customer_group_id != '0' ){
$_sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);
if ($column_list[$_sort_col-1] == 'PRODUCT_LIST_PRICE') {
  $status_need_to_get_prices = true;
  }
  }

  if ($status_need_to_get_prices == true && $customer_group_id != '0') {
  $product_prices_table = TABLE_PRODUCTS_GROUP_PRICES.$customer_group_id;
  // the table with product prices for a particular customer group is re-built only a number of times per hour
  // (setting in /includes/database_tables.php called MAXIMUM_DELAY_UPDATE_PG_PRICES_TABLE, in minutes)
  // to trigger the update the next function is called (new function that should have been
  // added to includes/functions/database.php)
  tep_db_check_age_products_group_prices_cg_table($customer_group_id);
  $status_product_prices_table = true;

  } // end if ($status_need_to_get_prices == true && $customer_group_id != '0')
// EOF Separate Pricing Per Customer

$select_column_list = '';

for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
  switch ($column_list[$i]) {
	case 'PRODUCT_LIST_MODEL':
	  $select_column_list .= 'p.products_model, ';
	  break;
	case 'PRODUCT_LIST_NAME':
	  $select_column_list .= 'pd.products_name, ';
	  break;
	case 'PRODUCT_LIST_MANUFACTURER':
	  $select_column_list .= 'm.manufacturers_name, ';
	  break;
	case 'PRODUCT_LIST_QUANTITY':
	  $select_column_list .= 'p.products_quantity, ';
	  break;
	case 'PRODUCT_LIST_IMAGE':
	  $select_column_list .= 'p.products_image, ';
	  break;
	case 'PRODUCT_LIST_WEIGHT':
	  $select_column_list .= 'p.products_weight, ';
	  break;
  }
}

// show the products of a specified manufacturer
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
  if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only a specific category
// BOF Separate Pricing Per Customer
if ($status_product_prices_table == true) { // ok in mysql 5
$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, tmp_pp.products_price, p.products_tax_class_id, IF(tmp_pp.status, tmp_pp.specials_new_products_price, NULL) as specials_new_products_price, IF(tmp_pp.status, tmp_pp.specials_new_products_price, tmp_pp.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . $product_prices_table . " as tmp_pp using(products_id), " . TABLE_PRODUCTS_DESCRIPTION . " pd , " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";		
} else { // either retail or no need to get correct special prices -- changed for mysql 5
$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS_RETAIL_PRICES . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";
} // end else { // either retail...
// EOF Separate Pricing Per Customer
  } else {
// We show them all
// BOF Separate Pricing Per Customer
	if ($status_product_prices_table == true) { // ok in mysql 5
	$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, tmp_pp.products_price, p.products_tax_class_id, IF(tmp_pp.status, tmp_pp.specials_new_products_price, NULL) as specials_new_products_price, IF(tmp_pp.status, tmp_pp.specials_new_products_price, tmp_pp.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . $product_prices_table . " as tmp_pp using(products_id), " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";	
} else { // either retail or no need to get correct special prices -- changed for mysql 5
	$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS_RETAIL_PRICES . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";
} // end else { // either retail...
// EOF Separate Pricing Per Customer
  }
} else {
// show the products in a given categorie
  if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only specific catgeory;  
// BOF Separate Pricing Per Customer
	if ($status_product_prices_table == true) { // ok for mysql 5
	$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, tmp_pp.products_price, p.products_tax_class_id, IF(tmp_pp.status, tmp_pp.specials_new_products_price, NULL) as specials_new_products_price, IF(tmp_pp.status, tmp_pp.specials_new_products_price, tmp_pp.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . $product_prices_table . " as tmp_pp using(products_id), " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";	
	} else { // either retail or no need to get correct special prices -- ok in mysql 5
	$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS_RETAIL_PRICES . " s using(products_id) where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
	} // end else { // either retail...
// EOF Separate Pricing Per Customer
  } else {
// We show them all
// BOF Separate Pricing Per Customer --last query changed for mysql 5 compatibility
	if ($status_product_prices_table == true) {
// original, no need to change for mysql 5
$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, tmp_pp.products_price, p.products_tax_class_id, IF(tmp_pp.status, tmp_pp.specials_new_products_price, NULL) as specials_new_products_price, IF(tmp_pp.status, tmp_pp.specials_new_products_price, tmp_pp.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd left join " . $product_prices_table . " as tmp_pp using(products_id), " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
	} else { // either retail or no need to get correct special prices -- changed for mysql 5
	$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS_RETAIL_PRICES . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'"; 
  } // end else { // either retail...
// EOF Separate Pricing per Customer
  }
}

if ( (!isset($HTTP_GET_VARS['sort'])) || (!ereg('^[1-8][ad]$', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {
  for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
	if ($column_list[$i] == 'PRODUCT_LIST_NAME') {
	  $HTTP_GET_VARS['sort'] = $i+1 . 'a';
	  $listing_sql .= " order by pd.products_name";
	  break;
	}
  }
} else {
  $sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);
  $sort_order = substr($HTTP_GET_VARS['sort'], 1);

  switch ($column_list[$sort_col-1]) {
	case 'PRODUCT_LIST_MODEL':
	  $listing_sql .= " order by p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
	  break;
	case 'PRODUCT_LIST_NAME':
	  $listing_sql .= " order by pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
	  break;
	case 'PRODUCT_LIST_MANUFACTURER':
	  $listing_sql .= " order by m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
	  break;
	case 'PRODUCT_LIST_QUANTITY':
	  $listing_sql .= " order by p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
	  break;
	case 'PRODUCT_LIST_IMAGE':
	  $listing_sql .= " order by pd.products_name";
	  break;
	case 'PRODUCT_LIST_WEIGHT':
	  $listing_sql .= " order by p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
	  break;
	case 'PRODUCT_LIST_PRICE':
	  $listing_sql .= " order by final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
	  break;
  }
}
if (isset($HTTP_GET_VARS['manufacturers_id'])) 
  $db_query = tep_db_query("select manufacturers_htc_title_tag as htc_title, manufacturers_htc_description as htc_description from " . TABLE_MANUFACTURERS_INFO . " where languages_id = '" . (int)$languages_id . "' and manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
else 
  $db_query = tep_db_query("select categories_htc_title_tag as htc_title, categories_htc_description as htc_description from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$current_category_id . "' and language_id = '" . (int)$languages_id . "'");

$htc = tep_db_fetch_array($db_query);
?>
 <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
 <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
   <tr>
	<td><h1><?php echo $htc['htc_title']; ?></h1></td>
	<?php
// optional Product List Filter
if (PRODUCT_LIST_FILTER > 0) {
  if (isset($HTTP_GET_VARS['manufacturers_id'])) {
	$filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and p2c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' order by cd.categories_name";
  } else {
	$filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by m.manufacturers_name";
  }
  $filterlist_query = tep_db_query($filterlist_sql);
  if (tep_db_num_rows($filterlist_query) > 1) {
	echo '			<td align="center" class="main">' . tep_draw_form('filter', FILENAME_DEFAULT, 'get') . TEXT_SHOW . ' ';
	if (isset($HTTP_GET_VARS['manufacturers_id'])) {
	  echo tep_draw_hidden_field('manufacturers_id', $HTTP_GET_VARS['manufacturers_id']);
	  $options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));
	} else {
	  echo tep_draw_hidden_field('cPath', $cPath);
	  $options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS));
	}
	echo tep_draw_hidden_field('sort', $HTTP_GET_VARS['sort']);
	while ($filterlist = tep_db_fetch_array($filterlist_query)) {
	  $options[] = array('id' => $filterlist['id'], 'text' => $filterlist['name']);
	}
	echo tep_draw_pull_down_menu('filter_id', $options, (isset($HTTP_GET_VARS['filter_id']) ? $HTTP_GET_VARS['filter_id'] : ''), 'onchange="this.form.submit()"');
	echo tep_hide_session_id() . '</form></td>' . "\n";
  }
}

?>
   </tr>
   <?php if (tep_not_null($htc['htc_description'])) { ?>
   <tr>
	<td colspan="2" class="main"><?php echo $htc['htc_description']; ?></td>
   </tr>
   <?php } ?>
  </table></td>
</tr>
<tr>
 <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
 <td><?php include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING); ?></td>
</tr>
  </table></td>
 <?php
 } else { // default page
if (isset($HTTP_GET_VARS['manufacturers_id']))
  $db_query = tep_db_query("select manufacturers_htc_title_tag as htc_title, manufacturers_htc_description as htc_description from " . TABLE_MANUFACTURERS_INFO . " where languages_id = '" . (int)$languages_id . "' and manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
else
  $db_query = tep_db_query("select categories_htc_title_tag as htc_title, categories_htc_description as htc_description from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$current_category_id . "' and language_id = '" . (int)$languages_id . "'");

$htc = tep_db_fetch_array($db_query);
?>
 <td width="100%" valign="top" class="maincont_mid_td"><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
 <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
   <tr>
	<td><h1><?php echo $htc['htc_title']; ?></h1></td>
   </tr>
   <tr>
	<td><br></td>
   </tr>
  </table></td>
</tr>
<tr>
 <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
   <tr>
	<td class="main"><?php echo TEXT_MAIN ?></td>
   </tr>
   <tr>
	<td><?php include(DIR_WS_MODULES . FILENAME_FEATURED); ?></td>
   </tr>
   <tr>
	<td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>
   </tr>
   <?php
include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS);
?>
  </table></td>
</tr>
  </table></td>
 <?php
 }
?>
<td width="<?php echo BOX_WIDTH; ?>" valign="top" class="maincont_right_td"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="0" class="rightbar_tb">
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
</table></td>
</tr>
</table>


<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<br>







</div>
</td>
</tr>
</table>
</div>





</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

Thanks Greg Much appeciated

Share this post


Link to post
Share on other sites

In Laymans terms (my language)

Before you login the store doesn't know who you are and must show retail prices, This is working correctly

Now you login and the store know's you're a wholesale custosmer.

Go to home page - it shows retail prices.......INCORRECT

Click on any catagory to view the products within - it shows retail prices.........INCORRECT

Click on a specific product - only now you see wholesale price.......CORRECT

THe featured box, What's new box and Specials box is showing the correct price........CORRECT.

 

Would it help to post the code for product_info.php to see where it gets it's price from? or even one of the boxes that does show the correct price?

Edited by Brollox

Share this post


Link to post
Share on other sites
Would it help to post the code for product_info.php to see where it gets it's price from? or even one of the boxes that does show the correct price?

Prices in categories are actually queried in includes/modules/product_listing. The queries on index.php are only to insure the correct order of prices is maintained when listing on price is chosen by the customer.

Share this post


Link to post
Share on other sites
Prices in categories are actually queried in includes/modules/product_listing. The queries on index.php are only to insure the correct order of prices is maintained when listing on price is chosen by the customer.

 

Hi Jan

 

Thanks to W3C School and hobbles of luck I actually have it working now. Cost me half my hair though. Still dont have the foggiest how it really works but never mind.

 

Thank you very much for your support and patiens.

Share this post


Link to post
Share on other sites
Hi Jan

 

Thanks to W3C School and hobbles of luck I actually have it working now. Cost me half my hair though. Still dont have the foggiest how it really works but never mind.

 

Thank you very much for your support and patiens.

 

 

LOL b. I feel your pain. All part of learning.

 

Not alone in your troubles, perhaps you should share your cure so that those that happen along behind you will have less hair to loose. Half is a lot. Perhaps it will take that number down to a quarter ;)

Share this post


Link to post
Share on other sites
Hi Jan

 

Thanks to W3C School and hobbles of luck I actually have it working now. Cost me half my hair though. Still dont have the foggiest how it really works but never mind.

 

Thank you very much for your support and patiens.

 

Perhaps you like to share the changes you made in index.php with other that have the same mistake? :)

Share this post


Link to post
Share on other sites
Perhaps you like to share the changes you made in index.php with other that have the same mistake? :)

Most likely there is no mistake but his site using a template. It can be tricky/not really straightforward to add the code for the group prices in there.

Share this post


Link to post
Share on other sites

Hi,

I have installed SPPC 4.2.2 - it is working fine on all levels. but ever since that I have lost the visibility of the VAT tax attached to each product.

I am stuck with this for a long time now and cannot figure it out. I went through everything and read several articals, but nothing.

 

Please, can you help? I'm Desperate!

 

Thank you for all the great work!

Edited by eyal_barouk

Eyal

How About an Open Source Car?

Share this post


Link to post
Share on other sites

Hello, I want to install Referral Point System module to my osc but before that i have already installed http://addons.oscommerce.com/info/3220 ## POINTS AND REWARDS MODULE V1.00 ## module.

Is it possible to install this module with the existing points & rewards module..?

I cant overwrite all the files contained in Referral Point System module folder.

 

Please help me to go through proper procedure and steps.

 

Thank you waiting for your response

Share this post


Link to post
Share on other sites
Prices in categories are actually queried in includes/modules/product_listing. The queries on index.php are only to insure the correct order of prices is maintained when listing on price is chosen by the customer.

 

Problem in product listing,

 

After installing product listing multiple(units to add to cart by line) I get the wholesaler prices as 0,00 until I press the header of wholesaler prices.

 

I mean when i make it sort by wholesaler price it shows the prices, if i then I sort by whatever..retail price, for instance, wholesaler prices show again as 0.00

Share this post


Link to post
Share on other sites
I have installed SPPC 4.2.2 - it is working fine on all levels. but ever since that I have lost the visibility of the VAT tax attached to each product.

Did you check the settings for customer groups in the admin? There are settings for "show tax" per customer group in there.

Share this post


Link to post
Share on other sites
Hello, I want to install Referral Point System module to my osc but before that i have already installed http://addons.oscommerce.com/info/3220 ## POINTS AND REWARDS MODULE V1.00 ## module.

Is it possible to install this module with the existing points & rewards module..?

This is a thread on SPPC (Separate Pricing Per Customer). Why do you think the people who read/post in this particular thread would have any knowledge on referral systems? :blink:

Share this post


Link to post
Share on other sites
Problem in product listing,

 

After installing product listing multiple(units to add to cart by line) I get the wholesaler prices as 0,00 until I press the header of wholesaler prices.

 

I mean when i make it sort by wholesaler price it shows the prices, if i then I sort by whatever..retail price, for instance, wholesaler prices show again as 0.00

So there is obviously a coding problem in there. I think it might be line 124-136 :)

Share this post


Link to post
Share on other sites
So there is obviously a coding problem in there. I think it might be line 124-136 :)

 

I think the problem is in the list price section, but i am totally unable to find the cause, I have been trying for 3 days..... :blink:

 

case 'PRODUCT_LIST_RETAIL_PRICE':

$lc_align = 'right';

if ((tep_not_null($listing['products_retail_price'])) && ($listing['products_retail_price']) > 0) {

$lc_text = '<font color="#55508a">' . $currencies->display_price($listing['products_retail_price'], tep_get_tax_rate($listing['products_tax_class_id']));

} else {

$lc_text = ' ';

}

break;

// End EZier New Fields added

case 'PRODUCT_LIST_PRICE':

$lc_align = 'center';

if (tep_not_null($listing['specials_new_products_price'])) {

$lc_text = ' <div class="listPrice">' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</div>  <span class="productSpecialPrice">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span> ';

} else {

$lc_text = ''. $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id']));

}

break;

Share this post


Link to post
Share on other sites
I think the problem is in the list price section, but i am totally unable to find the cause, I have been trying for 3 days.....

I am almost certain that the problem is you use $listing['db_field'] (e.g. $listing['products_retail_price']( instead of $listing[$x]['db_field'] in those parts.

Share this post


Link to post
Share on other sites
I am almost certain that the problem is you use $listing['db_field'] (e.g. $listing['products_retail_price']( instead of $listing[$x]['db_field'] in those parts.

 

 

The file i am using has following:

while ($listing = tep_db_fetch_array($listing_query)) {

 

instead of:

 

for ($x = 0; $x < $no_of_listings; $x++) {

 

 

so if I use the $X I get a blank screen

 

And also it only happens with the wholesaler price column the rest are ok, if it wasa problem of the $x it would happen in all columns (?) :blink:

Edited by vmf08034

Share this post


Link to post
Share on other sites
Did you check the settings for customer groups in the admin? There are settings for "show tax" per customer group in there.

 

Thank you for your answer Jan.

What I did:

1. In Customer groups setting, edited the group and selected: "Set order total modules for the customer group" and checked all boxes.

2. I went to the customer details. In there I selected "Use settings from Configuration" for all modules.

Still no luck. The tax still doesn't show.


Eyal

How About an Open Source Car?

Share this post


Link to post
Share on other sites
The file i am using has following:

while ($listing = tep_db_fetch_array($listing_query)) {

 

instead of:

 

for ($x = 0; $x < $no_of_listings; $x++) {

The way SPPC works there is to first get the results of the query with the while ($listing = tep_db_fetch_array($listing_query)) { to get a list of product id's. The results from that query are stored in an array called $listing. Then using the product id's there are queries for customer group prices and special prices for groups and those are added/replaced in $listing.

After all the information needed for that customer has been added to $listing we retrieve the results with the for loop going over the $listing array (for ($x = 0; $x < $no_of_listings; $x++) {

If instead you retrieve the results of the query for a second time with the while loop then the group prices are not added so logically the wholesale price is zero.

That you get any price in there is more amazing to me :)

Share this post


Link to post
Share on other sites
What I did:

1. In Customer groups setting, edited the group and selected: "Set order total modules for the customer group" and checked all boxes.

2. I went to the customer details. In there I selected "Use settings from Configuration" for all modules.

Still no luck. The tax still doesn't show.

What have order total modules have to do with taxes? Settings for taxes are the very first part in editing settings for customer groups:

Show prices with/without tax:	  This Setting only works when 'Display Prices with Tax'
	is set to true in the Configuration for your store and Tax Exempt (below) to 'No'.
Tax Exempt:

Share this post


Link to post
Share on other sites
The way SPPC works there is to first get the results of the query with the while ($listing = tep_db_fetch_array($listing_query)) { to get a list of product id's. The results from that query are stored in an array called $listing. Then using the product id's there are queries for customer group prices and special prices for groups and those are added/replaced in $listing.

After all the information needed for that customer has been added to $listing we retrieve the results with the for loop going over the $listing array (for ($x = 0; $x < $no_of_listings; $x++) {

If instead you retrieve the results of the query for a second time with the while loop then the group prices are not added so logically the wholesale price is zero.

That you get any price in there is more amazing to me :)

I will work on that

 

But most of all THANK YOU.....

Share this post


Link to post
Share on other sites
What have order total modules have to do with taxes? Settings for taxes are the very first part in editing settings for customer groups:

Show prices with/without tax:	  This Setting only works when 'Display Prices with Tax'
	is set to true in the Configuration for your store and Tax Exempt (below) to 'No'.
Tax Exempt:

I have "display prices with tax"=true on both store and customer group

Group's tax exempts is set to false.

And still it doesn't work - baffled.


Eyal

How About an Open Source Car?

Share this post


Link to post
Share on other sites
I will work on that

 

But most of all THANK YOU.....

 

I am trying but.... can´t

 

Is there a contribution for SPPC that adds a checkbox on the the product listing page to add the quantities to the cart?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×