Skip to content

Instantly share code, notes, and snippets.

@cmaujean
Created August 3, 2011 19:37
Show Gist options
  • Save cmaujean/1123572 to your computer and use it in GitHub Desktop.
Save cmaujean/1123572 to your computer and use it in GitHub Desktop.
0.60 order mailer override
require 'order_invoice'
class OrderMailer < ActionMailer::Base
helper "spree/base"
def confirm_email(order, resend = false)
send_the_mail(order, "Confirmation", "confirm", resend)
end
def shipped_email(order, resend = false)
send_the_mail(order, "Delivery", "shipped", resend)
end
def cancel_email(order, resend = false)
send_the_mail(order, "Cancel", "canceled", resend)
end
private
def order_bcc
bcc = [Spree::Config[:order_bcc] || "", Spree::Config[:mail_bcc] || ""]
bcc = bcc.inject([]){|array, config_string| array + config_string.split(",")}
bcc = bcc.collect{|email| email.strip}
bcc = bcc.uniq
bcc
end
def send_the_mail(order, subj, type, resend)
@order = order
subject (resend ? "[RESEND] " : "") + Spree::Config[:site_name] + ' ' + 'Order ' + subj + ' #' + order.number
from Spree::Config[:order_from]
recipients order.email
bcc order_bcc
sent_on Time.now
content_type "multipart/mixed"
part :content_type => "text/html",
:body => render_message(type, :order => order)
# generate a pdf invoice and add it to the email
attachments["#{order.number}.pdf"] = OrderInvoice.new.to_pdf(order, true)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment