Jump to content
chris23

[CONTRIBUTION] PDF Customer Invoice

Recommended Posts

Weird!

 

The fpdf class thinks your png is really a gif and is attempting to convert it by writing a new png to the /tmp directory. You're not allowed to do this as your server is running in safe mode.

 

What I don't get is you're using the same image for PDF Invoice and PDF Packingslip and the image generation code is identical .......

 

I solved it with help from the Dutch Osc forum

 

It was beqause a /tmp was hardcoded in the source

 

catalog/fpdf/fpdf.php

line 904

$tmp_filename = tempnam('[color="#FF0000"]/tmp[/color]/', 'gif4fpdf'.md5(uniqid(rand())) );

I changed it to the absolute path

$tmp_filename = tempnam('/home/******/*******/tmp/', 'gif4fpdf'.md5(uniqid(rand())) );

and now its working as a charme.

Share this post


Link to post
Share on other sites
Edit admin/orders.php

 

FIND:

<a href="' . tep__href_link('../pdfinvoice.php', 'order_id=' . $HTTP_GET_VARS['oID'] . '&passthruID=' . $pass_phrase_hash, 'SSL') . '" TARGET="_blank">

 

and replace with:

<a href="' . tep_catalog_href_link('pdfinvoice.php', 'order_id=' . $HTTP_GET_VARS['oID'] . '&passthruID=' . $pass_phrase_hash, 'SSL') . '" TARGET="_blank">

 

There are two entries like this in orders.php to change.

 

You'd better change your passthru hash now you've posted on the 'net!!

 

Rgds

 

Chris

 

Hi Chris, Thank for the assistance. I will change passthru hash once i resolved this

 

I still have problem and hope you could assist.

 

After editing based on your advise. i am still going this http://perfectit.com.sg/admin/HTTPS_SERVER...ssthruID=xxxxxx

 

How to change it to http://perfectit.com.sg/catalog/pdfinvoice...sthruID=xxxxxxx

Share this post


Link to post
Share on other sites

Hi Chris ,

 

How can I remove Model, Price (ex) , Price (inc) and I would like to wider little bit qty box, could you tell me how can I do it please.... :blush:

Share this post


Link to post
Share on other sites

I added picture also how I would like it...

 

Here it is:

helplv9.th.jpg

 

And I guess that code what needed to be edit is here:

 

//Fields Name position
$Y_Fields_Name_position = 125;
//Table position, under Fields Name
$Y_Table_Position = 131;


function output_table_heading($Y_Fields_Name_position){
global  $pdf, $cell_color;
//First create each Field Name
// Config color filling each Field Name box
$pdf->SetFillColor($cell_color[0],$cell_color[1],$cell_color[2]);
//Bold Font for Field Name
$pdf->SetFont(PDF_INV_CORE_FONT,'B',10);
$pdf->SetY($Y_Fields_Name_position);
$pdf->SetX(6);
$pdf->Cell(9,6,tep_html_entity_decode(PDF_INV_QTY_CELL),1,0,'C',1);
$pdf->SetX(15);
$pdf->Cell(27,6,tep_html_entity_decode(TABLE_HEADING_PRODUCTS_MODEL),1,0,'C',1);
$pdf->SetX(40);
$pdf->Cell(78,6,tep_html_entity_decode(TABLE_HEADING_PRODUCTS),1,0,'C',1);
$pdf->SetX(118);
$pdf->Cell(20,6,tep_html_entity_decode(TABLE_HEADING_PRICE_EXCLUDING_TAX),1,0,'C',1);
$pdf->SetX(138);
$pdf->Cell(20,6,tep_html_entity_decode(TABLE_HEADING_PRICE_INCLUDING_TAX),1,0,'C',1);
$pdf->SetX(158);
$pdf->Cell(20,6,tep_html_entity_decode(TABLE_HEADING_TOTAL_EXCLUDING_TAX),1,0,'C',1);
$pdf->SetX(178);
$pdf->Cell(20,6,tep_html_entity_decode(TABLE_HEADING_TOTAL_INCLUDING_TAX),1,0,'C',1);
$pdf->Ln();
}

output_table_heading($Y_Fields_Name_position);
//Show the products information line by line
for ($i = 0, $n = sizeof($order->products); $i < $n; $i++) {
$pdf->SetFont(PDF_INV_CORE_FONT,'',10);
$pdf->SetY($Y_Table_Position);
$pdf->SetX(6);
$pdf->MultiCell(9,6,$order->products[$i]['qty'],1,'C');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(40);

$prod_attribs='';

//get attribs and concat
	if ( (isset($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0) ) {
	for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
	$prod_attribs .= " - " .$order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'];
	}
}	

$product_name_attrib_contact = $order->products[$i]['name'] . $prod_attribs;

if (strlen($product_name_attrib_contact) > 40 && strlen($product_name_attrib_contact) < 50){
	$pdf->SetFont(PDF_INV_CORE_FONT,'',6);
	$pdf->MultiCell(78,6,tep_html_entity_decode($product_name_attrib_contact),1,'L');
	}

else if (strlen($product_name_attrib_contact) > 50){
	$pdf->SetFont(PDF_INV_CORE_FONT,'',6);
	$pdf->MultiCell(78,6,tep_html_entity_decode(substr($product_name_attrib_contact,0,60)) ." .. ",1,'L');
	}


else{
	$pdf->SetFont(PDF_INV_CORE_FONT,'',6);
	$pdf->MultiCell(78,6,tep_html_entity_decode($product_name_attrib_contact),1,'L');
	$pdf->Ln();
	}	

$pdf->SetFont(PDF_INV_CORE_FONT,'',10);
$pdf->SetY($Y_Table_Position);
$pdf->SetX(15);
$pdf->SetFont(PDF_INV_CORE_FONT,'',8);
$pdf->MultiCell(25,6,tep_html_entity_decode($order->products[$i]['model']),1,'C');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(118);
$pdf->SetFont(PDF_INV_CORE_FONT,'',10);
$pdf->MultiCell(20,6,$currencies->format($order->products[$i]['final_price'], true, $order->info['currency'], $order->info['currency_value']),1,'C');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(138);
$pdf->MultiCell(20,6,$currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax']), true, $order->info['currency'], $order->info['currency_value']),1,'C');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(158);
$pdf->MultiCell(20,6,$currencies->format($order->products[$i]['final_price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']),1,'C');
$pdf->SetY($Y_Table_Position);
$pdf->SetX(178);
$pdf->MultiCell(20,6,$currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax']) * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']),1,'C');
$Y_Table_Position += 6;

 

Please help me do it , I am trying already 12 hours and still not good.... :'(

Share this post


Link to post
Share on other sites
Now I want to open PDF in a new window, but I do not know how to do.

 

This is the default behaviour admin side. If you want the client's PDF in a new window

 

EDIT:

 

catalog/includes/languages/your_language/account_history_info.php

 

FIND:

 

define ('PDF_DOWNLOAD_LINK','If you would like to view / print a pdf version of this invoice, click <a title="Click here to view / print a pdf version of this invoice" href="%s">here</a>');

REPLACE with:

 

define ('PDF_DOWNLOAD_LINK','If you would like to view / print a pdf version of this invoice, click <a target="_blank" title="Click here to view / print a pdf version of this invoice" href="%s">here</a>');

HTH


Please use forum for support rather than PM - PMs unrelated to my contributions will be ignored.

Google Site Search is your friend

My contributions: Tracking Module | PDF Customer Invoice | Subcategory textboxes

Share this post


Link to post
Share on other sites
Hi Chris, Thank for the assistance. I will change passthru hash once i resolved this

 

I still have problem and hope you could assist.

 

After editing based on your advise. i am still going this http://perfectit.com.sg/admin/HTTPS_SERVER...ssthruID=xxxxxx

 

How to change it to http://perfectit.com.sg/catalog/pdfinvoice...sthruID=xxxxxxx

 

 

Do you have HTTPS_SERVER correctly defined in admin/includes/configure.php?


Please use forum for support rather than PM - PMs unrelated to my contributions will be ignored.

Google Site Search is your friend

My contributions: Tracking Module | PDF Customer Invoice | Subcategory textboxes

Share this post


Link to post
Share on other sites
Please help me do it , I am trying already 12 hours and still not good.... :'(

 

 

Have you had a look at post #61 here?

This gives you some pointers for altering / removing the table cells


Please use forum for support rather than PM - PMs unrelated to my contributions will be ignored.

Google Site Search is your friend

My contributions: Tracking Module | PDF Customer Invoice | Subcategory textboxes

Share this post


Link to post
Share on other sites
chris,

Firstly: great contribution! i have added both v1.1 and the addon's as you have posted them.

I have one strang thing with the pdf attachments, if the mail is sent to my gmail.com account, the attachment is visible in the webmail. Even if i forward the message to my other mailaddress (then pop'ed to outlook2003) the attachment is ok. But,,, if i pop the email from gmail to my outlook i see only raw ascii (see below). Any idea's?

 

There is some very weird behaviour going on with the attachement e.g.

 

Some users only get a PDF attachment if "Send HTML mails" is set to false.

 

I have tried the following and ALWAYS get the PDF attached correctly:

 

1. Using UNIX and Exim as mail transport agent. Win 32 test server using ISPs SMTP server. Both HTML mail on and off

 

2. Clients tested - Thunderbird 2.0.0.12, Outlook 2003 and Outlook Express, GMail and Yahoo Mail. All on XP SP2.

 

To get this fixed, I'm going to need help from all those getting attachment failure

 

1. MTAs used

2. Server OS used

3. Desktop OS used

4. Email client(s) used

5. Whether oSC "Send HTML email" set true / false and whether this makes any difference.

 

Mail headers and message source are useful but please obfuscate your email addresses!

 

HTH


Please use forum for support rather than PM - PMs unrelated to my contributions will be ignored.

Google Site Search is your friend

My contributions: Tracking Module | PDF Customer Invoice | Subcategory textboxes

Share this post


Link to post
Share on other sites

Chris

 

Thanks for the response. Today's research gives:

 

1. Transport SMTP (mail::factory contrib) doesn't give either HTML out or PDF attachment.

2. Transport Sendmail from my hosting server DOES work with Outlook Express and some webmail clients.

3. Outlook 2003 NEVER works. No attachment error message and the registry fix to allow PDFs doesn't seem to work.

 

Still playing.

 

Alan

Share this post


Link to post
Share on other sites
Have you had a look at post #61 here?

This gives you some pointers for altering / removing the table cells

 

Thanx alot Chris , this helped alot...

 

One more question:

 

In invoice it's date like example: Sunday 16 March, 2008

 

Question is , where can I change, that it will show my own language like example Pühapäev 16 Märts, 2008

Share this post


Link to post
Share on other sites
There is some very weird behaviour going on with the attachement e.g.

 

Some users only get a PDF attachment if "Send HTML mails" is set to false.

 

1. MTAs used

2. Server OS used

3. Desktop OS used

4. Email client(s) used

5. Whether oSC "Send HTML email" set true / false and whether this makes any difference.

 

Mail headers and message source are useful but please obfuscate your email addresses!

 

HTH

1. The standart osC mail agent: sendmail

2. Linux, PHP Version 4.4.7, osCommerce 2.2-MS2

3. No desctop server installed on Windows XP Pro

4. Outlook Express (only shows a lot of rubbish), Online via hotmail (doesn't show the html part, only the pdf to download).

5. Html set true: It goes wrong / Html set false: no problem

Header

X-Message-Delivery: Vj0zLjQuMDt1cz0wO2k9MDtsPTA7YT0x
X-Message-Status: n:0
X-SID-PRA: *****@******.nl
X-Message-Info: JGTYoYF78jHCPzkI8jVDS8e5mAi9hQcBUkVbcND+gRryNUkH55vIwX8fa6CHM6NmeM3Ekjh2fEcgen2T
n+ilhQ==
Received: from bay0-mc10-f12.bay0.hotmail.com ([65.54.245.52]) by bay0-imc3-s6.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.2444);
 Sun, 16 Mar 2008 06:55:33 -0700
Received: from server.budgettopserver.nl ([66.7.205.123]) by bay0-mc10-f12.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.2668);
 Sun, 16 Mar 2008 06:55:32 -0700
Received: from ********* by server.budgettopserver.nl with local (Exim 4.68)
(envelope-from <*********@server.budgettopserver.nl>)
id 1JatKk-0006Mn-7Y; Sun, 16 Mar 2008 14:55:07 +0100
To: ********@hotmail.com
Subject: Verwerking bestelling
From: *****@******.nl
To: "Ikke Zelf" <******@hotmail.com>
MIME-Version: 1.0
X-Mailer: osCommerce
Content-Type: multipart/mixed;
boundary="=_3b7bd2f966be2bede87b7a92d3ffd55d"
Message-Id: <E1JatKk-0006Mn-7Y@server.budgettopserver.nl>
Date: Sun, 16 Mar 2008 14:55:07 +0100
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server.budgettopserver.nl
X-AntiAbuse: Original Domain - hotmail.com
X-AntiAbuse: Originator/Caller UID/GID - [32703 501] / [47 12]
X-AntiAbuse: Sender Address Domain - server.budgettopserver.nl
X-Source: /usr/bin/php
X-Source-Args: /usr/bin/php checkout_process.php 
X-Source-Dir: ***********.nl:/public_html
Return-Path: **********@server.budgettopserver.nl
X-OriginalArrivalTime: 16 Mar 2008 13:55:32.0678 (UTC) FILETIME=[66D99660:01C8876D]

Source

X-Message-Delivery: Vj0zLjQuMDt1cz0wO2k9MDtsPTA7YT0x
X-Message-Status: n:0
X-SID-PRA: *********@***********.nl
X-Message-Info: JGTYoYF78jHCPzkI8jVDS8e5mAi9hQcBUkVbcND+gRryNUkH55vIwX8fa6CHM6NmeM3Ekjh2fEcgen2T
n+ilhQ==
Received: from bay0-mc10-f12.bay0.hotmail.com ([65.54.245.52]) by bay0-imc3-s6.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.2444);
 Sun, 16 Mar 2008 06:55:33 -0700
Received: from server.budgettopserver.nl ([66.7.205.123]) by bay0-mc10-f12.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.2668);
 Sun, 16 Mar 2008 06:55:32 -0700
Received: from *********** by server.budgettopserver.nl with local (Exim 4.68)
(envelope-from <************@server.budgettopserver.nl>)
id 1JatKk-0006Mn-7Y; Sun, 16 Mar 2008 14:55:07 +0100
To: *******@hotmail.com
Subject: Verwerking bestelling
From: *********@************.nl
To: "Ikke Zelf" <*********@hotmail.com>
MIME-Version: 1.0
X-Mailer: osCommerce
Content-Type: multipart/mixed;
boundary="=_3b7bd2f966be2bede87b7a92d3ffd55d"
Message-Id: <E1JatKk-0006Mn-7Y@server.budgettopserver.nl>
Date: Sun, 16 Mar 2008 14:55:07 +0100
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server.budgettopserver.nl
X-AntiAbuse: Original Domain - hotmail.com
X-AntiAbuse: Originator/Caller UID/GID - [32703 501] / [47 12]
X-AntiAbuse: Sender Address Domain - server.budgettopserver.nl
X-Source: /usr/bin/php
X-Source-Args: /usr/bin/php checkout_process.php 
X-Source-Dir: ***********.nl:/public_html
Return-Path: ***********@server.budgettopserver.nl
X-OriginalArrivalTime: 16 Mar 2008 13:55:32.0678 (UTC) FILETIME=[66D99660:01C8876D]


--=_3b7bd2f966be2bede87b7a92d3ffd55d
Content-Type: multipart/alternative


--=_3b7bd2f966be2bede87b7a92d3ffd55d
Content-Type: application/pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="*********_**********_invoice_2008015.pdf"

JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAy
IDAgUgovQW5ub3RzIFs8PC9UeXBlIC9Bbm5vdCAvU3VidHlwZSAvTGluayAvUmVjdCBbMTkuODQg
ODEzLjU0IDM3Ny4wMSA3MTIuNTJdIC9Cb3JkZXIgWzAgMCAwXSAvQSA8PC9TIC9VUkkgL1VSSSAo
aW5kZXgucGhwKT4+Pj5dCi9Db250ZW50cyA0IDAgUj4+CmVuZG9iago0IDAgb2JqCjw8L0ZpbHRl
ciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxNzM5Pj4Kc3RyZWFtCnicnVjbbhs3EH2uvmJeCiRARfPO
XT3Vip3ETezmYthAkZeNTDuKV6t0Jdt1nvpV/YH+WIeXveviNAEEDzlzODM8HM6Sw28jSpSBh9Gf
IJQhzADF/4wyQgWwlCQSDONEcZgt4OCEwdES3o+m53DwkqEaoRTOr+H4HO2dQOEGcDIa0oQonL+C
Zy+z2fruroTibrGw5QQ4pQll6jmcf0VjRNxgrlNJBPfm35fFVXbzCzANiywr196+Ma7c4VvckZIT
zsCkKRHMA14sl+WVtTkc53a2LrMh1rbQKqwEY0v2YG00NAnRyhveZwVcWTi1tlyhXbYGke4x1gkx
whu/tvn9cl6u9xiohCQhZKrHzCQMIbalXaSGCNretuPxIpvnE5gX18tf72OcNoRJinwbTpISnrT3
79J+Xs3XdgJf1utvk4ODXVBxA3RvAxKtkZFIVurWGVd/VBNMUMJS4FITzRxXWSAyjOPMuJ7ycKnR
+CtkGn/LQLwOivP8zfLb3MJ1duvo2zj53h0byqH9++HViBlC0XXDXNKlPzboKeaitDCFEBoHprqh
9YGCL5oToUFrQ5Run6HGic0ucEkMr31QgijZcQL/9HlrftEqFgHMi3JJbn7LmxHnRONuKoZJg8WI
a02kruQc5ZSotJK54YQJ0DIlUjSSdsSawSgOKKQlTueNrAjHvAcopTjB7YkLRckZe0einI+wSihV
iSHzEacS/CJoGLcleJHXoncxoFTet0NFw+neciAYYWjBBdG82aXSlraALCsm246nIgJXpYZI6c1O
bm8t/GHza9hpodKE0NRbfJnbEthu7aQuF04b6ydnQiq928hglQyV7azNte2sYQFiJJjnXM0UtxsN
M/KR2xBHzSArzQjX1TbUUsWUOFAzpZb9DkeouPlxoYYp0ZOaKgJLWkMdQTVhsoKqpYotcaCmSy17
RyNUDKIbsmdMlx6cuiunxY8LW363xRXSo8CbbBs/hJAEq9KPECSaPJUhlfqPUaSy+mGO7KgsSvir
tOZLlGu+RLkigNCEykbiJGVtvlDpFmz4gp2MlBVfJCYnpRVfolRXlihXlSWKsZgEnErwi9SVJXqR
16J3Mdan4H0nVM+T/5ktmSKj0iZbUa6zFeUYvkwMXpCN5O+GJltSCGJoky0pvAMVFE9cF1gtFKQm
W0GusxXEkIGIUwl+kTpb0Yu8Fr2LVc69951Qh6cKl8JCJZGENFyNL5bYVhZrd6Cg10kISLaU7oii
JUkClZk+oOLAtZYwgXfZo4OEe1vOr+f2Cj4/wvzo+PAtrB5Xa7sgo5+g/neWZYsJvIBTmJb//jO7
teX41M6/4vHDc94Mtk0+2FtbzIsbKEqCq1HKuDt3pq3zLsemcFV48KPjM3h9ePhqy8GMwShKTGhc
YLKtUERVJKmST1JVnFW97u/Ytj21i+fYj2vatj7K1ncLcG2va/8QoMn4tnqjfS/awpjadZZj3lYL
u/6yvMKe0u9KuwptODsbrvHIPoatHl4CkmD7NA5jvk/qfpDgeZAgqXLdofPiMEO2tZpWrP9oH8GM
z+xWMIOEU22wUwyjhYUVmCRpBcZRYnQ7Gscrwp3VBu5duby6m61t0UDGsh0hlf/diigkcyTqIM6/
ruDTM/vXp+ct0NT3Pk8ETXUvhRXovJi1UaXEcmCeiCox77wT/PkSq0A+8DVW7KehKrzwudyI2nM2
VpghrQR+auISi1gCReILWg4foTcfiBNFN98ZqOcH9mFgw3y/O8VABN7xLJa4ge+65XogXuN7lFuL
9zQir1rud0cajSFGFcFQo3v0wveM+6aMHcfLEg/ffLZzF4alf19ee/PdSDfFPsxOB3OTQicwrYhJ
/d6YWB0vjsYvPxye7Qxsf34HGuGYtveoM9JoDDHqPRpoDCpGmrR59jeA8F+5MKgXu5btacRa0HK9
O9JoDDEq14cavbrk2/mu6xiOVm3X9y/b14gFp32wOyONxhCjPtsDjV7xw+81sy/r+5cdaIResO16
Z6TRGGLUrg80uhXWPdXpfVnvRatdF+oeKWl4nPp493kcCvME9psz4T7UhOQkCZ87F9lqDeusnNtr
LOxTi9Jl9vjpuQejvSx2sYR/HRW8fsk7KWY5walLbGN/ofRnj6F7/ux9WTTK9TqC4dlLWtfO5uh2
vD+FN4m4BYP3p07J77US2C65V1Rk1aaHTTiA6tUR/9zyJogzDw8PZOME1dULJArTrLidgDbEFUKD
zb8bPJkenk3g7K0wJ2evplQbrYwJU9OTFxNwo2dv+SHKby7eTJjBr9WE++nzS2fIJF4U2NJTlZIp
bV13/wFG/Q44CmVuZHN0cmVhbQplbmRvYmoKMSAwIG9iago8PC9UeXBlIC9QYWdlcwovS2lkcyBb
MyAwIFIgXQovQ291bnQgMQovTWVkaWFCb3ggWzAgMCA1OTUuMjggODQxLjg5XQo+PgplbmRvYmoK
NSAwIG9iago8PC9UeXBlIC9Gb250Ci9CYXNlRm9udCAvSGVsdmV0aWNhLUJvbGQKL1N1YnR5cGUg
L1R5cGUxCi9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCj4+CmVuZG9iago2IDAgb2JqCjw8L1R5
cGUgL0ZvbnQKL0Jhc2VGb250IC9IZWx2ZXRpY2EtQm9sZE9ibGlxdWUKL1N1YnR5cGUgL1R5cGUx
Ci9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCj4+CmVuZG9iago3IDAgb2JqCjw8L1R5cGUgL0Zv
bnQKL0Jhc2VGb250IC9IZWx2ZXRpY2EKL1N1YnR5cGUgL1R5cGUxCi9FbmNvZGluZyAvV2luQW5z
aUVuY29kaW5nCj4+CmVuZG9iago4IDAgb2JqCjw8L1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0lt
YWdlCi9XaWR0aCA3MDAKL0hlaWdodCAxOTgKL0NvbG9yU3BhY2UgWy9JbmRleGVkIC9EZXZpY2VS
R0IgMjU1IDkgMCBSXQovQml0c1BlckNvbXBvbmVudCA4Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9E
ZWNvZGVQYXJtcyA8PC9QcmVkaWN0b3IgMTUgL0NvbG9ycyAxIC9CaXRzUGVyQ29tcG9uZW50IDgg
L0NvbHVtbnMgNzAwPj4KL01hc2sgWzIwOSAyMDkgXQovTGVuZ3RoIDE5OTcwPj4Kc3RyZWFtCnja
7L15fBTXlff9O1Vd2kArYEBbS0hesFkl9SIJCTDgPbEtjCNsJ3Emdmb8OMk8mcSTTCy0Ac48M5nk
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
woKCgvy8vNycnOykpMS4uNjY2JiYmOivX7+8f//u3bu3b9++efPm9cuXL168eP7s2dNHjx7ev3/v
3r27N2/euHHj+pUrly9dunjx4oULF86fPn3q1KmTJ04cP3bs6KFDBw8c2L9v3949e3bv2rVzx47t
W7Zs3rBh/bp1a9esWb1q1coVK5YvW7Z06dIlS5YsXrRo4YIF8+fNmztr1sxp06ZOmTJ50qSJEyb0
9/f39fX19vR0t7W1trQ0NzU1NjTU//nz59evXz9//vzx48c3oMeAXvrw4fXr10+fPn3y5Mnjx48f
Pnz44MGDu3fv3rlz5/bt27du3bp+/fq1a9euXr166dKlc+fOnT179syZMydOnDgGdOjRo0eOHDl8
+PCBAwf27du3Z8+eXbt27QA6d/v2rVu3bt68edOmTRs3blwHdPfatatXr14BdPdyoMuXLV68eMGC
BfOAjp47d/bs2TNnAl0+berUqZOATp84sQfo6O7ujo6Otra2FqDTm5sbgE6vr6+urq6oqCgrKysB
Bn1xcVFRUV5eXk5OTlZWVmZmZlpaWkpKShIwGhITExIS4uLioqKiIiMjw8LCQkNDg4ODAwIC/Pz8
fHx8vL29PTw83N3dXVxcnJ2dHR0d7ezsbGxsrK2tLSwszM3NTU1NjY2NDQwM9PX1dXR0tLW1NTU1
1dXVVVRUlJWVFRQU5OXlZWRkpKWlJSUlxcXFRUVFhYSEBAUF+fj4eHl5eXh4uLi4ODg42NnZWVhY
mJmZGRkZgemNYdAAAMqtcREKZW5kc3RyZWFtCmVuZG9iagoyIDAgb2JqCjw8Ci9Qcm9jU2V0IFsv
UERGIC9UZXh0IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJXQovRm9udCA8PAovRjEgNSAwIFIKL0Yy
IDYgMCBSCi9GMyA3IDAgUgo+PgovWE9iamVjdCA8PAovSTEgOCAwIFIKPj4KPj4KZW5kb2JqCjEw
IDAgb2JqCjw8Ci9Qcm9kdWNlciAoRlBERiAxLjUzKQovVGl0bGUgKFV3IGZhY3R1dXIpCi9TdWJq
ZWN0IChQREYga29waWUgdmFuIHV3IGJlc3RlbGxpbmc6IDIwMDgwMTUpCi9DcmVhdGlvbkRhdGUg
KEQ6MjAwODAzMTYxNDU1MDcpCj4+CmVuZG9iagoxMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwov
UGFnZXMgMSAwIFIKL09wZW5BY3Rpb24gWzMgMCBSIC9GaXRIIG51bGxdCi9QYWdlTGF5b3V0IC9P
bmVDb2x1bW4KPj4KZW5kb2JqCnhyZWYKMCAxMgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDIw
MjIgMDAwMDAgbiAKMDAwMDAyMzQwNSAwMDAwMCBuIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAw
MDAyMTIgMDAwMDAgbiAKMDAwMDAwMjEwOSAwMDAwMCBuIAowMDAwMDAyMjEwIDAwMDAwIG4gCjAw
MDAwMDIzMTggMDAwMDAgbiAKMDAwMDAwMjQxNCAwMDAwMCBuIAowMDAwMDIyNjY1IDAwMDAwIG4g
CjAwMDAwMjM1MzkgMDAwMDAgbiAKMDAwMDAyMzY4NCAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXpl
IDEyCi9Sb290IDExIDAgUgovSW5mbyAxMCAwIFIKPj4Kc3RhcnR4cmVmCjIzNzg4CiUlRU9GCg==
--=_3b7bd2f966be2bede87b7a92d3ffd55d--

Hope this will help you to find the problem.

 

Dent®os©h

Edited by Dent®os©h

Share this post


Link to post
Share on other sites

Hi Chris,

 

Been lagging back somewhat b/c I know your working on the above problem. Like said I too have this working when I uncheck the send HTML emails BUT my maxmind doesn't work anymore (unless I tick back the attach pdf emails to false).

 

So I know your busy on the more important (and common) problem but if you could when time permittes give me some hints on what needs to be changed so the Maxmind variables get passed on to maxmind and back to more orders.php screen.

 

Maxmind load snippet in checkout_process.php

// load the after_process function from the payment modules
 $payment_modules->after_process();
 if (tep_not_null($order->info['cc_number'])) {
require(DIR_WS_MODULES . 'maxmind/maxmind.php'); 
}

 $cart->reset(true);

 

inlcudes/modules/maxmind.php

<?php

// If you have a liscense key, enter it here and uncomment the line
$h["license_key"] = "abcdefg123456789";

// *************************************DO NOT MODIFY BELOW THIS LINE (Unless you know what you are doing **********************************	

$check_country_query = tep_db_query("select countries_iso_code_2 from " . TABLE_COUNTRIES . " where countries_name = '" . $order->billing['country']['title'] . "'");
$check_country = tep_db_fetch_array($check_country_query);

$check_state_query = tep_db_query("select zone_code from " . TABLE_ZONES . " where zone_name = '" . $order->billing['state'] . "'");
$check_state = tep_db_fetch_array($check_state_query);

require(DIR_WS_MODULES . 'maxmind/CreditCardFraudDetection.php');
$ccfs = new CreditCardFraudDetection;

//Modify a few variables to match what MaxMind is expecting.
$string = $order->info['cc_number'];
$cc = substr($string, 0, 6); 

$str = $order->customer['email_address'];
list ($addy, $domain) = split ('[@]', $str);

$phstr = preg_replace( '/[^0123456789]/', '', $order->customer['telephone']);
$phone = substr($phstr, 0, 6);

//next we set inputs and store them in a hash
$h["i"] = $REMOTE_ADDR;			   // set the client ip address
$h["domain"] = $domain;				  // set the Email domain 
$h["city"] = $order->billing['city'];			   // set the billing city
$h["region"] = $check_state['zone_code'];		   // set the billing state
$h["postal"] = $order->billing['postcode'];		 // set the billing zip code
$h["country"] = $check_country['countries_iso_code_2'];	  // set the billing country
$h["bin"] = $cc;				 // set bank identification number
$h["custPhone"] = $phone;			  //set customer phone number

// If you want to disable Secure HTTPS or don't have Curl and OpenSSL installed
// uncomment the next line
// $ccfs->isSecure = 0;

//set the time out to be five seconds
$ccfs->timeout = 5;

//uncomment to turn on debugging
// $ccfs->debug = 1;

//next we pass the input hash to the server
$ccfs->input($h);

//then we query the server
$ccfs->query();

//then we get the result from the server
$h = $ccfs->output();

$outputkeys = array_keys($h);
$sql_data_array = array('order_id' => $insert_id,
				   'score' => $h['score'],
				   'distance' => $h['distance'],
				   'country_match' => $h['countryMatch'],
				   'country_code' => $h['countryCode'],
				   'free_mail' => $h['freeMail'],
				   'anonymous_proxy' => $h['anonymousProxy'],
				   'proxy_score' => $h['proxyScore'],
				   'spam_score' => $h['spamScore'],
				   'bin_match' => $h['binMatch'],
				   'bin_country' => $h['binCountry'],
				   'bin_name' => $h['binName'],
				   'err' => $h['err'],
				   'ip_isp' => $h['ip_isp'],
				   'ip_org' => $h['ip_org'],
				   'hi_risk' => $h['highRiskCountry'],
				   'cust_phone' => $h['custPhoneInBillingLoc'],
				   'ip_city' => $h['ip_city'],
				   'ip_region' => $h['ip_region'],
				   'ip_latitude' => $h['ip_latitude'],
				   'ip_longitude' => $h['ip_longitude']);

tep_db_perform(TABLE_ORDERS_MAXMIND, $sql_data_array);
?>

 

includes/modules/maxmind/CreditCardFruadDetection.php

<?php

require ("HTTPBase.php");
class CreditCardFraudDetection extends HTTPBase {
 function CreditCardFraudDetection() {
$this->isSecure = 1;	// use HTTPS by default
$this->num_allowed_fields = 8;

//set the allowed_fields hash
$this->allowed_fields["i"] = 1;
$this->allowed_fields["domain"] = 1;
$this->allowed_fields["city"] = 1;
$this->allowed_fields["region"] = 1;
$this->allowed_fields["postal"] = 1;
$this->allowed_fields["country"] = 1;
$this->allowed_fields["bin"] = 1;
$this->allowed_fields["binName"] = 1;
$this->allowed_fields["binPhone"] = 1;
$this->allowed_fields["custPhone"] = 1;
$this->allowed_fields["license_key"] = 1;

//set the url of the web service
$this->url = "app/ccv2r";
 }
}
?>

 

 

 

As said when you get some spare time (what's that right?)

Cheers

-KJ


define('PROJECTS', 'Something that goes on forever!');

Share this post


Link to post
Share on other sites
Hi,

 

I see this is the packingslip add-on you have trouble with. Have you installed the parent PDF Invoice contribution as you appear to have the database configuration values missing?

 

HTH

 

Chris

 

Thanks for trying to help Chris. I double-checked and re-did the whole install of both and now I get some strange errors:

 

Packing Slip: %PDF-1.3 3 0 obj <<<>>>] /Contents 4 0 R>> endobj 4 0 obj <> stream xœ¥XYsÛ6~ׯØÇz&‚q“ÔSçpÒ$Mj§y¨;Z‚%&©’TRÿû.^:íÄš¡µ öÃb÷ÃîBÞŒ(Q|ý<Ö$R@ñÃc;ÈKˆbI’¦+8ÍàyGÏ®áü%F ¥p}/®Q’%;dŸŸåpf@¡‰“gðËË2›¥÷À¼KËéâ àÜø®¿ Nœ?\JE(¢' Ì¡¿JW¦’öYV» ²¸ÑäØ^ÕEià=‚v§õ£˜håôŸÎf¥©ªÇ(ë˜DÂ)_›¼.

b{w|XùƒŒ‰$Zôãôb¼J³å¾˜»»_çέsçÖ"_f¹!Óbõ ›(2ŒF|Áðgs;E]¯'çç§pCàôvà´¦ÿ+j—7_šLJ¢àRÍ,u™£5ƒqx3n_9¸D‰Á30w€â

¼™N¿fùÞfUÝÙøÑž!Ê¡ÿüãÕˆE„¢å³±œ(n å1 •žß¦†;Ûò¦hN„­#¢ôKöÛ¡¡QgˆÂà,ñÑê?Q+¤…}¾qNtZ1›V#®5‘º‘—('ÖoAæ'L€– ‘¢“4¦0 )‹¯—Œf¢ï=”RœDÂBA²ÊÎ /G˜j”jDïþ€ÓnT±ñV,[Ñ™èQëû[EÅg‡R‰¥Ÿ?HŒ0Ôà‚hO÷×ù·"›¨‹Éð¼´*xj®H#"å‘$¶GG%1¡‰ÓyƒÇÞài¯à¸JÜfÆ#¸,ÊÊT‹ÂÀÛ4Ÿ!¥Ž+G˜h}N¼LWëºÈŸÀŸY9Ïò,üãBëäyÇ|ʳÚÌàªNkSõI|˜ŽÌ

ÃzY«Ž‚*R6t-æ^ÕRRÅÚÄ·• †–‚­ì¨ «ÂBƒ%-…­¼‘ž¶$n Z©¡ahyØÊÎÐ

 

Invoice: %PDF-1.3 3 0 obj <<<>>>] /Contents 4 0 R>> endobj 4 0 obj <> stream xœ¥XmoÛ6þî_q6 jF|•äOkÞšK›ÖN÷a ÅVb¯²”ÉrRÿû)J¢,¿em9GÝ=¼#Ÿ;ÅàCÏ#Ò‡—Þ¿ÀE| þg¤! ø ¡ã9_Q8ËàsïdǨG<Fp>Bs(é!ýdøÌ5-Š‡¨<7Wés6Ç.ç÷q>

 

I have fpdf and all, so I don't know what the issue could be...

Share this post


Link to post
Share on other sites

Hi,

 

i've been having a problem where my customers get two emails, one containing the actual email, and another one, blank except for the invoice attachement.

 

I'm not the best at PHP so any help would be appreciated.

 

ive attached some screenshots if thats any help.

 

html_email.jpg

attach_only.jpg

Share this post


Link to post
Share on other sites

Hey Chris I have one question, I installed pdf_invoice_email_attachment_v1.2, evrything is working great, but now when Costumer orders something , I will get extra email that he ordered something..

 

Before installation was that email was sent From: Customer Name

But now it's From: MyCompany

 

How can I change it back that it will show customers name?

Share this post


Link to post
Share on other sites

Hey Chris.

 

I was wondering if it is posible to create a PDF file with logo to print directly to my labelprinter?

I found a contrib thats creating the label but I cant get the logo in it. The contrib is here

Maybe you know how to fix this?

 

 

Dent®os©h

Share this post


Link to post
Share on other sites
I guess it is helpfull for others if i post the fix i had to make for this problem:

 

FPDF error: Some data has already been output, can't send PDF file

 

I started with the file pdfinvoice.php to search for spaces or carriage returns after the ?>, and follow the include/require paths. About the 10th file was the last one that caused the problem to occur. Just remove all the spaces, save, reload the page that should give the pdf.

 

I have this same problem, and have tried to go through all files, but can't find any white spaces.

Could you tell, what was the file you fixed?

 

Or could somebody else help?

 

Problem is this:

FPDF error: Some data has already been output, can't send PDF file

 

Have NOT modified any files.

Share this post


Link to post
Share on other sites
When the invoice is accessed from admin, the customer id is not set so cannot be displayed. Fortunately this is easilt fixed.

EDIT pdfinvoice.php

FIND:

 if($HTTP_GET_VARS['passthruID'] === $pass_phrase_hash){

IMMEDIATELY AFTER add:

 

// get customer_id for this order number
	$customer_info_query = tep_db_query("select customers_id from " . TABLE_ORDERS . " where orders_id = '". (int)$HTTP_GET_VARS['order_id'] . "'");
	$customer_info = tep_db_fetch_array($customer_info_query);
	$customer_id = $customer_info['customers_id'];

Hi,

I have applied this patch exactly as it says but I keep getting the login page when trying to access the PDF Invoice through the button in the admin side... is there anything else I need to do? I need urgent help please!

Thanks!

Share this post


Link to post
Share on other sites
Hi,

I have applied this patch exactly as it says but I keep getting the login page when trying to access the PDF Invoice through the button in the admin side... is there anything else I need to do? I need urgent help please!

Thanks!

Problem solved by reinstalling everything again... thanks!

Share this post


Link to post
Share on other sites

Thank you for this great contribution!

I've installed "PDF Customer Invoice v1.1" on a fresh OsC v2.2 RC2a. It went well and everything works but when i tried to install PDF Packing Slip, I get a black page in Firefox and HTTP 500 - Internal server error in IE. I double checked and went thru the instructions again but still can't fix it. Would packing slip work if I didn't install 'Email PDF as Attachment '?

Please help.

Share this post


Link to post
Share on other sites
Thank you for this great contribution!

I've installed "PDF Customer Invoice v1.1" on a fresh OsC v2.2 RC2a. It went well and everything works but when i tried to install PDF Packing Slip, I get a black page in Firefox and HTTP 500 - Internal server error in IE. I double checked and went thru the instructions again but still can't fix it. Would packing slip work if I didn't install 'Email PDF as Attachment '?

Please help.

 

Hi,

 

Packing slip is not dependent at all on "Email PDF as attachment". You can pretty much install whichever add-ons you want to the base PDF Invoice contribution. The only must is for a fully working PDF Invoice before installing any of the add-ons

 

I have all the add-ons working fine on v2.2 RC2a. Something's definitely gone wrong during the install somewhere. I know you've checked it but please have another look - have a coffee first ;)

 

HTH

 

Chris


Please use forum for support rather than PM - PMs unrelated to my contributions will be ignored.

Google Site Search is your friend

My contributions: Tracking Module | PDF Customer Invoice | Subcategory textboxes

Share this post


Link to post
Share on other sites
I have this same problem, and have tried to go through all files, but can't find any white spaces.

Could you tell, what was the file you fixed?

 

Or could somebody else help?

 

Problem is this:

FPDF error: Some data has already been output, can't send PDF file

 

Have NOT modified any files.

 

From memory, I think there's a rogue whitespace after the closing ?> in catalog/languages/your_language/pdfinvoice.php

 

HTH


Please use forum for support rather than PM - PMs unrelated to my contributions will be ignored.

Google Site Search is your friend

My contributions: Tracking Module | PDF Customer Invoice | Subcategory textboxes

Share this post


Link to post
Share on other sites
Hey Chris I have one question, I installed pdf_invoice_email_attachment_v1.2, evrything is working great, but now when Costumer orders something , I will get extra email that he ordered something..

 

Before installation was that email was sent From: Customer Name

But now it's From: MyCompany

 

How can I change it back that it will show customers name?

 

Chris maybe you can help me :blush:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×