option in checkout not displaying correctly

  • Posts: 10
  • Thank you received: 0
12 years 7 months ago #46754

Hi, I'm not sure if the options are setup wrong, but I thought everything was finally right until I did a test checkout and the option I chose does not show up how I want it to. Here is the product page: steventresser.com/categories/product/627-bryce-2

The are characteristics that work properly, which are sizes of the photo that cost different amounts. Then, there is an option to select the type of paper that the customer wants the photo to be printed on. All paper is the same price so I want it to just have the selection that they chose when they get to checkout, but it says "Select Paper ( + Free ) ". I don't want it to say "select paper". I want it to say the type of paper they chose. Also, I do not want it to say "+free".

Please help. Thank you in advance

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

  • Posts: 82865
  • Thank you received: 13372
  • MODERATOR
12 years 7 months ago #46880

Hi,

For the (+free) being displayed, you will have to edit the file "cart" of the view "checkout" via the menu Display->Views and change the code:

echo $optionElement->product_name . ' ( + ';
													$this->row=&$optionElement;
													$this->unit=true;
													echo strip_tags($this->loadTemplate()).' )';
to:
echo $optionElement->product_name;
													if(@$row->prices[0]->price_value_with_tax>0){
														echo ' ( + ';
														$this->row=&$optionElement;
														$this->unit=true;
														echo strip_tags($this->loadTemplate()).' )';
													}

Regarding the fact that the option name is not displayed, I would say that it's because you didn't enter a name for each variant of the option. Edit the option, click on the "manage variants" button and enter a name for each variant.

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

  • Posts: 10
  • Thank you received: 0
12 years 7 months ago #47049

Thank you. The (+free) change did not work. Here is what I have done:


<p class="hikashop_cart_option_name">
<?php
echo $optionElement->product_name;
if(@$row->prices[0]->price_value_with_tax>0){
echo ' ( + ';
$this->row=&$optionElement;
$this->unit=true;
echo strip_tags($this->loadTemplate()).' )';
}
?>
</p>


The display of the option name worked, so that is taken care of. Thank you very much.

Last edit: 12 years 7 months ago by kamastudio.

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

  • Posts: 10
  • Thank you received: 0
12 years 7 months ago #47226

Hi, can anyone help me? The code Nicolas gave me did not work.

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

  • Posts: 82865
  • Thank you received: 13372
  • MODERATOR
12 years 7 months ago #47455

That's the correct modification. If it doesn't work, it means that you're not editing the file for the correct template. Please make sure that you're editing it for your front end template.

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

  • Posts: 10
  • Thank you received: 0
12 years 7 months ago #47465

If the code is right then I must be doing something wrong, but I definitely have the right template because if you look you will see that I've already changed the code that makes the product name link back to the product and that works fine. Here is the whole file. Maybe you can find something I'm missing...


<?php
/**
* @package HikaShop for Joomla!
* @version 1.5.7
* @author hikashop.com
* @copyright (C) 2010-2012 HIKARI SOFTWARE. All rights reserved.
* @license GNU/GPLv3 www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?>
<?php
$this->setLayout('listing_price');
$this->params->set('show_quantity_field', 0);
$comp_description = $this->params->get('comp_description');
if(empty($comp_description)){
$this->params->set('comp_description',JText::_('CART_EMPTY'));
}
?>
<div id="hikashop_checkout_cart" class="hikashop_checkout_cart">
<?php
if(empty($this->rows)){
echo $this->params->get('comp_description');
}else{
if($this->config->get('print_cart',0)&&JRequest::getVar('tmpl','')!='component'){ ?>
<div class="hikashop_checkout_cart_print_link">
<a title="<?php echo JText::_('HIKA_PRINT');?>" class="modal" rel="{handler: 'iframe', size: {x: 760, y: 480}}" href="<?php echo hikashop_completeLink('checkout&task=printcart',true); ?>">
<img src="<?php echo HIKASHOP_IMAGES; ?>print.png" alt="<?php echo JText::_('HIKA_PRINT');?>"/>
</a>
</div>
<?php }
foreach($this->rows as $i => $row){
if(empty($row->cart_product_quantity)) continue;
if(!empty($row->product_min_per_order)){
if($row->product_min_per_order>$row->cart_product_quantity){
$this->nextButton = false;
$app =& JFactory::getApplication();
$app->enqueueMessage(JText::sprintf('YOU_NEED_TO_ORDER_AT_LEAST_X_X',$row->product_min_per_order,$row->product_name));
}
}
}
$row_count = 4;
?>
<br/>
<table width="100%">
<thead>
<tr>
<?php if($this->params->get('show_cart_image')){ $row_count++;?>
<th id="hikashop_cart_product_image_title" class="hikashop_cart_product_image_title hikashop_cart_title">
<?php echo JText::_('CART_PRODUCT_IMAGE'); ?>
</th>
<?php } ?>
<th id="hikashop_cart_product_name_title" class="hikashop_cart_product_name_title hikashop_cart_title">
<?php echo JText::_('CART_PRODUCT_NAME'); ?>
</th>
<th id="hikashop_cart_product_price_title" class="hikashop_cart_product_price_title hikashop_cart_title">
<?php echo JText::_('CART_PRODUCT_UNIT_PRICE'); ?>
</th>
<th id="hikashop_cart_product_quantity_title" class="hikashop_cart_product_quantity_title hikashop_cart_title">
<?php echo JText::_('PRODUCT_QUANTITY'); ?>
</th>
<th id="hikashop_cart_product_total_title" class="hikashop_cart_product_total_title hikashop_cart_title">
<?php echo JText::_('CART_PRODUCT_TOTAL_PRICE'); ?>
</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="<?php echo $row_count; ?>">
<hr />
</td>
</tr>
<?php if(!empty($this->coupon) || !empty($this->shipping)){
?>
<tr>
<?php if($this->params->get('show_cart_image')) echo '<td></td>'; ?>
<td>
</td>
<td>
</td>
<td id="hikashop_checkout_cart_total2_title" class="hikashop_cart_subtotal_title hikashop_cart_title">
<?php echo JText::_('HIKASHOP_TOTAL'); ?>
</td>
<td class="hikashop_cart_subtotal_value">
<?php
$this->row=$this->total;
echo $this->loadTemplate();
?>
</td>
</tr>
<?php }
if(!empty($this->coupon)){
?>
<tr>
<?php if($this->params->get('show_cart_image')) echo '<td></td>'; ?>
<td>
</td>
<td>
</td>
<td id="hikashop_checkout_cart_coupon_title" class="hikashop_cart_coupon_title hikashop_cart_title">
<?php echo JText::_('HIKASHOP_COUPON'); ?>
</td>
<td class="hikashop_cart_coupon_value" >
<span class="hikashop_checkout_cart_coupon">
<?php
echo $this->currencyHelper->format(@$this->coupon->discount_value*-1,@$this->coupon->discount_currency_id);
?>
</span>
</td>
</tr>
<?php
}
$taxes = round($this->full_total->prices[0]->price_value_with_tax-$this->full_total->prices[0]->price_value,$this->currencyHelper->getRounding($this->full_total->prices[0]->price_currency_id));
if(!empty($this->shipping)){
?>
<tr>
<?php if($this->params->get('show_cart_image')) echo '<td></td>'; ?>
<td>
</td>
<td>
</td>
<td id="hikashop_checkout_cart_shipping_title" class="hikashop_cart_shipping_title hikashop_cart_title">
<?php echo JText::_('HIKASHOP_SHIPPING'); ?>
</td>
<td class="hikashop_cart_shipping_value" >
<span class="hikashop_checkout_cart_shipping">
<?php
if(bccomp($taxes,0,5)==0 || !$this->params->get('price_with_tax')){
echo $this->currencyHelper->format(@$this->shipping->shipping_price,$this->shipping->shipping_currency_id);
}else{
echo $this->currencyHelper->format(@$this->shipping->shipping_price_with_tax,$this->shipping->shipping_currency_id);
}
?>
</span>
</td>
</tr>
<?php
}
if(bccomp($taxes,0,5)){
if($this->config->get('detailed_tax_display') && isset($this->full_total->prices[0]->taxes)){
foreach($this->full_total->prices[0]->taxes as $tax){
?>
<tr>
<?php if($this->params->get('show_cart_image')) echo '<td></td>'; ?>
<td>
</td>
<td>
</td>
<td id="hikashop_checkout_cart_tax_title" class="hikashop_cart_tax_title hikashop_cart_title">
<?php echo $tax->tax_namekey; ?>
</td>
<td class="hikashop_cart_tax_value">
<span class="hikashop_checkout_cart_taxes">
<?php
echo $this->currencyHelper->format($tax->tax_amount,$this->full_total->prices[0]->price_currency_id);
?>
</span>
</td>
</tr>
<?php
}
}else{
?>
<tr>
<?php if($this->params->get('show_cart_image')) echo '<td></td>'; ?>
<td>
</td>
<td>
</td>
<td id="hikashop_checkout_cart_tax_title" class="hikashop_cart_tax_title hikashop_cart_title">
<?php echo JText::_('TAXES'); ?>
</td>
<td class="hikashop_cart_tax_value">
<span class="hikashop_checkout_cart_taxes">
<?php
echo $this->currencyHelper->format($taxes,$this->full_total->prices[0]->price_currency_id);
?>
</span>
</td>
</tr>
<?php }
}?>
<tr>
<?php if($this->params->get('show_cart_image')) echo '<td></td>'; ?>
<td>
</td>
<td>
</td>
<td id="hikashop_checkout_cart_final_total_title" class="hikashop_cart_total_title hikashop_cart_title">
<?php echo JText::_('HIKASHOP_FINAL_TOTAL'); ?>
</td>
<td class="hikashop_cart_total_value">
<span class="hikashop_checkout_cart_final_total">
<?php
echo $this->currencyHelper->format($this->full_total->prices[0]->price_value_with_tax,$this->full_total->prices[0]->price_currency_id);
?>
</span>
</td>
</tr>
</tfoot>
<tbody>
<?php
$k = 0;
$group = $this->config->get('group_options',0);
foreach($this->rows as $i => $row){
if(empty($row->cart_product_quantity)) continue;
if($group && $row->cart_product_option_parent_id) continue;
?>
<tr class="<?php echo "row$k"; ?>">
<?php if($this->params->get('show_cart_image')){ ?>
<td class="hikashop_cart_product_image_value">
<?php if(!empty($row->images)){
$image = reset($row->images);
if(!$this->config->get('thumbnail')){
echo '<img src="'.$this->image->uploadFolder_url.$image->file_path.'" alt="'.$image->file_name.'" id="hikashop_main_image" style="margin-top:10px;margin-bottom:10px;display:inline-block;vertical-align:middle" />';
}else{
$height = $this->config->get('thumbnail_y'); ?>
<div class="hikashop_cart_product_image_thumb" >
<?php echo $this->image->display($image->file_path,true,$image->file_name,'style="margin-top:10px;margin-bottom:10px;display:inline-block;vertical-align:middle"'); ?>
</div>
<?php }
} ?>
</td>
<?php } ?>
<td class="hikashop_cart_product_name_value">
<p class="hikashop_cart_product_name">
<?php
global $Itemid;
$checkout_itemid = $this->config->get('checkout_itemid');
if(!empty($checkout_itemid )){
$Itemid = $checkout_itemid ;
}
$url_itemid='';
if(!empty($Itemid)){
$url_itemid='&Itemid='.$Itemid;
} ?>
<?php echo $row->product_name; ?>
<?php
if($group){
$display_item_price=false;
foreach($this->rows as $j => $optionElement){
if($optionElement->cart_product_option_parent_id != $row->cart_product_id) continue;
if(!empty($optionElement->prices[0])){
$display_item_price = true;
}
}
if($display_item_price){
$this->row=&$row;
$this->unit=true;
echo ' '.strip_tags($this->loadTemplate());
}
}
?>
</p>
<p class="hikashop_cart_product_custom_item_fields">
<?php
if(hikashop_level(2) && !empty($this->extraFields)){
foreach($this->extraFields as $field){
$namekey = $field->field_namekey;
if(empty($row->$namekey)) continue;
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;
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;
}
}
}
?>
<p class="hikashop_cart_option_name">
<?php
echo $optionElement->product_name;
if(@$row->prices[0]->price_value_with_tax>0){
echo ' ( + ';
$this->row=&$optionElement;
$this->unit=true;
echo strip_tags($this->loadTemplate()).' )';
}
?>
</p>
<?php
$input .='document.getElementById(\'product_option_'.$optionElement->cart_product_id.'\').value=qty_field.value;';
echo '<input type="hidden" id="product_option_'.$optionElement->cart_product_id.'" name="item" value="'.$row->cart_product_quantity.'"/>';
}
}?>
</p>
</td>
<td class="hikashop_cart_product_price_value">
<?php
$this->row=&$row;
$this->unit=true;
echo $this->loadTemplate();
?>
</td>
<td class="hikashop_cart_product_quantity_value">
<input id="hikashop_checkout_quantity_<?php echo $row->cart_product_id;?>" type="text" name="item[<?php echo $row->cart_product_id;?>]" class="hikashop_product_quantity_field" value="<?php echo $row->cart_product_quantity; ?>" onchange="var qty_field = document.getElementById('hikashop_checkout_quantity_<?php echo $row->cart_product_id;?>'); if (qty_field){<?php echo $input; ?>}" />
<div class="hikashop_cart_product_quantity_refresh">
<a href="#" onclick="var qty_field = document.getElementById('hikashop_checkout_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 if($this->params->get('show_delete',1)){ ?>
<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(urldecode($this->params->get('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>
<td class="hikashop_cart_product_total_value">
<?php
$this->row=&$row;
$this->unit=false;
echo $this->loadTemplate();
?>
</td>
</tr>
<?php
$k = 1-$k;
}
?>
</tbody>
</table>
<?php
if($this->params->get('show_quantity')){ ?>
<noscript>
<input id="hikashop_checkout_cart_quantity_button" class="button" type="submit" name="refresh" value="<?php echo JText::_('REFRESH_CART');?>"/>
</noscript>
<?php }
} ?>
</div>

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

  • Posts: 82865
  • Thank you received: 13372
  • MODERATOR
12 years 7 months ago #47708

Try to change:
if(@$row->prices[0]->price_value_with_tax>0){

by:

if(@$optionElement->prices[0]->price_value_with_tax>0){

The following user(s) said Thank You: kamastudio

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

  • Posts: 10
  • Thank you received: 0
12 years 7 months ago #47715

Awesome! Thank you, that worked!

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

  • Posts: 50
  • Thank you received: 0
12 years 6 months ago #49066

Hi Nicolas,
It seems that the "product options" are not displaying in the checkout, unless the variant is changed from the default value, see the below link. Also how do I remove the price from the end of the product link?

www.suncast.com.au/printing-services/pro...gory_pathway-99.html

Thanks
Chris

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

  • Posts: 82865
  • Thank you received: 13372
  • MODERATOR
12 years 6 months ago #49141

Hi,

We have something similar with characteristics and options for the same page on our demo website without that problem:
www.demo.hikashop.com/index.php?option=c...ow&Itemid=91&lang=en
I would recommend to first update to the latest version. That might help solve the problem.

Regarding your second question, updating to the latest version of HikaShop should change that like you want automatically.

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

  • Posts: 50
  • Thank you received: 0
12 years 6 months ago #49414

Hi Nicolas,
Looking further at this, the problem arises when I move the "add to cart" button (hikashop_product_quantity_main div) to the top of the right part div, as described in this forum post www.hikashop.com/en/forum/4-how-to/39863...-position.html#39863

Any tips?

Thanks
Chris

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

  • Posts: 82865
  • Thank you received: 13372
  • MODERATOR
12 years 6 months ago #49453

You also need to have that line of code:
$form = ',\'hikashop_product_form\'';

before the line:
$this->ajax = 'if(hikashopCheckChangeForm(\'item\',\'hikashop_product_form\')){ return hikashopModifyQuantity(\'' . $this->row->product_id . '\',field,1' . $form . '); } else { return false; }';

because otherwise, it won't work properly.

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

  • Posts: 50
  • Thank you received: 0
12 years 6 months ago #49675

Thanks Nicolas!

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

Time to create page: 0.092 seconds
Powered by Kunena Forum