nastea Posted November 13, 2014 Share Posted November 13, 2014 When adding products to the cart, I'm getting two products added. I'm sure it is an easy problem but not sure where to even start. You find a product, click add after clicking size etc. Then when it takes you to the cart you have two added.Any pointers? Link to comment Share on other sites More sharing options...
♥Tsimi Posted November 14, 2014 Share Posted November 14, 2014 What version of osC are you using? What add-ons did you install or did you install any add-on that could affect the add to cart button or the shopping_cart.php file? Did it ever work before? Link to comment Share on other sites More sharing options...
nastea Posted November 19, 2014 Author Share Posted November 19, 2014 It did work before, I have quite a few addons, it started happening after I loaded QTPro but the admin/author of that addon hasn't replied. So I figured I'd at least get someone to tell me where I can look. It worked fine before the QTpro load and I'm using 2.3.4. Link to comment Share on other sites More sharing options...
nastea Posted November 19, 2014 Author Share Posted November 19, 2014 Here is the shopping_cart.php <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2010 osCommerce Released under the GNU General Public License */ require("includes/application_top.php"); if ($cart->count_contents() > 0) { include(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment; } require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_SHOPPING_CART); $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_SHOPPING_CART)); require(DIR_WS_INCLUDES . 'template_top.php'); ?> <h1><?php echo HEADING_TITLE; ?></h1> <?php if ($cart->count_contents() > 0) { ?> <?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_SHOPPING_CART, 'action=update_product')); ?> <div id="mj-shoppingcart"> <div class="contentContainer"> <div class="contentText"> <?php $any_out_of_stock = 0; $products = $cart->get_products(); for ($i=0, $n=sizeof($products); $i<$n; $i++) { // Push all attributes information in an array if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) { while (list($option, $value) = each($products[$i]['attributes'])) { echo tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . $option . ']', $value); $attributes = tep_db_query("select popt.products_options_name, popt.products_options_track_stock, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . (int)$products[$i]['id'] . "' and pa.options_id = '" . (int)$option . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . (int)$value . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . (int)$languages_id . "' and poval.language_id = '" . (int)$languages_id . "'"); $attributes_values = tep_db_fetch_array($attributes); $products[$i][$option]['products_options_name'] = $attributes_values['products_options_name']; $products[$i][$option]['options_values_id'] = $value; $products[$i][$option]['products_options_values_name'] = $attributes_values['products_options_values_name']; $products[$i][$option]['options_values_price'] = $attributes_values['options_values_price']; $products[$i][$option]['price_prefix'] = $attributes_values['price_prefix']; $products[$i][$option]['track_stock'] = $attributes_values['products_options_track_stock']; } } } ?> <table border="0" width="100%" cellspacing="0" cellpadding="10"> <tbody> <tr class="tableHeading"> <th><?php echo PRODUCT_TITLE_CART; ?></th> <th><?php echo PRODUCT_QTY_CART; ?></th> <th><?php echo PRODUCT_UPDATE_CART; ?></th> <th><?php echo PRODUCT_REMOVE_CART; ?></th> <th><?php echo ENTRY_TOTAL_CART; ?></th> </tr> <?php for ($i=0, $n=sizeof($products); $i<$n; $i++) { ?> <tr class="tablecontent"> <td align="center" class="product_info_image"> <?php if (STOCK_CHECK == 'true') { //++++ QT Pro: Begin Changed code if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) { $stock_check = tep_check_stock($products[$i]['id'], $products[$i]['quantity'], $products[$i]['attributes']); }else{ $stock_check = tep_check_stock($products[$i]['id'], $products[$i]['quantity']); } //++++ QT Pro: End Changed Code if (tep_not_null($stock_check)) { $any_out_of_stock = 1; $products_name_q = $stock_check; } } ?> <?php if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) { reset($products[$i]['attributes']); while (list($option, $value) = each($products[$i]['attributes'])) { $products[$i]['name'] .= '<br /><small><i> - ' . $products[$i][$option]['products_options_name'] . ' ' . $products[$i][$option]['products_options_values_name'] . '</i></small>'; } } ?> <a href="<?php echo tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']);?>"> <?php echo tep_image(DIR_WS_IMAGES . $products[$i]['image'], $products[$i]['name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT); ?> </a><br/> <a href="<?php echo tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']);?>"> <strong><?php echo $products[$i]['name'] . $products_name_q; ?></strong> </a> </td> <td align="center"> <?php echo tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="4"') . tep_draw_hidden_field('products_id[]', $products[$i]['id']); ?> </td> <td align="center"> <?php echo tep_draw_button(IMAGE_BUTTON_UPDATE, 'refresh'); ?> </td> <td align="center"> <span class="link_button"> <a href="<?php echo tep_href_link(FILENAME_SHOPPING_CART, 'products_id=' . $products[$i]['id'] . '&action=remove_product'); ?>"> <?php echo /*TEXT_REMOVE*/ "Remove"; ?> </a> </span> </td> <td align="center" valign="middle"><strong> <?php echo $currencies->display_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id']), $products[$i]['quantity']); ?></strong> </td> </tr> <?php } ?> </tbody> </table> <div id="cartSubTotal"><?php echo SUB_TITLE_SUB_TOTAL; ?> <?php echo $currencies->format($cart->show_total()); ?></div> <?php if ($any_out_of_stock == 1) { if (STOCK_ALLOW_CHECKOUT == 'true') { ?> <p class="stockWarning" align="center"><?php echo OUT_OF_STOCK_CAN_CHECKOUT; ?></p> <?php } else { ?> <p class="stockWarning" align="center"><?php echo OUT_OF_STOCK_CANT_CHECKOUT; ?></p> <?php } } ?> </div> <div class="buttonSet"> <span class="link_button"><?php echo tep_draw_button(IMAGE_BUTTON_CHECKOUT, 'triangle-1-e', tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'), 'primary'); ?></span> <?php $initialize_checkout_methods = $payment_modules->checkout_initialization_method(); if (!empty($initialize_checkout_methods)) { reset($initialize_checkout_methods); while (list(, $value) = each($initialize_checkout_methods)) { ?> <span class="other_options"> <?php echo $value; ?></span> <span class="alternate_text"><?php echo TEXT_ALTERNATIVE_CHECKOUT_METHODS; ?> </span> <?php } } ?> </div> </div> </div> </form> <?php } else { ?> <div id="mj-shoppingcart"> <div class="contentContainer"> <div class="content_box"> <?php echo TEXT_CART_EMPTY; ?> <br/> <br/> <span class="link_button"><?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?></span> </div> </div> </div> <?php } require(DIR_WS_INCLUDES . 'template_bottom.php'); require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> Link to comment Share on other sites More sharing options...
multimixer Posted November 20, 2014 Share Posted November 20, 2014 The file shopping_cart.php is not relevant Post the lines from your file includes/application_top.php, only the "case: add_product" that start with case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) { and end with tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; // customer removes a product from their shopping cart My community profile | Template system for osCommerce - New: Responsive | Feedback channel Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.