Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Specials pricing displays incorrect price


stealthhosts

Recommended Posts

Posted

Long time listener - 1st time caller :)

 

I have installed and managed an OSC v2.2RC2 installation for the last 12months.

 

I've hit a significant problem which I can't seem to resolve.

 

1) product A has a price of 34.74 +15% tax (gross price of 39.95)

2) product A has been made a "special product" with a reduced price of 30.00

 

All of the above appears correctly in the admin section and on specials.php

 

However, viewing the details of the product (product_info.php) the price appears incorrectly as 34.50 which is then the price which the customer is charged.

 

I have checked the database and can find the correct pricing and no mention of the incorrect.

 

Happy to post any relevant info

 

Any help appreciated

Posted
Long time listener - 1st time caller :)

 

I have installed and managed an OSC v2.2RC2 installation for the last 12months.

 

I've hit a significant problem which I can't seem to resolve.

 

1) product A has a price of 34.74 +15% tax (gross price of 39.95)

2) product A has been made a "special product" with a reduced price of 30.00

 

All of the above appears correctly in the admin section and on specials.php

 

However, viewing the details of the product (product_info.php) the price appears incorrectly as 34.50 which is then the price which the customer is charged.

 

I have checked the database and can find the correct pricing and no mention of the incorrect.

 

Happy to post any relevant info

 

Any help appreciated

$30 plus 15% is $34.50

In admin there is a place to 'display prices with tax'

 

Check there first.

 

Tim

Posted

I've checked admin > configuration > my store > display prices with tax = true

 

perhaps some screenshots will better explain the problem:

 

Entering the site and viewing the "specials" page shows:

 

1-specials-php.jpg

 

Click "details" and the price changes from 30.00incl tax to 34.50incl tax:

 

2-product_info-php.jpg

 

The new price then stays throughout the checkout process:

 

3-shopping_cart-php.jpg

 

This has caused customers to be nervous about ordering as the prices increase from the specials page to the shopping cart

Posted

Re-reviewing it and trying a bunch more testing it may be that the specials.php is displaying prices without Tax applied - then the other pages are. It would also appear to be the same in the admin section for specials too.

 

The specials page should display the prices including tax!

 

I've included my specials.php file:

 

<?php

/*

 $Id: specials.php 1739 2007-12-20 00:52:16Z hpdl $



 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');



 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_SPECIALS);



 $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_SPECIALS));

?>

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

<html <?php echo HTML_PARAMS; ?>>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<title><?php require(DIR_WS_INCLUDES . 'meta_tags.php');?></title>

<?php

  if (!isset($lng) || (isset($lng) && !is_object($lng))) {

	include_once(DIR_WS_CLASSES . 'language.php');

	$lng = new language;

  }



  reset($lng->catalog_languages);

  while (list($key, $value) = each($lng->catalog_languages)) {

?>

	 <link rel="alternate" type="application/rss+xml" title="<?php echo STORE_NAME . ' - ' . BOX_INFORMATION_RSS; ?>" href="<?php echo FILENAME_RSS, '?language=' . $key.((isset($_GET['cPath']))?'&cPath='.$_GET['cPath']:'').((isset($_GET['manufacturers_id']))?'&manufacturers_id='.$_GET['manufacturers_id']:''); ?>">

	  <?php

	  }

	  ?>

<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">

<script type="text/javascript" src="iepngfix_tilebg.js"></script>

<link rel="stylesheet" type="text/css" href="stylesheet.css">

<style type="text/css">

.ie6_png 			{behavior: url("iepngfix.htc") }

.ie6_png img		{behavior: url("iepngfix.htc") }

.ie6_png input		{behavior: url("iepngfix.htc") }

</style>

<!--[if IE]>

  <script type="text/javascript" src="ie_png.js"></script>

  <script type="text/javascript">

   ie_png.fix('.png');

  </script>

<![endif]-->

</head>

<body>

<!-- header //-->

<?php $tab_sel = 4; ?>

<?php require(DIR_WS_INCLUDES . 'header.php'); ?>

<!-- header_eof //-->



<!-- body //-->

<table border="0" class="<?php echo MAIN_TABLE; ?>" cellspacing="0" cellpadding="0">

<tr>

<td class="<?php echo BOX_WIDTH_TD_LEFT; ?>"><table border="0" class="<?php echo BOX_WIDTH_LEFT; ?>" cellspacing="0" cellpadding="0">

<!-- left_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>

<!-- left_navigation_eof //-->

</table></td>

<!-- body_text //-->

<td class="<?php echo CONTENT_WIDTH_TD; ?>"><?php echo panel_top(); ?>



<?php echo tep_draw_top77();?>









			<?php new contentBoxHeading_ProdNew($info_box_contents);?>



<?php echo tep_draw3_top();?>





<?php

 $specials_query_raw = "select p.products_id, pd.products_name, p.products_price, p.products_tax_class_id, p.products_image, s.specials_new_products_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_SPECIALS . " s where p.products_status = '1' and s.products_id = p.products_id and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' and s.status = '1' order by s.specials_date_added DESC";

 $specials_split = new splitPageResults($specials_query_raw, MAX_DISPLAY_SPECIAL_PRODUCTS);



 if (($specials_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3'))) {

?>



<?php echo tep_draw_result1_top(); ?> 



	<table border="0" width="100%" cellspacing="0" cellpadding="0" class="result">

	  <tr>

		<td><?php echo $specials_split->display_count(TEXT_DISPLAY_NUMBER_OF_SPECIALS); ?></td>

		<td class="result_right"><?php echo TEXT_RESULT_PAGE . ' ' . $specials_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>

	  </tr>

	</table>



<?php echo tep_draw_result1_bottom(); ?> 



<?php

 }

?>



<?php

$row = 0;

$specials_query = tep_db_query($specials_split->sql_query);



 $row = 0;

 $col = 0;

 $info_box_contents = array();

  while ($specials = tep_db_fetch_array($specials_query)) {

$specials['products_name'] = tep_get_products_name($specials['products_id']);

// ----------	

$product_query = tep_db_query("select products_description, products_id from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$specials['products_id'] . "' and language_id = '" . (int)$languages_id . "'");

$product = tep_db_fetch_array($product_query);

$p_desc = substr(strip_tags($product['products_description']), 0, MAX_DESCR_1).'...';

$p_id = $product['products_id'];



$p_pic = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $specials['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $specials['products_image'], $specials['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>';



$p_name = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $specials['products_id']) . '">' .$specials['products_name'] . '</a>';



$p_price = '<s>'.$currencies->display_price($specials['products_price'], tep_get_tax_rate($specials['products_tax_class_id'])).'</s>   <span class="productSpecialPrice">'.$currencies->display_price($specials['specials_new_products_price'],'').'</span> ';



 $p_details = '<a href="' . tep_href_link('product_info.php?products_id='.$p_id) . '">'.tep_image_button("button_details.gif").'</a>';

 $p_buy_now = '<a href="'.tep_href_link("products_new.php","action=buy_now&products_id=".$p_id).'">'.tep_image_button('button_add_to_cart1.gif').'</a>';

 $p_button = '<a href="'.tep_href_link("products_new.php","action=buy_now&products_id=".$p_id).'">'.tep_image_button('button_buy_now1.gif').'</a>';



$info_box_contents[$row][$col] = array('align' => 'center',

									   'params' => 'style="width:33%;padding:0 0 0 0;"',

									   'text' => ''.tep_draw_prod_top().'









				  <table cellpadding="0" cellspacing="0" border="0" class="prod_box">

					  <tr>

						<td>

							 <table cellpadding="0" cellspacing="0" border="0">

							 	<tr>

									<td>'.tep_image(DIR_WS_IMAGES.'prodbox_ltc.gif').'<br /></td>

									<td class="row1_td">'.tep_draw_separator('spacer.gif', '1', '12').'<br></td>

									<td>'.tep_image(DIR_WS_IMAGES.'prodbox_rtc.gif').'<br /></td>

								</tr>

							 </table>

						</td>

					</tr>

					<tr>

						<td>

							 <table cellpadding="0" cellspacing="0" border="0" class="inner1">

							 	<tr>

									<td class="inner2">

										 <table cellpadding="0" cellspacing="0" border="0" class="inner3">

											<tr>

												<td class="inner4">

													 <table cellpadding="0" cellspacing="0" border="0" class="inner5">

														<tr>

															<td class="inner6">





<table cellpadding="0" cellspacing="0" border="0">

 <tr>

<td style="width:100%;">

  <table cellpadding="0" cellspacing="0" border="0">

	<tr>

	  <td class="cont_heading_td" style="text-align:center;"> 

		'.$p_name.' <br>

		'.tep_draw_separator('spacer.gif', '1', '23').'<br>

	  </td>

	</tr>

	<tr>

	  <td>'.tep_draw_prod_pic_top().''.$p_pic.''.tep_draw_prod_pic_bottom().'<br>

	  </td>

	</tr>



	<tr>

	  <td class="price_box" style="text-align:center;">

	   '.tep_draw_separator('spacer.gif', '1', '15').'<br>

	   '.$p_price.'<br>

	   '.tep_draw_separator('spacer.gif', '1', '12').'<br>

	  </td>

	</tr>



	<tr>

	  <td style="text-align:center;">

	   '.tep_draw_separator('spacer.gif', '1', '18').'<br>

	  '.$p_details.'<br>

	   '.tep_draw_separator('spacer.gif', '1', '4').'<br>

	  </td>

	</tr>



	<tr>

	  <td style="text-align:center;">'.$p_buy_now.'<br>

	'.tep_draw_separator('spacer.gif', '1', '19').'<br>



	  </td>

	</tr>

  </table>

</td>

 </tr>

</table>









															</td>

														</tr>

													 </table>

												</td>

											</tr>

										 </table>

									</td>

								</tr>

							 </table>

						</td>

					</tr>

				  </table>







		'.tep_draw_prod_bottom().'');

$col ++;

if ($col > 2) {

  $col = 0;

  $row ++;

}

 }

 new contentBox($info_box_contents);

?>



<?php

 if (($specials_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3'))) {

?>



<?php echo tep_draw_result2_top(); ?> 



	<table border="0" width="100%" cellspacing="0" cellpadding="0" class="result1">

	  <tr>

		<td><?php echo $specials_split->display_count(TEXT_DISPLAY_NUMBER_OF_SPECIALS); ?></td>

		<td class="result_right"><?php echo TEXT_RESULT_PAGE . ' ' . $specials_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>

	  </tr>

	</table>



<?php echo tep_draw_result2_bottom(); ?> 



<?php

 }

?>



<?php echo tep_draw3_bottom();?>



<?php echo tep_draw_bottom77();?>



</td>

<!-- body_text_eof //-->

<td class="<?php echo BOX_WIDTH_TD_RIGHT; ?>"><table border="0" class="<?php echo BOX_WIDTH_RIGHT; ?>" cellspacing="0" cellpadding="0">

<!-- right_navigation //-->

<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>

<!-- right_navigation_eof //-->

</table></td>

 </tr>

</table>

<!-- body_eof //-->



<!-- footer //-->

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

<!-- footer_eof //-->

</body>

</html>

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

Posted

I don't display my prices with tax. I have that option turned off.

 

So the following is pure conjecture. I would think your store is running correctly. The price is displayed as $30. Until a person adds it to their cart, there is no tax. A customer outside any taxable zones would want to see the $30 price, not the $34.50.

 

Tim

Posted

Sorry, I was wrong.

I changed my store value and the tax does show on the specials page. I then compared your file to mine and yours is heavily modified. Especially around line 217. Did you add a contribution? What version is your store?

Posted

display_price() needs the tax argument to display it. You have an empty value in the second instance of it:

 

$p_price = '<s>'.$currencies->display_price($specials['products_price'], tep_get_tax_rate($specials['products_tax_class_id'])).'</s>   <span class="productSpecialPrice">'.$currencies->display_price($specials['specials_new_products_price'],'').'</span> ';

 

 

See if this works:

 

$p_price = '<s>'.$currencies->display_price($specials['products_price'], tep_get_tax_rate($specials['products_tax_class_id'])).'</s>   <span class="productSpecialPrice">'.$currencies->display_price($specials['specials_new_products_price'], tep_get_tax_rate($specials['products_tax_class_id'])).'</span> ';

Archived

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

×
×
  • Create New...