Not the chosen variant of the product in the cart

  • Posts: 58
  • Thank you received: 2
8 years 3 weeks ago #270211

-- HikaShop version -- : 3.0.1
-- Joomla version -- : 3.7.2
-- PHP version -- : 5.6

Hi
I have two products with variants (3 designs to choose) and a custom field (user puts in value for the voucher).
First product which I added a few days ago works fine and correct. Only the chosen variant is taken to the cart.

But I tried to add other products with the same three variants, same settings, different product codes...

Problem:
- a variant is put into the cart which I did not choose
- the product code and the thumbnail belong to the variant which I did not choose
- it is always the last of the variants of the product, always the same product code
- the custom field is okay - it has the correct value in it

Product #1 - OKAY:



Product #2 - False:



Maybe I missed a setting or something like this...
I am clueless because Product #1 works as it is supposed. Others with same settings do not.
Thank you

Attachments:
Last edit: 8 years 3 weeks ago by woidl.

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

  • Posts: 83937
  • Thank you received: 13601
  • MODERATOR
8 years 3 weeks ago #270229

Hi,

The problem comes from the customization of the product page layout:
monosnap.com/file/hnp3WNWYKr1ObnohpwUb5cQHwSwtFd
By default in HikaShop, the variants data is outside of the form of the product page and the variant data is swapped when you change the characteristic. So when you click on the add to cart button and the form is submitted to the server, you only have the data of the current variant in the form.
In your case, you always have all the variant data in the form. And thus on the server side, it always use the data of the last variant in the form.
I suppose that the issue is that there are some </div> missing at the end of the show_tabular view file on your website. Try adding one or two there and that should help.

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

  • Posts: 58
  • Thank you received: 2
8 years 3 weeks ago #270256

Hi,
adding </div></div> at the end of "show_tabular" seemed to help at first. Variants are correct in cart.

But the editor tells me that it is no correct code and at the same time the module on the sidebar disappears! It is not there anymore.
Whithout the changes the modul on the sidebar position comes back.

Could you help?

This is the original code:

<?php
/**
 * @package	HikaShop for Joomla!
 * @version	2.6.1
 * @author	hikashop.com
 * @copyright	(C) 2010-2016 HIKARI SOFTWARE. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?><?php


	hikashop_loadJslib('jquery');
	$js = '';
	$params = null;
	$this->params->set('vote_type','product');
	if(isset($this->element->main)){
		$product_id = $this->element->main->product_id;
	}else{
		$product_id = $this->element->product_id;
	}
	$this->params->set('vote_ref_id',$product_id);
	$this->params->set('productlayout','show_tabular');
	$layout_vote_mini = hikashop_getLayout('vote', 'mini', $this->params, $js);
	$layout_vote_listing = hikashop_getLayout('vote', 'listing', $this->params, $js);
	$layout_vote_form = hikashop_getLayout('vote', 'form', $this->params, $js);
	$config =& hikashop_config();
	$status_vote = $config->get('enable_status_vote');
	$hide_specs = 1;
	if($this->element->product_manufacturer_id != 0 || $this->element->product_weight != 0 || $this->element->product_width != 0 || $this->element->product_height != 0 || $this->element->product_length != 0 || @$this->element->main->product_weight != 0 || @$this->element->main->product_width != 0 || @$this->element->main->product_height != 0 || @$this->element->main->product_length != 0)
		$hide_specs = 0;
	foreach ($this->fields as $fieldName => $oneExtraField) {
		$value = '';
		if(empty($this->element->$fieldName) && !empty($this->element->main->$fieldName))$this->element->$fieldName = $this->element->main->$fieldName;
		if(isset($this->element->$fieldName))
			$value = trim($this->element->$fieldName);
		if(!empty($value)){
			$hide_specs = 0;
			break;
		}
	}

?>
<?php if(HIKASHOP_RESPONSIVE){ ?>
	<div class="uk-grid tm-product-main-block" data-uk-grid-margin="">
<?php } ?>
<div id="hikashop_product_left_part" class="hikashop_product_left_part uk-width-medium-1-2">
	<?php
	if(!empty($this->element->extraData->leftBegin)) { echo implode("\r\n",$this->element->extraData->leftBegin); }

	$this->row = & $this->element;
	$this->setLayout('show_block_img');
	echo $this->loadTemplate();
	?>
	<div id="hikashop_product_description_main_mini" class="hikashop_product_description_main_mini">
		<?php
		if(!empty($this->element->product_description)){
			$resume = substr(strip_tags(preg_replace('#<hr *id="system-readmore" */>.*#is','',$this->element->product_description)),0,300);
			if (!empty($this->element->product_description) && strlen($this->element->product_description)>300)
				$resume .= " ...<a href='#hikashop_show_tabular_description'>".JText::_('READ_MORE')."</a>";
			echo JHTML::_('content.prepare',$resume);
		}
		?>
	</div>
	<?php if(!empty($this->element->extraData->leftEnd)) { echo implode("\r\n",$this->element->extraData->leftEnd); } ?>
</div>
<div id="hikashop_product_right_part" class="hikashop_product_right_part uk-width-medium-1-2 tm-product-details">
	<?php
	
	if(!empty($this->links->previous) or !empty($this->links->next)) {
		echo "<div class=\"tm-product-pagination\">";
			if(!empty($this->links->previous))
				echo "<a title='".JText :: _('PREVIOUS_PRODUCT')."' href='".$this->links->previous."' class='previous_product'></a>";
			if(!empty($this->links->next))
				echo "<a title='".JText :: _('NEXT_PRODUCT')."' href='".$this->links->next."' class='next_product'></a>";
		echo "</div>";
	}

	if(!empty($this->element->extraData->topBegin)) { echo implode("\r\n",$this->element->extraData->topBegin); } ?>
		<h1 class="title">
			<span id="hikashop_product_name_main" class="hikashop_product_name_main">
				<?php
				if (hikashop_getCID('product_id')!=$this->element->product_id && isset ($this->element->main->product_name))
					echo $this->element->main->product_name;
				else
					echo $this->element->product_name;
				?>
			</span>
			<?php if ($this->config->get('show_code')) { ?>
			<span id="hikashop_product_code_main" class="tm-product-code">
				<?php
				echo $this->element->product_code;
				?>
			</span>
			<?php } ?>
		</h1>
	<?php if(!empty($this->element->extraData->topEnd)) { echo implode("\r\n",$this->element->extraData->topEnd); } ?>
	


	<?php
	if(!empty($this->element->extraData->rightBegin))
		echo implode("\r\n",$this->element->extraData->rightBegin);
	?>
	<span id="hikashop_product_price_main" class="hikashop_product_price_main">
		<?php
		if ($this->params->get('show_price')) {
			$this->row = & $this->element;
			$this->setLayout('listing_price');
			echo $this->loadTemplate();
		}
		?>
	</span>

	<div id="hikashop_product_vote_mini" class="hikashop_product_vote_mini">
		<?php
		if($this->params->get('show_vote_product') == '-1'){
			$this->params->set('show_vote_product',$config->get('show_vote_product'));
		}
		if($this->params->get('show_vote_product')){
			echo $layout_vote_mini;
		}
		?>
	</div>
	<?php
	if($this->params->get('characteristic_display')!='list'){
		$this->setLayout('show_block_characteristic');
		echo $this->loadTemplate();
		?>
		<br />
		<?php
	}
	$form = ',0';
	if (!$this->config->get('ajax_add_to_cart', 1)) {
		$form = ',\'hikashop_product_form\'';
	}
	if (hikashop_level(1) && !empty ($this->element->options)) {
	?>
		<div id="hikashop_product_options" class="hikashop_product_options">
			<?php
			$this->setLayout('option');
			echo $this->loadTemplate();
			?>
		</div>
		<br />
		<?php
		$form = ',\'hikashop_product_form\'';
		if ($this->config->get('redirect_url_after_add_cart', 'stay_if_cart') == 'ask_user') {
		?>
			<input type="hidden" name="popup" value="1"/>
		<?php
		}
	}
	if (!$this->params->get('catalogue') && ($this->config->get('display_add_to_cart_for_free_products') ||  ($this->config->get('display_add_to_wishlist_for_free_products', 1) && hikashop_level(1) && $this->params->get('add_to_wishlist') && $config->get('enable_wishlist', 1)) || !empty ($this->element->prices))) {
		if (!empty ($this->itemFields)) {
			$form = ',\'hikashop_product_form\'';
			if ($this->config->get('redirect_url_after_add_cart', 'stay_if_cart') == 'ask_user') {
			?>
				<input type="hidden" name="popup" value="1"/>
			<?php
			}
			$this->setLayout('show_block_custom_item');
			echo $this->loadTemplate();
		}
	}
	$this->formName = $form;
	if($this->params->get('show_price')){ ?>
		<span id="hikashop_product_price_with_options_main" class="hikashop_product_price_with_options_main">
		</span>
	<?php } ?>
	<?php $contact = $this->config->get('product_contact',0); ?>
	<div id="hikashop_product_contact_main" class="hikashop_product_contact_main">
		<?php
		if (hikashop_level(1) && ($contact == 2 || ($contact == 1 && !empty ($this->element->product_contact)))) {
			$empty = '';
			$params = new HikaParameter($empty);
			global $Itemid;
			$url_itemid='';
			if(!empty($Itemid)){
				$url_itemid='&Itemid='.$Itemid;
			}
			echo $this->cart->displayButton(JText :: _('CONTACT_US_FOR_INFO'), 'contact_us', $params, hikashop_completeLink('product&task=contact&cid=' . $this->element->product_id.$url_itemid), 'window.location=\'' . hikashop_completeLink('product&task=contact&cid=' . $this->element->product_id.$url_itemid) . '\';return false;');
		}
		?>
	</div>
	<?php
	if(!empty($this->element->extraData->rightMiddle))
		echo implode("\r\n",$this->element->extraData->rightMiddle);
	?>
	<span id="hikashop_product_id_main" class="hikashop_product_id_main">
		<input type="hidden" name="product_id" value="<?php echo $this->element->product_id; ?>" />
	</span>
	<br />
<?php if(empty ($this->element->characteristics) || $this->params->get('characteristic_display')!='list'){ ?>
		<div id="hikashop_product_quantity_main" class="hikashop_product_quantity_main"><?php
			$this->row = & $this->element;
			$this->ajax = 'if(hikashopCheckChangeForm(\'item\',\'hikashop_product_form\')){ return hikashopModifyQuantity(\'' . $this->row->product_id . '\',field,1' . $form . ',\'cart\'); } else { return false; }';
			$this->setLayout('quantity');
			echo $this->loadTemplate();
		?></div>
<?php
	}
	$this->setLayout('show_block_product_files');
	echo $this->loadTemplate();

	if(HIKASHOP_J30) {
		$this->setLayout('show_block_tags');
		echo $this->loadTemplate();
	}


		$this->setLayout('show_block_social');
		echo $this->loadTemplate();
	

	if(!empty($this->element->extraData->rightEnd))
		echo implode("\r\n",$this->element->extraData->rightEnd);
?>
</div>
<?php if(HIKASHOP_RESPONSIVE){ ?>
	</div>
<?php } ?>
	<input type="hidden" name="cart_type" id="type" value="cart"/>
	<input type="hidden" name="add" value="1"/>
	<input type="hidden" name="ctrl" value="product"/>
	<input type="hidden" name="task" value="updatecart"/>
	<input type="hidden" name="return_url" value="<?php echo urlencode(base64_encode(urldecode($this->redirect_url)));?>"/>
</form>
<div id="hikashop_product_bottom_part" class="hikashop_product_bottom_part show_tabular tm-product-tabuler">
	<div id="hikashop_tabs_div">
		<ul class="hikashop_tabs_ul tm-hikashop_tabs_ul">
			<li id="hikashop_show_tabular_description_li" class="hikashop_tabs_li ui-corner-top"><?php echo JText::_('PRODUCT_DESCRIPTION');?></li>
			<?php if($hide_specs == 0){ ?>
			<li id="hikashop_show_tabular_specification_li" class="hikashop_tabs_li ui-corner-top"><?php echo JText::_('SPECIFICATIONS');?></li>
			<?php }
			if($status_vote == "comment" || $status_vote == "two" || $status_vote == "both" ){
			?>
			<li id="hikashop_show_tabular_comment_li" class="hikashop_tabs_li ui-corner-top"><?php echo JText::_('PRODUCT_COMMENT');?></li>
			<li id="hikashop_show_tabular_new_comment_li" class="hikashop_tabs_li ui-corner-top"><?php echo JText::_('PRODUCT_NEW_COMMENT');?></li>
			<?php } ?>
		</ul>
		<?php
		if(!empty($this->element->extraData->bottomBegin))
			echo implode("\r\n",$this->element->extraData->bottomBegin);
		?>
		<div class="hikashop_tabs_content" id="hikashop_show_tabular_description">
			<div id="hikashop_product_description_main" class="hikashop_product_description_main">
				<?php
				echo JHTML::_('content.prepare',preg_replace('#<hr *id="system-readmore" */>#i','',$this->element->product_description));
				?>
			</div>
			<span id="hikashop_product_url_main" class="hikashop_product_url_main">
				<?php
				if (!empty ($this->element->product_url)) {
					echo JText :: sprintf('MANUFACTURER_URL', '<a href="' . $this->element->product_url . '" target="_blank">' . $this->element->product_url . '</a>');
				}
				?>
			</span>
		</div>
		<?php if($hide_specs == 0){ ?>
		<div class="hikashop_tabs_content" id="hikashop_show_tabular_specification">
		<?php
			$this->setLayout('show_block_dimensions');
			echo $this->loadTemplate();
			if(!empty($this->fields)){
				$this->setLayout('show_block_custom_main');
				echo $this->loadTemplate();
			}
		?>
		</div>
		<?php }
if($status_vote == "comment" || $status_vote == "two" || $status_vote == "both" ){ ?>
<form action="<?php echo hikashop_currentURL() ?>" method="post" name="hikashop_comment_form" id="hikashop_comment_form">
		<?php
		if(!empty($this->element->extraData->bottomMiddle))
			echo implode("\r\n",$this->element->extraData->bottomMiddle);
		?>
			<div class="hikashop_tabs_content" id="hikashop_show_tabular_comment">
				<div id="hikashop_vote_listing" data-votetype="product" class="hikashop_product_vote_listing">
					<?php
						echo $layout_vote_listing;
					?>
				</div>
			</div>
			<div class="hikashop_tabs_content" id="hikashop_show_tabular_new_comment">
				<div id="hikashop_vote_form" data-votetype="product" class="hikashop_product_vote_form">

					<?php
						$user        = JFactory::getUser();
						if ($user->guest) {
							echo JText::_('ONLY_REGISTERED_CAN_COMMENT');
						} else {
							echo $layout_vote_form;
						}
					?>
				</div>
			</div>
</form>
<?php } ?>
<input type="hidden" name="selected_tab" id="selected_tab" value="hikashop_show_tabular_description"/>
		<?php
		if(!empty($this->element->extraData->bottomEnd))
			echo implode("\r\n",$this->element->extraData->bottomEnd);
		?>
	</div>
</div>
<script type="text/javascript">
	if(typeof(hkjQuery) == "undefined") window.hkjQuery = window.jQuery;
	window.hikashop.ready( function(){
		var selectedTab = hkjQuery( "#selected_tab" ).val();
		hkjQuery("#hikashop_tabs_div").children("div").css("display","none");
		hkjQuery("#"+selectedTab+"_li").addClass("hikashop_tabs_li_selected");
		hkjQuery("#"+selectedTab).css("display","inherit");
		hkjQuery("#hikashop_tabs_div .hikashop_tabs_ul li").click(function(){
			var currentLi = hkjQuery(this).attr("id");
			var currentDiv = currentLi.replace("_li","");
			hkjQuery("#hikashop_tabs_div").children("div").css("display","none");
			hkjQuery("#hikashop_tabs_div").children("form").children("div").css("display","none");
			hkjQuery("#"+currentDiv).css("display","inherit");
			hkjQuery(".hikashop_tabs_li_selected" ).removeClass("hikashop_tabs_li_selected");
			hkjQuery("#"+currentLi).addClass("hikashop_tabs_li_selected");
		});
	});
</script>

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

  • Posts: 83937
  • Thank you received: 13601
  • MODERATOR
8 years 3 weeks ago #270257

Hi,

Then it means that the </div> tags must be missing in other view files than this one, or maybe one here and one somewhere else.
Please understand that this comes from the customization of the views we had and our support is for the use of HikaShop, not to fix custom coding done by someone else.
You should normally check that with the person who made the customization.
We can only recommend to try rename the files in templates/YOUR_TEMPLATE/html/com_hikashop/product one by one in order to identify which one is causing the problem and keep it renamed or have it fixed.

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

  • Posts: 58
  • Thank you received: 2
8 years 1 week ago #271029

Hi,

yes, it was a problem with a template file - the support of BDThemes fixed it:
templates/holax/html/com_hikashop/product/show_tabular.php

now it works,
THANKS

The following user(s) said Thank You: nicolas

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

Time to create page: 0.049 seconds
Powered by Kunena Forum