stealthhosts Posted September 30, 2009 Posted September 30, 2009 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
knifeman Posted September 30, 2009 Posted September 30, 2009 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
stealthhosts Posted October 1, 2009 Author Posted October 1, 2009 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: Click "details" and the price changes from 30.00incl tax to 34.50incl tax: The new price then stays throughout the checkout process: This has caused customers to be nervous about ordering as the prices increase from the specials page to the shopping cart
stealthhosts Posted October 1, 2009 Author Posted October 1, 2009 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'); ?>
knifeman Posted October 1, 2009 Posted October 1, 2009 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
knifeman Posted October 1, 2009 Posted October 1, 2009 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?
spax Posted October 1, 2009 Posted October 1, 2009 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> ';
Recommended Posts
Archived
This topic is now archived and is closed to further replies.