- Posts: 6
- Thank you received: 0
Adding sub total to Order Created email
- DenisLeemkuil
-
Topic Author
- Offline
Less
More
13 years 10 months ago #82971
by DenisLeemkuil
Adding sub total to Order Created email was created by DenisLeemkuil
Hi Guys,
For our shop I'm trying to add the sub total to one of the email messages. I've attached a screenshot which is in Dutch, but I'm sure you get the idea. I've seen many examples where $data->cart->order_subtotal and $data->cart->order_subtotal_no_vat are used. But for me it just keeps returning 0. I must be missing something.
I've tried different approaches but this was my starting point:
Complete message:
I could do some calculations from within the product loop. But I was wondering if there isn't a cleaner way to go about this.
Cheers,
Willem
For our shop I'm trying to add the sub total to one of the email messages. I've attached a screenshot which is in Dutch, but I'm sure you get the idea. I've seen many examples where $data->cart->order_subtotal and $data->cart->order_subtotal_no_vat are used. But for me it just keeps returning 0. I must be missing something.
I've tried different approaches but this was my starting point:
Code:
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::_('SUBTOTAL').': ';
if($config->get('price_with_tax')){
echo $currencyHelper->format($data->cart->order_subtotal,$data->order_currency_id);
}else{
echo $currencyHelper->format($data->cart->order_subtotal_no_vat,$data->order_currency_id);
}
echo '</td></tr>';
Complete message:
Code:
<?php
/**
* @package HikaShop for Joomla!
* @version 2.0.0
* @author hikashop.com
* @copyright (C) 2010-2012 HIKARI SOFTWARE. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><div style="background-color: #ffffff; font-family: Verdana, Arial, Helvetica, sans-serif;font-size:12px; color: #000000; width: 100%;">
<table style="margin: auto;font-family: Verdana, Arial, Helvetica, sans-serif;font-size:12px;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td height="10">
</td>
</tr>
<tr>
<td>
<?php echo JText::sprintf('HI_CUSTOMER',@$data->customer->name);?>
<br/>
<br/>
<?php
$colspan = 4;
$url = $data->order_number;
$config =& hikashop_config();
if($config->get('simplified_registration',0)!=2){
$url = '<a href="'.$data->order_url.'">'. $url.'</a>';
}
echo JText::sprintf('ORDER_CREATION_SUCCESS_ON_WEBSITE_AT_DATE',$url,HIKASHOP_LIVE, hikashop_getDate(time(),'%d %B %Y'), hikashop_getDate(time(),'%H:%M'));?>
</td>
</tr>
<tr>
<td height="10">
</td>
</tr>
<tr>
<td>
<h1 style="background-color:#DDDDDD;font-size:14px;width:100%;padding:5px;"><?php echo JText::_('SUMMARY_OF_YOUR_ORDER');?></h1>
<br/>
<table width="100%" style="font-family: Verdana, Arial, Helvetica, sans-serif;font-size:12px;">
<tr>
<td style="font-weight:bold;"><?php
echo JText::_('CART_PRODUCT_NAME');
?></td>
<?php if ($config->get('show_code')) { $colspan++; ?>
<td style="font-weight:bold;"><?php echo JText::_('CART_PRODUCT_CODE'); ?></td>
<?php } ?>
<td style="font-weight: bold;"><?php
echo JText::_('CART_PRODUCT_UNIT_PRICE');
?></td>
<td style="font-weight: bold;"><?php
echo JText::_('CART_PRODUCT_QUANTITY');
?></td>
<td style="font-weight: bold; text-align: right;"><?php echo JText::_('HIKASHOP_TOTAL'); ?>
</td>
</tr>
<?php
if(hikashop_level(2)){
$fieldsClass = hikashop_get('class.field');
$null = null;
$itemFields = $fieldsClass->getFields('frontcomp',$null,'item');
}
$group = $config->get('group_options',0);
foreach($data->cart->products as $item){
if($group && $item->cart_product_option_parent_id) continue;
?>
<tr>
<td>
<p>
<?php echo $item->order_product_name;
if($group){
$display_item_price=false;
foreach($data->cart->products as $j => $optionElement){
if($optionElement->cart_product_option_parent_id != $item->cart_product_id) continue;
if($optionElement->order_product_price>0){
$display_item_price = true;
}
}
if($display_item_price){
if($config->get('price_with_tax')){
echo ' '.$currencyHelper->format($item->order_product_price+$item->order_product_tax,$data->order_currency_id);
}else{
echo ' '.$currencyHelper->format($item->order_product_price,$data->order_currency_id);
}
}
}
?>
</p><?php
if(!empty($itemFields)){
foreach($itemFields as $field){
$namekey = $field->field_namekey;
if(empty($item->$namekey)) continue;
echo '<p>'.$fieldsClass->getFieldName($field).': '.$fieldsClass->show($field,$item->$namekey).'</p>';
}
}
$optionsPrices = new stdClass();
$optionsPrices->order_product_price=0;
$optionsPrices->order_product_tax=0;
$optionsPrices->order_product_total_price=0;
$optionsPrices->order_product_total_price_no_vat=0;
if($group){
foreach($data->cart->products as $j => $optionElement){
if($optionElement->cart_product_option_parent_id == 0 || $optionElement->cart_product_option_parent_id != $item->cart_product_id) continue;
$optionsPrices->order_product_price +=$optionElement->order_product_price;
$optionsPrices->order_product_tax +=$optionElement->order_product_tax;
$optionsPrices->order_product_total_price+=$optionElement->order_product_total_price;
$optionsPrices->order_product_total_price_no_vat+=$optionElement->order_product_total_price_no_vat;
?>
<p class="hikashop_order_option_name">
<?php
echo $optionElement->order_product_name;
if($optionElement->order_product_price>0){
if($config->get('price_with_tax')){
echo ' ( + '.$currencyHelper->format($optionElement->order_product_price+$optionElement->order_product_tax,$data->order_currency_id).' )';
}else{
echo ' ( + '.$currencyHelper->format($optionElement->order_product_price,$data->order_currency_id).' )';
}
}
?>
</p>
<?php
}
}
$statusDownload = explode(',',$config->get('order_status_for_download','confirmed,shipped'));
if(in_array($data->order_status,$statusDownload)){
if(!empty($item->files)){
global $Itemid;
$url_itemid = '';
if(!empty($Itemid)){
$url_itemid='&Itemid='.$Itemid;
}
echo '<p>';
foreach($item->files as $file){
$fileName = empty($file->file_name) ? $file->file_path : $file->file_name;
echo '<a href="'.hikashop_frontendLink('index.php?option=com_hikashop&ctrl=order&task=download&file_id='.$file->file_id.'&order_id='.$data->order_id.$url_itemid).'">'.$fileName.'</a><br/>';
}
echo '</p>';
}
} ?>
</td>
<?php if ($config->get('show_code')) { ?>
<td><p class="hikashop_product_code_mail"><?php echo $item->order_product_code; ?></p></td>
<?php } ?>
<td>
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($item->order_product_price+$optionsPrices->order_product_price+$item->order_product_tax+$optionsPrices->order_product_tax,$data->order_currency_id);
}else{
echo $currencyHelper->format($item->order_product_price+$optionsPrices->order_product_price,$data->order_currency_id);
} ?>
</td>
<td><?php echo $item->order_product_quantity; ?></td>
<td style="text-align: right">
<?php
if($config->get('price_with_tax')){
echo $currencyHelper->format($item->order_product_total_price+$optionsPrices->order_product_total_price,$data->order_currency_id);
}else{
echo $currencyHelper->format($item->order_product_total_price_no_vat+$optionsPrices->order_product_total_price_no_vat,$data->order_currency_id);
} ?>
</td>
</tr>
<?php
}
// Start custom sub total
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::_('SUBTOTAL').': ';
if($config->get('price_with_tax')){
echo $currencyHelper->format($data->cart->order_subtotal,$data->order_currency_id);
}else{
echo $currencyHelper->format($data->cart->order_subtotal_no_vat,$data->order_currency_id);
}
echo '</td></tr>';
// End sub total
if(bccomp($data->order_discount_price,0,5)){
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::_('HIKASHOP_COUPON').': ';
if($config->get('price_with_tax')){
echo $currencyHelper->format($data->order_discount_price*-1,$data->order_currency_id);
}else{
echo $currencyHelper->format(($data->order_discount_price-@$data->order_discount_tax)*-1,$data->order_currency_id);
}
echo '</td></tr>';
}
if(bccomp($data->order_shipping_price,0,5)){
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::_('HIKASHOP_SHIPPING_METHOD').': ';
if($config->get('price_with_tax')){
echo $currencyHelper->format($data->order_shipping_price,$data->order_currency_id);
}else{
echo $currencyHelper->format($data->order_shipping_price-@$data->order_shipping_tax,$data->order_currency_id);
}
echo '</td></tr>';
}
if(bccomp($data->order_payment_price,0,5)){
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::_('HIKASHOP_PAYMENT_METHOD').': '.$currencyHelper->format($data->order_payment_price,$data->order_currency_id).'</td></tr>';
}
if(!empty($data->cart->additional)) {
$exclude_additionnal = explode(',', $config->get('order_additional_hide', ''));
foreach($data->cart->additional as $additional) {
if(in_array($additional->name, $exclude_additionnal)) continue;
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'. JText::_($additional->name).': ';
if(!empty($additional->price_value) || empty($additional->value)) {
if($config->get('price_with_tax')){
echo $currencyHelper->format($additional->price_value_with_tax, $data->order_currency_id);
}else{
echo $currencyHelper->format($additional->price_value, $data->order_currency_id);
}
} else {
echo $additional->value;
}
echo '</td></tr>';
}
}
if($data->cart->full_total->prices[0]->price_value!=$data->cart->full_total->prices[0]->price_value_with_tax){
if($config->get('detailed_tax_display') && !empty($data->order_tax_info)){
foreach($data->order_tax_info as $tax){
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.$tax->tax_namekey. ': '.$currencyHelper->format($tax->tax_amount,$data->order_currency_id).'</td></tr>';
}
}else{
echo '<tr><td colspan="'.$colspan.'" style="text-align:right">'.JText::sprintf('TOTAL_WITHOUT_VAT',$currencyHelper->format($data->cart->full_total->prices[0]->price_value,$data->order_currency_id)).'</td></tr>';
}
$text=JText::sprintf('TOTAL_WITH_VAT',$currencyHelper->format($data->cart->full_total->prices[0]->price_value_with_tax,$data->order_currency_id));
}else{
$text=JText::_('HIKASHOP_FINAL_TOTAL'). ': '.$currencyHelper->format($data->cart->full_total->prices[0]->price_value_with_tax,$data->order_currency_id);
}
echo '<tr><td colspan="'.$colspan.'" style="text-align:right;font-weight:bold;">'.$text.'</td></tr>';
?>
</table>
</td>
</tr>
<tr>
<td height="10">
</td>
</tr>
<tr>
<td>
<table width="100%" style="border: 1px solid #DDDDDD;font-family: Verdana, Arial, Helvetica, sans-serif;font-size:12px;">
<?php
$params = null;
$js = '';
$fieldsClass = hikashop_get('class.field');
$app =& JFactory::getApplication();
if($app->isAdmin()){
$view = 'order';
}else{
$view = 'address';
}
$template = trim(hikashop_getLayout($view,'address_template',$params,$js));
if(!empty($data->cart->billing_address)){
$billing = $template;
foreach($data->order_addresses_fields as $field){
$fieldname = $field->field_namekey;
$address =& $data->order_addresses[$data->cart->billing_address->address_id];
$billing=str_replace('{'.$fieldname.'}',$fieldsClass->show($field,$address->$fieldname),$billing);
}
echo '<tr><td style="font-weight:bold;background-color:#DDDDDD">'.JText::_('HIKASHOP_BILLING_ADDRESS').'</td></tr><tr><td>';
echo str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace('#{(?:(?!}).)*}#i','',$billing)).'<br/></td></tr>';
}
if(!empty($data->order_shipping_method)) {
$currentShipping = hikashop_import('hikashopshipping',$data->order_shipping_method);
if(method_exists($currentShipping, 'getShippingAddress')) {
$override = $currentShipping->getShippingAddress($data->order_shipping_id);
if($override !== false) {
$data->override_shipping_address = $override;
}
}
}
if(!empty($data->override_shipping_address) || (!empty($data->cart->has_shipping) && !empty($data->cart->shipping_address))) echo '<tr><td style="font-weight:bold;background-color:#DDDDDD">'.JText::_('HIKASHOP_SHIPPING_ADDRESS').'</td></tr><tr><td>';
if(!empty($data->override_shipping_address)) {
echo $data->override_shipping_address.'<br/></td></tr>';
} else if(!empty($data->cart->has_shipping) && !empty($data->cart->shipping_address)){
$shipping = $template;
foreach($data->order_addresses_fields as $field){
$fieldname = $field->field_namekey;
$address =& $data->order_addresses[$data->cart->shipping_address->address_id];
$shipping=str_replace('{'.$fieldname.'}',$fieldsClass->show($field,$address->$fieldname),$shipping);
}
echo str_replace(array("\r\n","\r","\n"),'<br/>',preg_replace('#{(?:(?!}).)*}#i','',$shipping)).'<br/></td></tr>';
}?>
</table>
</td>
</tr>
<tr>
<td><?php
$fields = $fieldsClass->getFields('frontcomp',$data,'order','');
foreach($fields as $fieldName => $oneExtraField) {
if(empty($data->$fieldName)) continue;
echo "<br/>".$fieldsClass->trans($oneExtraField->field_realname).': '.$fieldsClass->show($oneExtraField,$data->$fieldName);
} ?></td>
</tr>
<tr>
<td height="10">
</td>
</tr>
<tr>
<td><?php
// Start payment method
$class = hikashop_get('class.payment');
$payment = $class->get($data->order_payment_id);
echo JText::_('HIKASHOP_CHECKOUT_PAYMENT').': '.$payment->payment_name;
// End payment method
?>.</td>
</tr>
<tr>
<td height="10">
</td>
</tr>
<?php
JPluginHelper::importPlugin('hikashop');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onAfterOrderProductsListingDisplay', array(&$data->cart, 'email_notification_html'));
?>
<tr>
<td>
<?php
if(!$app->isAdmin()){
if($data->cart->full_total->prices[0]->price_value_with_tax>0) echo JText::_('ORDER_VALID_AFTER_PAYMENT');
$config =& hikashop_config();
if($data->cart->full_total->prices[0]->price_value_with_tax>0 && hikashop_level(1) && $config->get('allow_payment_button',1)){
global $Itemid;
$url = '';
if(!empty($Itemid)){
$url='&Itemid='.$Itemid;
}
$pay_url = hikashop_frontendLink('index.php?option=com_hikashop&ctrl=order&task=pay&order_id='.$data->order_id.$url);
if($config->get('force_ssl',0) && strpos('https://',$pay_url) === false) {
$pay_url = str_replace('http://','https://',$pay_url);
} ?>
<a href="$pay_url"><?php JText::_('PAY_NOW'); ?></a>
<?php } ?>
<br/>
<br/>
<?php echo JText::sprintf('THANK_YOU_FOR_YOUR_ORDER',HIKASHOP_LIVE);
}?>
<br/>
<br/>
<?php echo JText::sprintf('BEST_REGARDS_CUSTOMER',$mail->from_name);?>
</td>
</tr>
<tr>
<td height="10">
</td>
</tr>
<tr>
<td height="10">
</td>
</tr>
</tbody>
</table>
</div>
I could do some calculations from within the product loop. But I was wondering if there isn't a cleaner way to go about this.
Cheers,
Willem
Please Log in or Create an account to join the conversation.
13 years 10 months ago #83121
by Jerome
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Replied by Jerome on topic Adding sub total to Order Created email
Hi,
I don't know where you found "order_subtotal" but this variable never exists in HikaShop.
The cart object have to prices variables : full_total and total.
Both are object with prices array and price_value/price_value_with_tax values.
So you can use the same part of code than the "full_total" but with "total".
Regards,
I don't know where you found "order_subtotal" but this variable never exists in HikaShop.
The cart object have to prices variables : full_total and total.
Both are object with prices array and price_value/price_value_with_tax values.
So you can use the same part of code than the "full_total" but with "total".
Regards,
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
The following user(s) said Thank You: DenisLeemkuil
Please Log in or Create an account to join the conversation.
- DenisLeemkuil
-
Topic Author
- Offline
Less
More
- Posts: 6
- Thank you received: 0
13 years 10 months ago #83138
by DenisLeemkuil
Replied by DenisLeemkuil on topic Adding sub total to Order Created email
That did it, thanks for the help!
Please Log in or Create an account to join the conversation.
Time to create page: 0.082 seconds