Modifying Prestashop invoice template is quite difficult, but thanks to some really nice guys who shared their work, there are a few invoice templates that can be used.

If you like any of these templates you can download them and just replace the .tpl files:

– if you use the DEFAULT theme then you must  replace the .tpl files located in /public_html/pdf
– if you use a custom theme you need to replace the .tpl files from themes/custom_theme_name/pdf 

Supremacy2k wrote an excellent step-by-step guide how to customize the Prestashop invoice template. Starting from their templates you can customize the layout of your invoices to look more professional, but this will require some programming skills. However, following the step-by-step instruction provided in his guide you will be able to create your own invoice.

 

Prestashop sample invoice

Source files: gdrive supremacy2k-template.zip

 

greenthink prestashop invoice template

Source files: gdrive greenthink-template.zip

cardscapital-prestahop-invoice-template
cardscapital-prestahop-invoice-template

cardscapital prestashop invoice template

Source files: gdrive cardscapital.zip

Latin script

For Central European languages that use Latin script (Polish, Czech, Slovak, Hungarian, Slovene, Serbian, Croatian, Romanian and Albanian) you need to change the default font in order to display characters correctly. Use Freeserif fon instead of using Helvetica.

You can change the default font by editing the PDFGenerator.php file, located in classes\pdf\PdfGenerator.php and search for:

and replace it with:

Save the file and you are ready to use your new Prestashop invoice template.

40 thoughts on “Prestashop Invoice Templates for versions 1.5 and 1.6

  1. Nicu Zecheru says:

    Poti modifica in invoice.tpl,

    !– ADDRESSES –>

    {if !empty($delivery_address)}

    {l s=’Delivery Address’ pdf=’true’}
    {$delivery_address}
    {l s=’Billing Address’ pdf=’true’}
    {$invoice_address}

    {else}

    {l s=’Billing & Delivery Address.’ pdf=’true’}
    {$invoice_address}

    {/if}

  2. Sorin Murar says:

    Buna ziua,
    am folosit templateul greenthink pentru factura. Problema e ca-mi apare doar J-ul clientului nu si codul fiscal pe factura in stanga sus unde e adresa de facturare si livrare. Exista vreo posibilitate sa apara si codul fiscal? magazinul v-a functiona doar pentru persoane juridice. Multumesc!

      • Sorin Murar says:

        Nu-mi da nicio eroare, doar ca nu-mi apare CUI pe factura. Siteul se va adresa doar firmelor si e important sa apara CUI pe factura. Multumesc!

        Pe 09.09.2014, 08:30, Disqus a scris:

          • Sorin Murar says:

            {if $tax_exempt}

            {l s=’Exempt of VAT according section 259B of the General Tax Code.’ pdf=’true’}
            {else}

            {l s=’Tax Detail’ pdf=’true’} {l s=’Tax Rate’ pdf=’true’} {if !$use_one_after_another_method}
            {l s=’Total Tax Excl’ pdf=’true’} {/if}
            {l s=’Total Tax’ pdf=’true’}

            {if isset($product_tax_breakdown)}
            {foreach $product_tax_breakdown as $rate => $product_tax_infos}

            {l s=’Products’ pdf=’true’}
            {$rate} %
            {if !$use_one_after_another_method}

            {if isset($is_order_slip) && $is_order_slip}- {/if}{displayPrice currency=$order->id_currency price=$product_tax_infos.total_price_tax_excl}
            {/if}
            {if isset($is_order_slip) && $is_order_slip}- {/if}{displayPrice currency=$order->id_currency price=$product_tax_infos.total_amount}
            {/foreach}
            {/if}

            {if isset($shipping_tax_breakdown)}
            {foreach $shipping_tax_breakdown as $shipping_tax_infos}

            {l s=’Shipping’ pdf=’true’}
            {$shipping_tax_infos.rate} % {if !$use_one_after_another_method}
            {if isset($is_order_slip) && $is_order_slip}- {/if}{displayPrice currency=$order->id_currency price=$shipping_tax_infos.total_tax_excl} {/if}
            {if isset($is_order_slip) && $is_order_slip}- {/if}{displayPrice currency=$order->id_currency price=$shipping_tax_infos.total_amount}
            {/foreach}
            {/if}

            {if isset($ecotax_tax_breakdown)}
            {foreach $ecotax_tax_breakdown as $ecotax_tax_infos}
            {if $ecotax_tax_infos.ecotax_tax_excl > 0}

            {l s=’Ecotax’ pdf=’true’}
            {$ecotax_tax_infos.rate } % {if !$use_one_after_another_method}
            {if isset($is_order_slip) && $is_order_slip}- {/if}{displayPrice currency=$order->id_currency price=$ecotax_tax_infos.ecotax_tax_excl} {/if}
            {if isset($is_order_slip) && $is_order_slip}- {/if}{displayPrice currency=$order->id_currency price=($ecotax_tax_infos.ecotax_tax_incl – $ecotax_tax_infos.ecotax_tax_excl)}
            {/if}
            {/foreach}
            {/if}


            {/if}

          • Nicu Zecheru says:

            Codul trimis e din fisierul invoice.tab-tax.tpl….

            Unde trebuie sa modifici tu este in invoice.tpl:

            {if !empty($delivery_address)}

            {l s=’Delivery Address’ pdf=’true’} :
            {$delivery_address}

            {l s=’Billing Address’ pdf=’true’} :
            {$invoice_address}

            {else}

            {l s=’Billing & Delivery Address.’ pdf=’true’}{$invoice_address}

            {/if}

             

            Daca nu folosesti ambele adrese (shipping si delivery), poti sa maresti width pentru adresa:
            <td style="width: 40%;

            In principiu aici trebuie facute modificarile care se reflecta in layout-ul facturii. Acum depinde si cum ai salvat tu informatia in baza de date (CUI si J sunt in acelasi field?)

  3. George says:

    Buna ziua,
    Am intrat in themes/custom_theme_name/pdf si nu am gasit niciun fisier .tpl, ci doar unul index.php si un folder numit ‘lang’.
    Unde ar trebui sa copiez cele trei fisiere (header, invoice tab, invoice)? Mentionez ca folosesc Prestashop 1.6.x.
    Multumesc

    • Nicu Zecheru says:

      Salut George, probabil nu folosesti o tema custom, ci pe cea default. In cazul asta fisierele trebuie inlocuite in /public_html/pdf (nu uita sa faci backup inainte sa le inlocuiesti).

        • Nicu Zecheru says:

          Ai incercat sa modifici fisierele direct in folderul /public_html/pdf? In mod normal, pentru teme custom trebuie pastrata o structura a fisierelor, inclusiv /pdf (chiar daca aceste foldere nu sunt strict legate de tema, ajuta pentru a avea un design consistent). Probabil ca tema custom pe care o ai instalata foloseste fisierel din root.

          • George says:

            Ai dreptate, erau in public_html. Insa as avea o intrebare, daca eu inlocuiesc header, invoice tab, invoice cu cele postate mai sus, mi se modifica mie template-ul custom pe care l-am cumparat (referitor la header mai mult, sau au legatura strict cu facturile)? Multumesc

  4. George says:

    Buna, exista vreo metoda sa modific ca sa arate ca si factura din Romania? Sau sa gasesc un template undeva. Atasez o poza. Multumesc

  5. Nick says:

    Hello,

    I found this very useful, thank you for the grat job.
    but how do I use the lang folder, some items seems not to be translated in the invoice (I use french), plus the “if $tax_exempt” doesnt seem to be taken in account as the invoice.tax-tab.tpl is not displayed (not blaming you for this one).
    Using PS 1.6.0.14.

    Thanks for any help.

    • Nick says:

      Hello again,

      Finally sorted out the translation issue, by copying the files int the – themes/custom_theme_name/pdf –

      but still no luck with the tax exempt variable (i’ve set ps to no tax management in the settings but doesnt seem to be taken in account)… any clue ?

      • Nicu Zecheru says:

        Hi Nick, sorry for the late reply.
        If you don’t want to include the taxes look for this line in product.tpl and comment it:

        {if $priceDisplay == 1}{l s=’tax excl.’}{else}{l s=’tax incl.’}{/if}

  6. Razvan says:

    Salut!

    Te rog frumos, ajuta-ma cu un sfat: cum sa faca sa imi apara datele de adresa/datele facturare cu DIACRITICE.
    Colegii mei au nevoie sa le introduca mai departe in softul de conta in acest format si le este mult mai usor cu copy/paste.

    Am incercat urmatoarea varianta de cod in invoice.tpl, dar fara rezultat. Datele apar tot de genul Popescu Ion in loc de POPESCU ION, etc…

    —>

    {if !empty($delivery_address)}

    {l s=’Delivery Address’ pdf=’true’}
    {$delivery_address}

    {l s=’Billing Address’ pdf=’true’}
    {$invoice_address}

    {else}

    {l s=’Billing & Delivery Address.’ pdf=’true’}
    {$invoice_address}

    {/if}

    Multumesc!!!!

    • Nicu Zecheru says:

      Salut Razvan,

      Pentru a folosi diacritice trebuie inlocuit fontul default (Helvetica) cu Freeserif.

      Poti modifica in fisierul de aici: classes\pdf\PdfGenerator.php:

      Default font:
      const DEFAULT_FONT = ‘helvetica’;

      Freeserif font, pentru diacritice:
      const DEFAULT_FONT = ‘freeserif’;

  7. olimpiu says:

    Salut

    Incerc sa adauge pe factura si telefonul clientului in “{$delivery_address}” dar nu imi apare. Apar toate fara numar de telefon.

    Ai idee unde pot sa modific?

  8. Razvan says:

    Salut! Multumesc de raspuns!

    De fapt, eu vroiam sa spun LITERE DE TIPAR. Cum fac sa-mi apara datele clientului (adresa de livrare si de facturare) cu LITERE DE TIPAR??

    Multumesc!

  9. Olimpiu says:

    Salut

    Incerc sa adaug la lista de produse o coloana in care sa imi scoata gramajul sau culoarea. Ideea e ca am produse similare dar care au gramaje diferite. Nu am facut un singur produs din diferite considerente ci am facut produse separate pentru fiecare gramaj.

    Imi poti oferi o solutie sa afisez caracteristica cu greutatea pentru fiecare produs in invoice?

    Multumesc

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.