Jump to content

Not all products turning up in invoice


Recommended Posts

When I am generating invoices through the backend, the end product does not list all the products correctly (customer bought 2 products, only one listed) . I am on PS 1.6.0.8.

 

1. I have found that only the LAST product in the list will be shown in the invoice generated. Found it across multiple orders. So if the customer ordered item 1, 2, 3, only item 3 would be shown in the PDF file. 

 

2. On the same server but a different website on 1.6.0.6, multiple orders are generating fine on PDF. I tried copying the invoice.tpl file over but it does not solve the problem.

 

3. I am guessing the issue is not with the invoice.tpl file but with something related to "{foreach $order_details as $order_detail}" and how it is not calling the values properly. Which file should I look at to solve this problem? 

 

I am at my wits end. Any idea why this is the case? All help appreciated. 

 

(I have tried taking the default invoice.tpl file and replacing it with the one on my server and it did not work.)

 

This is what is in my invoice.tpl file:

 

 

{*

* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2014 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
<div style="font-size: 8pt; color: #444">
 
<table>
<tr><td> </td></tr>
</table>
 
<!-- ADDRESSES -->
<table style="width: 100%">
<tr>
<td style="width: 17%"></td>
<td style="width: 83%">
{if !empty($delivery_address)}
<table style="width: 100%">
<tr>
<td style="width: 50%">
<span style="font-weight: bold; font-size: 10pt; color: #9E9F9E">{l s='Delivery Address' pdf='true'}</span><br />
{$delivery_address}
</td>
<td style="width: 50%">
<span style="font-weight: bold; font-size: 10pt; color: #9E9F9E">{l s='Billing Address' pdf='true'}</span><br />
{$invoice_address}
</td>
</tr>
</table>
{else}
<table style="width: 100%">
<tr>
 
<td style="width: 50%">
<span style="font-weight: bold; font-size: 10pt; color: #9E9F9E">{l s='Billing & Delivery Address.' pdf='true'}</span><br />
{$invoice_address}
</td>
<td style="width: 50%">
 
</td>
</tr>
</table>
{/if}
</td>
</tr>
</table>
<!-- / ADDRESSES -->
 
<div style="line-height: 1pt"> </div>
 
<!-- PRODUCTS TAB -->
<table style="width: 100%">
<tr>
<td style="width: 17%; padding-right: 7px; text-align: right; vertical-align: top; font-size: 7pt;">
<!-- CUSTOMER INFORMATION -->
<b>{l s='Order Number:' pdf='true'}</b><br />
{$order->getUniqReference()}<br />
<br />
<b>{l s='Order Date:' pdf='true'}</b><br />
{dateFormat date=$order->date_add full=0}<br />
<br />
<b>{l s='Payment Method:' pdf='true'}</b><br />
<table style="width: 100%;">
{foreach from=$order_invoice->getOrderPaymentCollection() item=payment}
<tr>
<td style="width: 50%">{$payment->payment_method}</td>
<td style="width: 50%">{displayPrice price=$payment->amount currency=$order->id_currency}</td>
</tr>
{foreachelse}
<tr>
<td>{l s='No payment' pdf='true'}</td>
</tr>
{/foreach}
</table>
<br />
{if isset($carrier)}
<b>{l s='Carrier:' pdf='true'}</b><br />
{$carrier->name}<br />
<br />
{/if}
<!-- / CUSTOMER INFORMATION -->
</td>
<td style="width: 83%; text-align: right">
<table style="width: 100%; font-size: 8pt;">
<tr style="line-height:4px;">
<td style="text-align: left; background-color: #4D4D4D; color: #FFF; padding-left: 10px; font-weight: bold; width: {if !$tax_excluded_display}35%{else}45%{/if}">{l s='Product / Reference' pdf='true'}</td>
<!-- unit price tax excluded is mandatory -->
{if !$tax_excluded_display}
<td style="background-color: #4D4D4D; color: #FFF; text-align: right; font-weight: bold; width: 20%">{l s='Unit Price' pdf='true'} <br />{l s='(Tax Excl.)' pdf='true'}</td>
{/if}
<td style="background-color: #4D4D4D; color: #FFF; text-align: right; font-weight: bold; width: 10%">
{l s='Unit Price' pdf='true'}
{if $tax_excluded_display}
{l s='(Tax Excl.)' pdf='true'}
{else}
{l s='(Tax Incl.)' pdf='true'}
{/if}
</td>
<td style="background-color: #4D4D4D; color: #FFF; text-align: right; font-weight: bold; width: 10%; white-space: nowrap;">{l s='Discount' pdf='true'}</td>
<td style="background-color: #4D4D4D; color: #FFF; text-align: center; font-weight: bold; width: 10%">{l s='Qty' pdf='true'}</td>
<td style="background-color: #4D4D4D; color: #FFF; text-align: right; font-weight: bold; width: {if !$tax_excluded_display}15%{else}25%{/if}">
{l s='Total' pdf='true'}
{if $tax_excluded_display}
{l s='(Tax Excl.)' pdf='true'}
{else}
{l s='(Tax Incl.)' pdf='true'}
{/if}
</td>
</tr>
<!-- PRODUCTS -->
{foreach $order_details as $order_detail}
{cycle values='#FFF,#DDD' assign=bgcolor}
<tr style="line-height:6px;background-color:{$bgcolor};">
<td style="text-align: left; width: {if !$tax_excluded_display}35%{else}45%{/if}">{$order_detail.product_name}{if isset($order_detail.product_reference) && !empty($order_detail.product_reference)} ({l s='Reference:' pdf='true'} {$order_detail.product_reference}){/if}</td>
<!-- unit price tax excluded is mandatory -->
{if !$tax_excluded_display}
<td style="text-align: right; width: 20%; white-space: nowrap;">
{displayPrice currency=$order->id_currency price=$order_detail.unit_price_tax_excl}
</td>
{/if}
<td style="text-align: right; width: 10%; white-space: nowrap;">
{if $tax_excluded_display}
{displayPrice currency=$order->id_currency price=$order_detail.unit_price_tax_excl}
{else}
{displayPrice currency=$order->id_currency price=$order_detail.unit_price_tax_incl}
{/if}
</td>
<td style="text-align: right; width: 10%">
{if (isset($order_detail.reduction_amount) && $order_detail.reduction_amount > 0)}
-{displayPrice currency=$order->id_currency price=$order_detail.reduction_amount}
{elseif (isset($order_detail.reduction_percent) && $order_detail.reduction_percent > 0)}
-{$order_detail.reduction_percent}%
{else}
--
{/if}
</td>
<td style="text-align: center; width: 10%">{$order_detail.product_quantity}</td>
<td style="text-align: right;  width: {if !$tax_excluded_display}15%{else}25%{/if}; white-space: nowrap;">
{if $tax_excluded_display}
{displayPrice currency=$order->id_currency price=$order_detail.total_price_tax_excl}
{else}
{displayPrice currency=$order->id_currency price=$order_detail.total_price_tax_incl}
{/if}
</td>
</tr>
{foreach $order_detail.customizedDatas as $customizationPerAddress}
{foreach $customizationPerAddress as $customizationId => $customization}
<tr style="line-height:6px;background-color:{$bgcolor};">
<td style="line-height:3px; text-align: left; width: 45%; vertical-align: top">
<blockquote>
{if isset($customization.datas[$smarty.const._CUSTOMIZE_TEXTFIELD_]) && count($customization.datas[$smarty.const._CUSTOMIZE_TEXTFIELD_]) > 0}
{foreach $customization.datas[$smarty.const._CUSTOMIZE_TEXTFIELD_] as $customization_infos}
{$customization_infos.name}: {$customization_infos.value}
{if !$smarty.foreach.custo_foreach.last}<br />
{else}
<div style="line-height:0.4pt"> </div>
{/if}
{/foreach}
{/if}
 
{if isset($customization.datas[$smarty.const._CUSTOMIZE_FILE_]) && count($customization.datas[$smarty.const._CUSTOMIZE_FILE_]) > 0}
{count($customization.datas[$smarty.const._CUSTOMIZE_FILE_])} {l s='image(s)' pdf='true'}
{/if}
</blockquote>
</td>
{if !$tax_excluded_display}
<td style="text-align: right;"></td>
{/if}
<td style="text-align: right; width: 10%"></td>
<td style="text-align: center; width: 10%; vertical-align: top">({$customization.quantity})</td>
<td style="width: 15%; text-align: right;"></td>
</tr>
{/foreach}
{/foreach}
{/foreach}
<!-- END PRODUCTS -->
 
<!-- CART RULES -->
{assign var="shipping_discount_tax_incl" value="0"}
{foreach $cart_rules as $cart_rule}
{cycle values='#FFF,#DDD' assign=bgcolor}
<tr style="line-height:6px;background-color:{$bgcolor};text-align:left;">
<td style="line-height:3px;text-align:left;width:60%;vertical-align:top" colspan="{if !$tax_excluded_display}5{else}4{/if}">{$cart_rule.name}</td>
<td>
{if $tax_excluded_display}
- {$cart_rule.value_tax_excl}
{else}
- {$cart_rule.value}
{/if}
</td>
</tr>
{/foreach}
<!-- END CART RULES -->
</table>
 
<table style="width: 100%">
{if (($order_invoice->total_paid_tax_incl - $order_invoice->total_paid_tax_excl) > 0)}
<tr style="line-height:5px;">
<td style="width: 83%; text-align: right; font-weight: bold">{l s='Product Total (Tax Excl.)' pdf='true'}</td>
<td style="width: 17%; text-align: right;">{displayPrice currency=$order->id_currency price=$order_invoice->total_products}</td>
</tr>
 
<tr style="line-height:5px;">
<td style="width: 83%; text-align: right; font-weight: bold">{l s='Product Total (Tax Incl.)' pdf='true'}</td>
<td style="width: 17%; text-align: right;">{displayPrice currency=$order->id_currency price=$order_invoice->total_products_wt}</td>
</tr>
{else}
<tr style="line-height:5px;">
<td style="width: 83%; text-align: right; font-weight: bold">{l s='Product Total' pdf='true'}</td>
<td style="width: 17%; text-align: right;">{displayPrice currency=$order->id_currency price=$order_invoice->total_products}</td>
</tr>
{/if}
 
{if $order_invoice->total_discount_tax_incl > 0}
<tr style="line-height:5px;">
<td style="text-align: right; font-weight: bold">{l s='Total Vouchers' pdf='true'}</td>
<td style="width: 17%; text-align: right;">-{displayPrice currency=$order->id_currency price=($order_invoice->total_discount_tax_incl)}</td>
</tr>
{/if}
 
{if $order_invoice->total_wrapping_tax_incl > 0}
<tr style="line-height:5px;">
<td style="text-align: right; font-weight: bold">{l s='Wrapping Cost' pdf='true'}</td>
<td style="width: 17%; text-align: right;">
{if $tax_excluded_display}
{displayPrice currency=$order->id_currency price=$order_invoice->total_wrapping_tax_excl}
{else}
{displayPrice currency=$order->id_currency price=$order_invoice->total_wrapping_tax_incl}
{/if}
</td>
</tr>
{/if}
 
{if $order_invoice->total_shipping_tax_incl > 0}
<tr style="line-height:5px;">
<td style="text-align: right; font-weight: bold">{l s='Shipping Cost' pdf='true'}</td>
<td style="width: 17%; text-align: right;">
{if $tax_excluded_display}
{displayPrice currency=$order->id_currency price=$order_invoice->total_shipping_tax_excl}
{else}
{displayPrice currency=$order->id_currency price=$order_invoice->total_shipping_tax_incl}
{/if}
</td>
</tr>
{/if}
 
{if ($order_invoice->total_paid_tax_incl - $order_invoice->total_paid_tax_excl) > 0}
<tr style="line-height:5px;">
<td style="text-align: right; font-weight: bold">{l s='Total Tax' pdf='true'}</td>
<td style="width: 17%; text-align: right;">{displayPrice currency=$order->id_currency price=($order_invoice->total_paid_tax_incl - $order_invoice->total_paid_tax_excl)}</td>
</tr>
{/if}
 
<tr style="line-height:5px;">
<td style="text-align: right; font-weight: bold">{l s='Total' pdf='true'}</td>
<td style="width: 17%; text-align: right;">{displayPrice currency=$order->id_currency price=$order_invoice->total_paid_tax_incl}</td>
</tr>
 
 
 
</table>
 
</td>
</tr>
</table>
<!-- / PRODUCTS TAB -->
 
<div style="line-height: 1pt"> </div>
 
{$tax_tab}
 
{if isset($order_invoice->note) && $order_invoice->note}
<div style="line-height: 1pt"> </div>
<table style="width: 100%">
<tr>
<td style="width: 17%"></td>
<td style="width: 83%">{$order_invoice->note|nl2br}</td>
</tr>
</table>
{/if}
 
{if isset($HOOK_DISPLAY_PDF)}
<div style="line-height: 1pt"> </div>
<table style="width: 100%">
<tr>
<td style="width: 17%"></td>
<td style="width: 83%">{$HOOK_DISPLAY_PDF}</td>
 
 
 
</tr>
 
 
</table>
 
 
<table style="width: 100%">
<tr>
<td style="width: 17%"></td>
<td style="width: 83%">
 
 
<span style="font-weight: bold; font-size: 10pt; color: #9E9F9E">Customer Message</span><br />
<br / >{$order_detail.first_order_message}
</td>
 
</tr>
</table>
 
 
{/if}
 
 
 
 
</div>
 
 
Edited by germinc (see edit history)
Link to comment
Share on other sites

Latest two versions of Presta introduced a lot of bugs. Luckily I delayed any upgrade from 1.6.0.6.

I've tried to reproduce this bug on clean 1.6.0.8 installation with different settings combinations but without success.

What version of Presta did you upgrade from?

Edited by deuterit (see edit history)
Link to comment
Share on other sites

  • 2 months later...

I am facing the opposite problem on 1.6.9  the invoice displays too many products, customer buys and pay 2, invoice shows 12 with the price of 2.....

 

I have no idea where to look, i noticed that only the 2 really ordered items have their reference numbers on the invoice.

 

all others unwanted have none....

Link to comment
Share on other sites

×
×
  • Create New...