Transactional Mail – Customer Shipment Confirmation Email Not Being Sent

confirmationtransactional-mail

Having a problem with Magento 1.7. Order confirmation emails are being sent, and customers receive them. Shipment confirmation emails are being sent to the bcc: address, but customers do not receive them.

I've tried changing the BCC settings to both BCC and Separate Email and the result is the same for both.

There is noting relevant in system.log or exception.log. Does anyone have any suggestions? I don't even know where to look at this point, I'm completely baffled as to how the order conf emails are going out but the ship conf aren't.

The only difference I'm aware of is that the shipment is being fulfilled by a third party, and the shipment records are being created via the Magento API.

Best Answer

In case any one else has this issue:

In our case, the shipment was being created via the API from a third-party. With the Magento API, there's a flag whether or not to send the email on the createShipment call - this flag must be set by the third-party API. However, when done that way, the email doesn't contain the tracking information.

There are two possible solutions to this:

1) Override the Mage_Sales_Model_Order_Shipment_Api file, comment out the sendEmail line in the create function (in Magento 1.7, line 162), then add a line in the addTrack function $shipment->sendEmail(true, ''); after the $track->save() call (in Magento 1.7, line 205). Note this only works if there's only one tracking number per shipment. Also note that this hard-codes to send the email, since the flag doesn't exist on the addTrack call.

2) Instead of relying on the New Shipment email, add an API call. After adding the shipment and tracking number, then add a comment with the sendEmail flag set - then enable and update the New Shipment Comment email template to contain the contents of the New Shipment template.

Hope this makes sense, and hope it helps anyone else who follows.

Related Topic