Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

E-Commerce Modules /

Discuss about the various e-commerce modules available:
Ecommerce, SS Shop, SilverCart and SwipeStripe
Alternatively, have a look the shared mailinglist.

Moderators: martimiz, Nicolaas, Sean, Ed, frankmullenger, biapar, Willr, Ingo, Jedateach, swaiba

e-commerce emails


Go to End


3 Posts   1669 Views

Avatar
Llewe

Community Member, 1 Post

25 June 2009 at 10:16am

I'm a newbie so apologies in advance. I have setup the e-commerce module [v0.5.2] and everything seems ok except I am not getting the emails sent out to the customer and shop. I have tried setting this in both the ecommerce config.php and the mysite config.php using

// Set the email of the admin who looks after receiving the order emails.
Order::set_email('llewetest@gmail.com');

I have also set the admin email in mysite config.php using

Email::setAdminEmail('llewetest@gmail.com')

and this works, sending me two emails saying that "A message that you sent contained no recipient addresses"

Why is it not picking up the email addresses? Am I setting this in the wrong place?

Avatar
danqxx

Community Member, 14 Posts

9 July 2009 at 2:36pm

Hi, this is pretty old now but I had the same problem. It turned out to be a misordering of a parent constructor. Anyway the fix for me went like this:
ecommerce>order.php line 1195 (roughly)

class Order_receiptEmail extends Email {

	/*private static $StoreName = "Shop Sale";
	public function setStoreName($name){ $self->StoreName=$name; }
	public function getStoreName(){ return $self->StoreName; }*/
	
	protected $ss_template = 'Order_receiptEmail';
	
	public function __construct($to = null, $from = null, $subject = null) {
		parent::__construct();
		$this->to = $to ? $to : '$Member.Email';
		
		$this->from = $from;
		$this->subject = $subject ? $subject : '$StoreName reference (#$ID)';
				
		if(!isset($this->from, $this->subject)) {
			user_error('From or subject for email have not been defined. You probably haven\'t called Order::set_email() in your _config.php file.', E_USER_ERROR);
		}
		
		
	}
} 

this is the fixed version. all i did was move the line
parent::__construct();
to the beginning of the function.
Hope this helps ;)

Avatar
Nickt

Community Member, 43 Posts

9 November 2009 at 4:39pm

thanks so much - this does work!