I’m on 1.3.2.3
I’m using only PayPal Express checkout
payment action=sale, new order status=processing
All seems to be OK
customer can order and pay and I get the payment.
Problem is that Magento does NOT send invoice to customer nor to us
(invoice and invoice comments are enabled in admin and we are on the Bcc setup of both)
if I go to invoices it is marked as:
Invoice #300000002 | Paid (Invoice email not sent)
And above all, Magento does not have any option to resend invoice
so out of printing it, I have no invoice nor the customer.
I couldn’t find any solution
Can anyone help please ?
and speaking of printing, how the h*** do I force the invoice text to be larger or force a landscape
printing of the pdf magneto produces ? (we must send each customer a small microscope to see it
all landscape options of acrobat does not produce a larger image
Thanks a lot
A.
P.S. Order email is sent OK to customer and us as Bcc
It is a bug in that version, try changing your IPN to authorize and see if that fixes it
It changes nothing, you receive only the confirmation of the order not the invoice.
There are two ways to do that:
- Put in the Mage_Paypal_Model_Standard class line 418 after $invoice->register()->pay();, you can put $invoice->sendEmail();
For me it works but there is a better way by using the events:
- For the events, you have to create an observer with start when the event sales_order_invoice_pay. This event is normally started at line 418 during the process $invoice->register()->pay() in the model Paypal file. I provide here the code.
Of course you have to activate the module in /app/etc/modules/Name_All.xml
Try my observer, it should work too. I provided two solutions, both works for paypal standard it’s true.
But in the paypal express you have to take aa look in the controller expressController.php, you will find in the function updateorderAction() the line $invoice->register()->capture(); it should does the same so here you can put the $invoice->sendEmail(); or use the observer. I cannot test the observer for paypal express but it should work and be the better solution in any case.
It is a bug in that version, try changing your IPN to authorize and see if that fixes it
It changes nothing, you receive only the confirmation of the order not the invoice.
There are two ways to do that:
- Put in the Mage_Paypal_Model_Standard class line 418 after $invoice->register()->pay();, you can put $invoice->sendEmail();
For me it works but there is a better way by using the events:
- For the events, you have to create an observer with start when the event sales_order_invoice_pay. This event is normally started at line 418 during the process $invoice->register()->pay() in the model Paypal file. I provide here the code.
Of course you have to activate the module in /app/etc/modules/Name_All.xml
POST EDIT : change the code and provide a good one which works.
HI diglin howdy,
you have post this 1 day after 1.3.2.4 release hey .
So i have the version 1.3.2.4 and i tried your solution ( Events) but the Invoice Email still not sent.
Have you another solution or maybe it’s me that have done this wrong?
Any feedback I appreciate.
BTW is PP Standard.
Hey diglin, sorry it’s me again,
i tried your first solution : I put $invoice->sendEmail(); AFTER $invoice->register()->pay(); and it works the email-invoice is sent but in the client email just apears
Your Invoice # for Order #100000020
this means the Invoice #No is not set wen email is sent.
This situation hapend with you some how?
Thanks
Regards
EDIT: basead in all tips in the forum i post where something
Just a little food for thought. I have used this program for a little over a year before I began to understand it.
It is a bug in that version, try changing your IPN to authorize and see if that fixes it
If you set this to Authorize instead of sale, you will have to log into PayPal to capture the funds as this only authorizes the payment. This would not change the situation of the customer getting the email or not from the magento admin.
Customer places order through your store and gets an order confirmation email, once the customer pays at PayPal the customer gets an email from PayPal that the order was paid. There is no reason to email an invoice once the order is paid.
This should update the status of the order to Processing. If you ship the item through PayPal you would then have to update the Magento Admin by clicking the Ship button and entering the tracking information. Again there would be no reason to send a confirmation email, because PayPal sends the email to the customer with the tracking information.
If you ship the item through another method that does not include using the customers email address, you would update the tracking information in the customers order and select email copy of shipment at the bottom right near the submit shipment button.
Not to be confused with processing your orders through PayPal Virtual Terminal or other third party processors.
@diglin
thanks for the idea, the observer solution fits neatly and is working for me.
Couple of questions:
1) Why did you rewrite the model? As far as I’m aware there’s no need for that when implementing an observer, and my system is working fine without a rewrite.
2) The code above won’t record that the invoice has been sent, so in the back end you will still think that no email went and sends it before the invoice number has been assigned. You need to add a save() and setEmailSent(true) like this:
case Mage_Sales_Model_Order_Invoice::STATE_PAID : if (! $invoice->getOrder()->getEmailSent()) { $invoice->save() ->sendEmail() ->setEmailSent(true); } break;;