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've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

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

emailing the shopping cart info on cartpage


Go to End


1500 Views

Avatar
slavelabourer

Community Member, 26 Posts

8 August 2011 at 4:54pm

i want to create a quote request that is emailed for my project rather than run through the payment process. Bare with me as this is my first time using the ecommerce module. (version 0.70).

in it's current state email just returns the word 'order' in the email rather than that ordered items or quantities. How can I get this data saved in the database properly and emailed? Any help much appreciated, Thanks.

these are my functions in the CartPage.php

function SubmitEnquiry($data, $form) {

$order = ShoppingCart::save_current_order();
ShoppingCart::clear();

$form->saveInto($order);
$order->write();

//$Enquiry = new Enquiry();
//$form->saveInto($Enquiry);

$form->makeReadonly();
$email = new Email;
$email->to = 'daniel.tait@digital-pollution.net';
$email->from = 'sales@tcs-nz.co.nz';
$email->subject = 'New Enquiry';
$email->body = $order.'<br />'.$form->forTemplate();
$email->send();

//$Enquiry->write();

// Redirect to a page thanking people for registering
Director::redirect('thanks-for-your-enquiry/');

}

function Order() {
if($orderID = Director::urlParam('Action')) return DataObject::get_by_id('Order', $orderID);
else return ShoppingCart::current_order();
}