Remove item from cart module redirect page

  • Posts: 31
  • Thank you received: 2
10 years 8 months ago #149257

-- url of the page with the problem -- : mywebsite.com/mypage
-- HikaShop version -- :latest
-- Joomla version -- : 3.2.2
-- PHP version -- : x.x.x
-- Browser(s) name and version -- : XXXXX x.x.x
-- Error-message(debug-mod must be tuned on) -- : Error_message

Hi there

When removing an item from my the Hikashop cart module i would like it to stay on the same page
instead of it redirecting to the main products page, how can i achive this?

Thanks

Please Log in or Create an account to join the conversation.

  • Posts: 82910
  • Thank you received: 13379
  • MODERATOR
10 years 8 months ago #149260

Hi,

You would have to edit the file "cart" of the view "product" via the menu Display>Views and change the line:
<input type="hidden" name="url" value="<?php echo $this->params->get('url');?>"/>

to:
<input type="hidden" name="url" value="<?php echo hikashop_currentURL();?>"/>

The following user(s) said Thank You: kitkat

Please Log in or Create an account to join the conversation.

  • Posts: 31
  • Thank you received: 2
10 years 8 months ago #149289

Hi Nicolas

Thank you for looking into this, i did as you suggested but still after editing the
product / cart.php file

to

<?php
/**
 * @package	HikaShop for Joomla!
 * @version	2.3.0
 * @author	hikashop.com
 * @copyright	(C) 2010-2014 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php
global $Itemid;
$url_itemid='';
if(!empty($Itemid)){
	$url_itemid='&Itemid='.$Itemid;
}
$this->setLayout('listing_price');
$this->params->set('show_quantity_field', 0);
$desc = $this->params->get('msg');
$cart_type = $this->params->get('cart_type','cart');
if($cart_type == 'wishlist'){
	$convertText = JText::_('WISHLIST_TO_CART');
	$displayText = JText::_('DISPLAY_THE_WISHLIST');
	$displayAllText = JText::_('DISPLAY_THE_WISHLISTS');
	$emptyText = JText::_('WISHLIST_EMPTY');
}else{
	$convertText = JText::_('CART_TO_WISHLIST');
	$displayText = JText::_('DISPLAY_THE_CART');
	$displayAllText = JText::_('DISPLAY_THE_CARTS');
	$emptyText = JText::_('CART_EMPTY');
}
if(empty($desc) && $desc != '0'){
	$this->params->set('msg',$emptyText);
}
if(!headers_sent()){
	header( 'Cache-Control: no-store, no-cache, must-revalidate' );
	header( 'Cache-Control: post-check=0, pre-check=0', false );
	header( 'Pragma: no-cache' );
}
$cart_type=$this->params->get('cart_type','cart');
if($this->params->get('from','no') == 'no'){
	$this->params->set('from',JRequest::getString('from','display'));
}
if(empty($this->rows)){
	$desc = trim($this->params->get('msg'));
	if(!empty($desc) || $desc == '0'){
		echo $this->notice_html;  ?>
		<div id="hikashop_cart" class="hikashop_cart">
			<?php echo $desc; ?>
		</div>
		<div class="clear_both"></div>
<?php
	}
}else{ ?>
<div id="hikashop_cart" class="hikashop_cart">
	<?php
	if($this->config->get('print_cart',0) && JRequest::getVar('tmpl','')!='component' && $cart_type != 'wishlist'){
	?>
	<div class="_hikashop_checkout_cart_print_link">
	<?php
		echo $this->popup->display(
			'<img src="'.HIKASHOP_IMAGES.'print.png" alt="'.JText::_('HIKA_PRINT').'" />',
			'HIKA_PRINT',
			hikashop_completeLink('checkout&task=printcart',true),
			'hikashop_print_popup',
			760, 480, '', '', 'link'
		);
	?>
	</div>
<?php
	}
	else if($this->params->get('from','display') != 'module'){
		echo '<div class="hikashop_product_cart_links">';
			echo '<div class="hikashop_product_cart_show_carts_link">';
				echo $this->cart->displayButton($displayAllText,'cart',$this->params,hikashop_completeLink('cart&task=showcarts&cart_type='.$cart_type.$url_itemid),'');
			echo '</div>';
?>
			<div class="hikashop_product_cart_mail_link">
			<?php
				echo $this->popup->display(
					'<img src="'.HIKASHOP_IMAGES.'go.png" alt="'.JText::_('HIKA_EMAIL').'" />',
					'HIKA_EMAIL',
					hikashop_completeLink('product&task=sendcart',true),
					'hikashop_email_popup',
					760, 480, '', '', 'link'
				);
			?>
			</div>
			<div class="hikashop_product_cart_print_link">
			<?php
				echo $this->popup->display(
					'<img src="'.HIKASHOP_IMAGES.'print.png" alt="'.JText::_('HIKA_PRINT').'" />',
					'HIKA_PRINT',
					hikashop_completeLink('product&task=printcart',true),
					'hikashop_print_popup',
					760, 480, '', '', 'link'
				);
			?>
			</div>
<?php
		echo '</div><div class="clear_both"></div>';
	}

	echo $this->notice_html;
	$row_count = 0;

	if($this->params->get('small_cart')){
		$this->row=$this->total;
		if($this->params->get('show_cart_quantity',1)){
			$qty = 0;
			$group = $this->config->get('group_options',0);
			foreach($this->rows as $i => $row){
				if(empty($row->cart_product_quantity) && $cart_type  != 'wishlist') continue;
				if($group && $row->cart_product_option_parent_id) continue;
				$qty+=$row->cart_product_quantity;
			}
			$text = JText::sprintf('X_ITEMS_FOR_X',$qty,$this->loadTemplate());
		}else{
			$text = JText::sprintf('TOTAL_IN_CART_X',$this->loadTemplate());
		}

		if($cart_type != 'wishlist'){
			?>
			<a class="hikashop_small_cart_checkout_link" href="<?php echo hikashop_completeLink('checkout'.$url_itemid); ?>">
				<span class="hikashop_small_cart_total_title"><?php echo $text; ?></span>
			</a><?php
			if($this->params->get('show_cart_delete',1)){
				$delete = hikashop_completeLink('product&task=cleancart');
				if(strpos($delete,'?')){
					$delete.='&amp;';
				}else{
					$delete.='?';
				} ?>
			<a class="hikashop_small_cart_clean_link" href="<?php echo $delete.'return_url='. urlencode(base64_encode(hikashop_currentURL('url',false))); ?>" >
				<img src="<?php echo HIKASHOP_IMAGES . 'delete2.png';?>" border="0" alt="clean cart" />
			</a><?php
			}
			if($this->params->get('show_cart_proceed',1) && $this->params->get('cart_type','cart') != 'wishlist'  && $this->params->get('from','display') == 'module'){
				echo $this->cart->displayButton(JText::_('PROCEED_TO_CHECKOUT'),'checkout',$this->params,hikashop_completeLink('checkout'.$url_itemid),'window.location=\''.hikashop_completeLink('checkout'.$url_itemid).'\';return false;');
			}
		}else{
			foreach($this->rows as $row){
				$cart_id = $row->cart_id;
			}
			?>
			<a class="hikashop_small_cart_checkout_link" href="<?php echo hikashop_completeLink('cart&task=showcart&cart_id='.$cart_id.'&cart_type='.$cart_type.$url_itemid); ?>">
				<span class="hikashop_small_cart_total_title"><?php echo $text; ?></span>
			</a>
			<?php
		}
	}else{
		if($cart_type == 'wishlist'){
				$form = 'hikashop_wishlist_form';
		}
		else{
			$form = 'hikashop_cart_form';
		}
	?>
	<form action="<?php echo hikashop_completeLink('product&task=updatecart'.$url_itemid,false,true); ?>" method="post" name="<?php echo $form;?>">
		<table width="100%">
			<thead>
				<tr>
					<?php if(@$this->params->get('image_in_cart')){
						$row_count++; ?>
					<th class="hikashop_cart_module_product_image_title hikashop_cart_title">
						<?php echo JText::_('CART_PRODUCT_IMAGE'); ?>
					</th>
					<?php }
					if($this->params->get('show_cart_product_name',1)){
					 	$row_count++; ?>
					<th class="hikashop_cart_module_product_name_title hikashop_cart_title">
						<?php echo JText::_('CART_PRODUCT_NAME'); ?>
					</th>
					<?php }
					if($this->params->get('show_cart_quantity',1)){
						$row_count++; ?>
						<th class="hikashop_cart_module_product_quantity_title hikashop_cart_title">
							<?php echo JText::_('CART_PRODUCT_QUANTITY'); ?>
						</th>
					<?php }
					if($this->params->get('show_price',1)){
						$row_count++; ?>
					<th class="hikashop_cart_module_product_price_title hikashop_cart_title">
						<?php echo JText::_('CART_PRODUCT_PRICE'); ?>
					</th>
					<?php }
					if($this->params->get('show_cart_delete',1)){
						$row_count++; ?>
					<th class="hikashop_cart_title">
					</th>
					<?php }
					if($row_count<1){ ?>
					<th></th>
					<?php }?>
				</tr>
			</thead>
			<?php if($this->params->get('show_price',1) && $this->params->get('cart_type','cart') != 'wishlist'){ ?>
			<tfoot>
				<tr>
					<td colspan="<?php echo $row_count;?>">
						<hr />
					</td>
				</tr>
				<tr>
					<?php
					switch($row_count){
						case 0:
						case 1: ?>
							<td class="hikashop_cart_module_product_total_value">
								<?php
								$this->row=$this->total;
								echo $this->loadTemplate(); ?>
							</td>
							<?php
							break;

						default:
							$colspan = $row_count-1;
							if($this->params->get('show_cart_delete',1)){
								$colspan=$colspan-1;
							}
							if($colspan){
							?>
							<td class="hikashop_cart_module_product_total_title" colspan="<?php echo $colspan; ?>">
								<?php echo JText::_('HIKASHOP_TOTAL'); ?>
							</td>
							<?php } ?>
							<td class="hikashop_cart_module_product_total_value">
							<?php
								$this->row=$this->total;
								echo $this->loadTemplate();
							?>
							</td>
							<?php if($this->params->get('show_cart_delete',1)){ ?>
								<td>
								</td>
							<?php }
							break;
					}?>
				</tr>
			</tfoot>
			<?php } ?>
			<tbody>
				<?php
					$k = 0;
					$this->cart_product_price = true;
					$group = $this->config->get('group_options',0);
					$cart_id = 0;
					$app = JFactory::getApplication();
					$productClass = hikashop_get('class.product');

					$defaultParams = $this->config->get('default_params');

					$this->image = hikashop_get('helper.image');
					$height = $this->config->get('thumbnail_y');
					$width = $this->config->get('thumbnail_x');
					foreach($this->rows as $i => $row){
						$cart_id = $row->cart_id;
						if(empty($row->cart_product_quantity) || @$row->hide == 1) continue;
						if($group && $row->cart_product_option_parent_id) continue;
						$productClass->addAlias($row);
						?>
						<tr class="<?php echo "row$k"; ?>">
							<?php if(@$this->params->get('image_in_cart')){ ?>
							<td class="hikashop_cart_module_product_image hikashop_cart_value" style="vertical-align:middle !important; text-align:center;">
								<?php
									$image_options = array('default' => true,'forcesize'=>$this->config->get('image_force_size',true),'scale'=>$this->config->get('image_scale_mode','inside'));
									$img = $this->image->getThumbnail(@$row->images[0]->file_path, array('width' => $width, 'height' => $height), $image_options);
									if($img->success) {
										echo '<img class="hikashop_product_cart_image" title="'.$this->escape(@$row->images[0]->file_description).'" alt="'.$this->escape(@$row->images[0]->file_name).'" src="'.$img->url.'"/>';
									}
								?>
							</td>
							<?php }
							if($this->params->get('show_cart_product_name',1)){ ?>
							<td class="hikashop_cart_module_product_name_value hikashop_cart_value">
								<?php if(@$defaultParams['link_to_product_page']){ ?> <a href="<?php echo hikashop_completeLink('product&task=show&cid='.$row->product_id.'&name='.$row->alias.$url_itemid);?>" ><?php } ?>
									<?php echo $row->product_name; ?>
									<?php if ($this->config->get('show_code')) { ?>
										<span class="hikashop_product_code_cart"><?php echo $row->product_code; ?></span>
									<?php } ?>
								<?php if(@$defaultParams['link_to_product_page']){ ?></a><?php } ?>
								<p class="hikashop_cart_product_custom_item_fields">
									<?php
									if(hikashop_level(2) && !empty($this->itemFields)){
										foreach($this->itemFields as $field){
											$namekey = $field->field_namekey;
											if(!empty($row->$namekey) && strlen($row->$namekey)){
												echo '<p class="hikashop_cart_item_'.$namekey.'">'.$this->fieldsClass->getFieldName($field).': '.$this->fieldsClass->show($field,$row->$namekey).'</p>';
											}
										}
									}
								$input='';
								if($group){
									foreach($this->rows as $j => $optionElement){
										if($optionElement->cart_product_option_parent_id != $row->cart_product_id) continue;
										 ?>
											<p class="hikashop_cart_option_name">
												<?php
													echo $optionElement->product_name;
												?>
											</p>
									<?php
									$input .='document.getElementById(\'cart_product_option_'.$optionElement->cart_product_id.'\').value=qty_field.value;';
									echo '<input type="hidden" id="cart_product_option_'.$optionElement->cart_product_id.'" name="item['.$optionElement->cart_product_id.'][cart_product_quantity]" value="'.$row->cart_product_quantity.'"/>';
									}
								}
									?>
								</p>
							</td>
							<?php
							}
							if($group){
								foreach($this->rows as $j => $optionElement){
									if($optionElement->cart_product_option_parent_id != $row->cart_product_id) continue;
									if(!empty($optionElement->prices[0])){
										if(!isset($row->prices[0])){
											$row->prices[0]->price_value=0;
											$row->prices[0]->price_value_with_tax=0;
											$row->prices[0]->price_currency_id = hikashop_getCurrency();
										}
										foreach(get_object_vars($row->prices[0]) as $key => $value){
											if(is_object($value)){
												foreach(get_object_vars($value) as $key2 => $var2){
													if(strpos($key2,'price_value')!==false) $row->prices[0]->$key->$key2 +=@$optionElement->prices[0]->$key->$key2;
												}
											}else{
												if(strpos($key,'price_value')!==false) $row->prices[0]->$key+=@$optionElement->prices[0]->$key;
											}
										}
									}
								}
							}
							if($this->params->get('show_cart_quantity',1)){
							?>
							<td class="hikashop_cart_module_product_quantity_value hikashop_cart_value">
								<?php
									if(empty($session))
										$session = new stdClass();
									$session->cart_id = $app->getUserState( HIKASHOP_COMPONENT.'.'.$cart_type.'_id', 0, 'int' );

									if($row->cart_id == $session->cart_id && $this->params->get('from','display') != 'module'){
									?>
										<input id="hikashop_wishlist_quantity_<?php echo $row->cart_product_id;?>" type="text" name="item[<?php echo $row->cart_product_id;?>][cart_product_quantity]" class="hikashop_product_quantity_field" value="<?php echo $row->cart_product_quantity; ?>" onChange="var qty_field = document.getElementById('hikashop_wishlist_quantity_<?php echo $row->cart_product_id;?>'); if (qty_field){<?php echo $input; ?> } document.<?php echo $form; ?>.submit(); return false;" />
										<div class="hikashop_cart_product_quantity_refresh">
											<a href="#" onClick="var qty_field = document.getElementById('hikashop_cart_quantity_<?php echo $row->cart_product_id;?>'); if (qty_field && qty_field.value != '<?php echo $row->cart_product_quantity; ?>'){<?php echo $input; ?> qty_field.form.submit(); } return false;" title="<?php echo JText::_('HIKA_REFRESH'); ?>">
												<img src="<?php echo HIKASHOP_IMAGES . 'refresh.png';?>" border="0" alt="<?php echo JText::_('HIKA_REFRESH'); ?>" />
											</a>
										</div>
									<?php
									}else{
										?>
										<input id="hikashop_cart_quantity_<?php echo $row->cart_product_id;?>" type="text" name="item[<?php echo $row->cart_product_id;?>][cart_product_quantity]" class="hikashop_product_quantity_field" value="<?php echo $row->cart_product_quantity; ?>" onChange="var qty_field = document.getElementById('hikashop_cart_quantity_<?php echo $row->cart_product_id;?>'); if (qty_field){<?php echo $input; ?> } document.<?php echo $form; ?>.submit(); return false;" />
										<?php
									}
									 if($this->params->get('show_delete',1) && $this->params->get('from','display') != 'module'){ ?>
										<div class="hikashop_cart_product_quantity_delete">
											<a href="<?php echo hikashop_completeLink('product&task=updatecart&product_id='.$row->product_id.'&quantity=0&return_url='.urlencode(base64_encode(hikashop_currentURL('return_url')))); ?>" onClick="var qty_field = document.getElementById('hikashop_checkout_quantity_<?php echo $row->cart_product_id;?>'); if(qty_field){qty_field.value=0; <?php echo $input; ?> qty_field.form.submit();} return false;" title="<?php echo JText::_('HIKA_DELETE'); ?>">
												<img src="<?php echo HIKASHOP_IMAGES . 'delete2.png';?>" border="0" alt="<?php echo JText::_('HIKA_DELETE'); ?>" />
											</a>
										</div>
									<?php }
								?>
							</td>
							<?php }
							if($this->params->get('show_price',1)){ ?>
							<td class="hikashop_cart_module_product_price_value hikashop_cart_value">
								<?php
								$this->row=&$row;
								echo $this->loadTemplate();
								?>
							</td>
							<?php }
							if($this->params->get('show_cart_delete',1)){ ?>
							<td class="hikashop_cart_module_product_delete_value hikashop_cart_value">
								<a href="<?php echo hikashop_completeLink('product&task=updatecart&cart_type='.$this->params->get('cart_type','cart').'&cart_product_id='.$row->cart_product_id.'&quantity=0&return_url='.urlencode(base64_encode(urldecode($this->params->get('url'))))); ?>" onClick="var qty_field = document.getElementById('hikashop_cart_quantity_<?php echo $row->cart_product_id;?>'); if(qty_field){qty_field.value=0;<?php echo $input; ?> document.hikashop_cart_form.submit(); return false;}else{ return true;}"  title="<?php echo JText::_('HIKA_DELETE'); ?>"><img src="<?php echo HIKASHOP_IMAGES . 'delete2.png';?>" border="0" alt="<?php echo JText::_('HIKA_DELETE'); ?>" /></a>
							</td>
							<?php }
							if($cart_type == 'wishlist' && $this->params->get('from','display') != 'module'){ ?>
								<td class="hikashop_wishlist_display_add_to_cart">
									<!-- Add 'ADD_TO_CART' button -->
									<?php
									$form = ',\'hikashop_wishlist_form\'';

									$this->ajax = '
										if(qty_field == null){
											var qty_field = document.getElementById(\'hikashop_wishlist_quantity_'.$row->cart_product_id.'\').value;
										}
										if(hikashopCheckChangeForm(\'item\',\'hikashop_wishlist_form\')){
											return hikashopModifyQuantity(\'' . $this->row->product_id . '\',qty_field,1,\'hikashop_wishlist_form\',\'cart\');
										} else {
											return false;
										}
									';

									$this->setLayout('quantity');
									echo $this->loadTemplate();
									$this->setLayout('listing_price');
									?>
								</td>
							<?php }
							if($row_count<1){ ?>
							<td></td>
							<?php }?>
						</tr>
						<?php
						$k = 1-$k;
					}
					$this->cart_product_price=false;
				?>
			</tbody>
		</table>
			<?php
			if($this->params->get('show_cart_quantity',1)){ ?>
				<noscript>
					<input type="submit" class="btn button" name="refresh" value="<?php echo JText::_('REFRESH_CART');?>"/>
				</noscript>
			<?php }
		if($this->params->get('cart_type','cart') != 'wishlist'  && $this->params->get('from','display') == 'module'){
			if($this->params->get('show_cart_proceed',1)) echo $this->cart->displayButton(JText::_('PROCEED_TO_CHECKOUT'),'checkout',$this->params,hikashop_completeLink('checkout'.$url_itemid),'');
		}
		else{
			?><div class="hikashop_display_cart_show_convert_button"><?php
			$cart_type = '&cart_type='.$this->params->get('cart_type','cart');
			if($this->params->get('from','display') != 'module'){
				echo $this->cart->displayButton($convertText,'wishlist',$this->params,hikashop_completeLink('cart&task=convert'.$url_itemid.$cart_type),'window.location.href = \''.hikashop_completeLink('cart&task=convert'.$url_itemid.$cart_type).'\';return false;');
			}
			else{
				echo $this->cart->displayButton($displayText,'wishlist',$this->params,hikashop_completeLink('cart&task=showcart&cart_id='.$cart_id.$url_itemid.$cart_type),'window.location.href = \''.hikashop_completeLink('cart&task=showcart&cart_id='.$cart_id.$url_itemid.$cart_type).'\';return false;');
			}
			?></div><?php
		}
		?>
		<input type="hidden" name="url" value="<?php echo hikashop_currentURL();?>"/> 
		<input type="hidden" name="ctrl" value="product"/>
		<input type="hidden" name="cart_type" value="<?php echo $this->params->get('cart_type','cart'); ?>"/>
		<input type="hidden" name="task" value="updatecart"/>
	</form>
	<?php } ?>
</div>
<div class="clear_both"></div>
<?php } ?>
<?php
if(JRequest::getWord('tmpl','')=='component'){
	if(!headers_sent()){
		header('Content-Type: text/css; charset=utf-8');
	}
	exit;
}


It still redirects to the product category page.

Is there a way to fix it so it stays on the same page ? This is such a great component and i prefer it above Virtuemart so it would be great if we can get it to work this way.

Also is there a way to after you add a product from the product layout it stays on that page and does not go directly to the
index.php?option=com_hikashop&ctrl=checkout&Itemid=237

checkout page?

I would like customers to only go to the checkout page once they click on the Hikashop cart module checkout button.

Are these features available in the paid version?

Thanks

Please Log in or Create an account to join the conversation.

  • Posts: 31
  • Thank you received: 2
10 years 8 months ago #149290

maybe this file needs to be edited?
product / add_to_cart_listing.php

Please Log in or Create an account to join the conversation.

  • Posts: 82910
  • Thank you received: 13379
  • MODERATOR
10 years 8 months ago #149336

1. No that's the correct file. Maybe you didn't edit the file for the correct template, or you configured your cart module in mini cart mode maybe ? A link to the shop would help us understand why it doesn't work for you as we're hitting in the dark here...

2. If you want to stay on the same page instead of going to the checkout after a product is added to the cart, simply configure the way you want the option "after a product is added to the cart" in the configuration of HikaShop, no need to upgrade to a paid version for that.

The following user(s) said Thank You: kitkat

Please Log in or Create an account to join the conversation.

  • Posts: 31
  • Thank you received: 2
10 years 8 months ago #149601

Hi Nicolas
Where in the Joomla 3 version of Hikashop can i find this option
"after a product is added to the cart"
I don't see this option in the checkout tab...
I will be purchasing this component anyway just because it's so awesome and the excellent support :)

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
10 years 8 months ago #149650

Hi,

The option is in Configuration > Main > Cart.

The following user(s) said Thank You: kitkat, Gsol

Please Log in or Create an account to join the conversation.

  • Posts: 5
  • Thank you received: 0
10 years 8 months ago #149948

This worked, thank you!

Please Log in or Create an account to join the conversation.

  • Posts: 31
  • Thank you received: 2
10 years 8 months ago #150037

You are right, that is the file and it works fine now, i had to reiinstall Joomla 3 and Hikashop for it to work as my installation was faulty.
Thank you for your help with this, saved a lot of time :)

Please Log in or Create an account to join the conversation.

Time to create page: 0.092 seconds
Powered by Kunena Forum