From 2ba632456f083c818438577d5572c24b177cff8c Mon Sep 17 00:00:00 2001 From: summerscope Date: Fri, 27 Feb 2015 12:40:13 +1100 Subject: [PATCH 1/7] WIP email mailer updates for customer email confirmation etc. --- .../images/open-food-network-beta-black.png | Bin 0 -> 18863 bytes app/views/layouts/mailer.html.haml | 6 +- .../confirm_email_for_customer.html.haml | 100 ++++++++++-------- 3 files changed, 58 insertions(+), 48 deletions(-) create mode 100644 app/assets/images/open-food-network-beta-black.png diff --git a/app/assets/images/open-food-network-beta-black.png b/app/assets/images/open-food-network-beta-black.png new file mode 100644 index 0000000000000000000000000000000000000000..8e5f810023c5ab5094124d44622f9dc7116a4057 GIT binary patch literal 18863 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 UI#+Y7x&QzG07*qoM6N<$g6n^ahX4Qo literal 0 HcmV?d00001 diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml index ef8d4e2ec1..9042c91213 100644 --- a/app/views/layouts/mailer.html.haml +++ b/app/views/layouts/mailer.html.haml @@ -7,15 +7,15 @@ Open Food Network = stylesheet_link_tag 'mail/all' %body{:bgcolor => "#FFFFFF" } - %table.head-wrap{:bgcolor => "#333333"} + %table.head-wrap{:bgcolor => "#f2f2f2"} %tr %td %td.header.container .content - %table{:bgcolor => "#333333"} + %table{:bgcolor => "#f2f2f2"} %tr %td - %img{:src => "#{ asset_path 'open-food-network-beta.png' }", :width => "200"}/ + %img{:src => "#{ asset_path 'open-food-network-beta-black.png' }", :width => "200", :height => "49"}/ %td{:align => "right"} %h6.collapse Open Food Network diff --git a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml index 69629e256b..9afb95f298 100644 --- a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml @@ -1,25 +1,31 @@ -%h3 Hi #{@order.bill_address.firstname}, %table.social.white-bg{:width => "100%"} %tr %td %table.column{:align => "left"} %tr %td - %p - %strong Order confirmation ##{@order.number} - %p - Thanks for shopping on - %strong= "#{Spree::Config.site_name}." - Here are the details for your order from - %strong= "#{@order.distributor.name}." + %h3 + Hi #{@order.bill_address.firstname}, + %br + %br + Thanks for shopping at + %strong= "#{@order.distributor.name}" + ! %table.column{:align => "left"} %tr %td - %img.float-right{:src => "#{@order.distributor.logo.url(:thumb)}"}/ + %img.float-right{:src => "#{@order.distributor.logo.url(:small)}"}/ %span.clear %p   - - +%h4 + Order confirmation + %strong ##{@order.number} +%p + / Thanks for shopping on + / %strong= "#{Spree::Config.site_name}." + Here are the details for your order from + %strong= "#{@order.distributor.name}:" +%p   %p.callout %strong Order summary %table.order-summary{:width => "100%"} @@ -33,9 +39,11 @@ - @order.line_items.each do |item| %tr %td - = raw(item.variant.product.supplier.name) - %br = "#{raw(item.variant.product.name)} #{raw(item.variant.options_text)}" + %br + %small + %em= raw(item.variant.product.supplier.name) + %td{:align => "right"} = item.quantity %td{:align => "right"} @@ -76,7 +84,7 @@ Delivery details %p Your order will be delivered to: - %br + %p #{@order.ship_address.full_name} %br #{@order.ship_address.full_address} @@ -84,49 +92,49 @@ #{@order.ship_address.phone} - if @order.shipping_method.andand.description - %br - %br - #{@order.shipping_method.description.html_safe} + %p + #{@order.shipping_method.description.html_safe} - if @order.order_cycle.andand.pickup_time_for(@order.distributor) - %br - %br - Delivery on: #{@order.order_cycle.pickup_time_for(@order.distributor)} + %p + Delivery on: + %br + %strong #{@order.order_cycle.pickup_time_for(@order.distributor)} - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) - %br - %br - Other delivery information: #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - - %br + %p + Other delivery information: + %br + %strong #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - else / Collection details %p.callout %strong Collection details - %p - - if @order.shipping_method.andand.description - %br - %br - = @order.shipping_method.description.html_safe + + - if @order.shipping_method.andand.description + %p + @order.shipping_method.description.html_safe - - if @order.order_cycle.andand.pickup_time_for(@order.distributor) + - if @order.order_cycle.andand.pickup_time_for(@order.distributor) + %p + Ready for collection: %br - %br - Ready for collection: #{@order.order_cycle.pickup_time_for(@order.distributor)} + %strong #{@order.order_cycle.pickup_time_for(@order.distributor)} - - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) + - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) + %p + Collection instructions: %br - %br - Collection instructions: #{@order.order_cycle.pickup_instructions_for(@order.distributor)} + %strong #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - - if @order.special_instructions.present? - %br - %br - Notes: #{@order.special_instructions} - - %br + - if @order.special_instructions.present? + %p + %small + Customer notes: + %br + #{@order.special_instructions} -# Your order will be ready for collection on -# %strong{:style => "margin: 0;padding: 0;font-family: \"Helvetica Neue\", \"Helvetica\", Helvetica, Arial, sans-serif;"} @@ -136,10 +144,12 @@ -# %a{:href => "https://goo.gl/maps/T1ArU", :style => "margin: 0;padding: 0;font-family: \"Helvetica Neue\", \"Helvetica\", Helvetica, Arial, sans-serif;color: #0096ad;", :target => "_blank"} -# google maps - %p.callout - #{@order.distributor.contact}, - %br/ + Kind regards, + %br + #{@order.distributor.contact} + %br + %br %strong= @order.distributor.name %br/ = @order.distributor.phone || "" From 87842ecaf5623825a6275b2a40dd659811864718 Mon Sep 17 00:00:00 2001 From: summerscope Date: Fri, 27 Feb 2015 14:00:49 +1100 Subject: [PATCH 2/7] More WIP confirmation email for customer and shopfront. fixing up the order summary table. overall design improvements. --- app/assets/stylesheets/mail/email.css.sass | 15 +++ .../confirm_email_for_customer.html.haml | 99 ++++++++--------- .../confirm_email_for_shop.html.haml | 105 ++++++++---------- 3 files changed, 111 insertions(+), 108 deletions(-) diff --git a/app/assets/stylesheets/mail/email.css.sass b/app/assets/stylesheets/mail/email.css.sass index bc425a1e38..38024a1cc4 100644 --- a/app/assets/stylesheets/mail/email.css.sass +++ b/app/assets/stylesheets/mail/email.css.sass @@ -56,6 +56,21 @@ table.social table.order-summary border-collapse: separate border-spacing: 0px 10px + tbody tr td + padding-left: 5px + padding-right: 5px + thead tr th + background-color: #f2f2f2 + border-bottom: 1px solid black + padding-left: 5px + padding-right: 5px + h4 + margin-top: 15px + tfoot + border-top: 1px solid black + tr td + padding-left: 5px + padding-right: 5px .social .soc-btn padding: 3px 7px diff --git a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml index 9afb95f298..166da19ec2 100644 --- a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml @@ -6,67 +6,62 @@ %td %h3 Hi #{@order.bill_address.firstname}, - %br - %br + %h4 Thanks for shopping at - %strong= "#{@order.distributor.name}" - ! + %strong= "#{@order.distributor.name}!" %table.column{:align => "left"} %tr - %td - %img.float-right{:src => "#{@order.distributor.logo.url(:small)}"}/ + %td{:align => "right"} + %img.float-right{:src => "#{@order.distributor.logo.url(:medium)}"}/ %span.clear + %p   %h4 Order confirmation %strong ##{@order.number} %p - / Thanks for shopping on - / %strong= "#{Spree::Config.site_name}." - Here are the details for your order from + Here are your order details from %strong= "#{@order.distributor.name}:" -%p   -%p.callout - %strong Order summary -%table.order-summary{:width => "100%"} - %tr - %td - %strong Item - %td{:align => "right", :width => "25%"} - %strong Qty - %td{:align => "right", :width => "25%"} - %strong Price - - @order.line_items.each do |item| - %tr - %td - = "#{raw(item.variant.product.name)} #{raw(item.variant.options_text)}" - %br - %small - %em= raw(item.variant.product.supplier.name) - - %td{:align => "right"} - = item.quantity - %td{:align => "right"} - = item.display_amount_with_adjustments - %tr - %td{:colspan => "3"}   - %tr - %td{:align => "right", :colspan => "2"} - Subtotal: - %td{:align => "right"} - = display_checkout_subtotal(@order) - - checkout_adjustments_for(@order, exclude: [:line_item]).reject{ |a| a.amount == 0 }.reverse_each do |adjustment| +%table.order-summary{:width => "100%"} + %thead + %tr + %th{:align => "left"} + %h4 Item + %th{:align => "right", :width => "25%"} + %h4 Qty + %th{:align => "right", :width => "25%"} + %h4 Price + %tbody + - @order.line_items.each do |item| + %tr + %td + %strong= "#{raw(item.variant.product.name)}" + = "#{raw(item.variant.options_text)}" + %br + %small + %em= raw(item.variant.product.supplier.name) + %td{:align => "right"} + = item.quantity + %td{:align => "right"} + = item.display_amount_with_adjustments + %tfoot %tr %td{:align => "right", :colspan => "2"} - = "#{raw(adjustment.label)}:" + Subtotal: %td{:align => "right"} - = adjustment.display_amount - %tr - %td{:align => "right", :colspan => "2"} - %strong Total: - %td{:align => "right"} - %strong= @order.display_total + = display_checkout_subtotal(@order) + - checkout_adjustments_for(@order, exclude: [:line_item]).reject{ |a| a.amount == 0 }.reverse_each do |adjustment| + %tr + %td{:align => "right", :colspan => "2"} + = "#{raw(adjustment.label)}:" + %td{:align => "right"} + = adjustment.display_amount + %tr + %td{:align => "right", :colspan => "2"} + %strong Total: + %td{:align => "right"} + %strong= @order.display_total %p   - if @order.payments.first.andand.payment_method.andand.type == "Spree::PaymentMethod::Check" and @order.payments.first.andand.payment_method.andand.description @@ -143,18 +138,18 @@ -# Pick-up your order at the rear of 34 Mason Street, Warragul. See it on -# %a{:href => "https://goo.gl/maps/T1ArU", :style => "margin: 0;padding: 0;font-family: \"Helvetica Neue\", \"Helvetica\", Helvetica, Arial, sans-serif;color: #0096ad;", :target => "_blank"} -# google maps - +%br %p.callout Kind regards, %br #{@order.distributor.contact} %br %br - %strong= @order.distributor.name - %br/ + = @order.distributor.name + %br = @order.distributor.phone || "" - %br/ + %br %a{:href => "mailto:#{@order.distributor.email}", :target => "_blank"} = @order.distributor.email - %br/ + %br = @order.distributor.website || "" \ No newline at end of file diff --git a/app/views/spree/order_mailer/confirm_email_for_shop.html.haml b/app/views/spree/order_mailer/confirm_email_for_shop.html.haml index 69629e256b..a7a30a35dc 100644 --- a/app/views/spree/order_mailer/confirm_email_for_shop.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_shop.html.haml @@ -1,64 +1,67 @@ -%h3 Hi #{@order.bill_address.firstname}, %table.social.white-bg{:width => "100%"} %tr %td %table.column{:align => "left"} %tr %td - %p - %strong Order confirmation ##{@order.number} - %p - Thanks for shopping on - %strong= "#{Spree::Config.site_name}." - Here are the details for your order from - %strong= "#{@order.distributor.name}." + %h3 + Hi #{@order.distributor.contact}, + %h4 + Well done! You have a new order for + %strong= "#{@order.distributor.name}!" %table.column{:align => "left"} %tr - %td - %img.float-right{:src => "#{@order.distributor.logo.url(:thumb)}"}/ + %td{:align => "right"} + %img.float-right{:src => "#{@order.distributor.logo.url(:medium)}"}/ %span.clear + %p   +%h4 + Order confirmation + %strong ##{@order.number} +%p + %strong= "#{@order.bill_address.firstname} #{@order.bill_address.lastname}" + completed the following order at your shopfront: - -%p.callout - %strong Order summary %table.order-summary{:width => "100%"} - %tr - %td - %strong Item - %td{:align => "right", :width => "25%"} - %strong Qty - %td{:align => "right", :width => "25%"} - %strong Price - - @order.line_items.each do |item| + %thead %tr - %td - = raw(item.variant.product.supplier.name) - %br - = "#{raw(item.variant.product.name)} #{raw(item.variant.options_text)}" - %td{:align => "right"} - = item.quantity - %td{:align => "right"} - = item.display_amount_with_adjustments - - %tr - %td{:colspan => "3"}   - %tr - %td{:align => "right", :colspan => "2"} - Subtotal: - %td{:align => "right"} - = display_checkout_subtotal(@order) - - checkout_adjustments_for(@order, exclude: [:line_item]).reject{ |a| a.amount == 0 }.reverse_each do |adjustment| + %th{:align => "left"} + %h4 Item + %th{:align => "right", :width => "25%"} + %h4 Qty + %th{:align => "right", :width => "25%"} + %h4 Price + %tbody + - @order.line_items.each do |item| + %tr + %td + %strong= "#{raw(item.variant.product.name)}" + = "#{raw(item.variant.options_text)}" + %br + %small + %em= raw(item.variant.product.supplier.name) + %td{:align => "right"} + = item.quantity + %td{:align => "right"} + = item.display_amount_with_adjustments + %tfoot %tr %td{:align => "right", :colspan => "2"} - = "#{raw(adjustment.label)}:" + Subtotal: %td{:align => "right"} - = adjustment.display_amount - %tr - %td{:align => "right", :colspan => "2"} - %strong Total: - %td{:align => "right"} - %strong= @order.display_total + = display_checkout_subtotal(@order) + - checkout_adjustments_for(@order, exclude: [:line_item]).reject{ |a| a.amount == 0 }.reverse_each do |adjustment| + %tr + %td{:align => "right", :colspan => "2"} + = "#{raw(adjustment.label)}:" + %td{:align => "right"} + = adjustment.display_amount + %tr + %td{:align => "right", :colspan => "2"} + %strong Total: + %td{:align => "right"} + %strong= @order.display_total %p   - if @order.payments.first.andand.payment_method.andand.type == "Spree::PaymentMethod::Check" and @order.payments.first.andand.payment_method.andand.description @@ -137,14 +140,4 @@ -# google maps -%p.callout - #{@order.distributor.contact}, - %br/ - %strong= @order.distributor.name - %br/ - = @order.distributor.phone || "" - %br/ - %a{:href => "mailto:#{@order.distributor.email}", :target => "_blank"} - = @order.distributor.email - %br/ - = @order.distributor.website || "" \ No newline at end of file += render 'shared/mailers/social_and_contact' From 587e4ae86d6cdc65ce18d51684e116c9adf8de8a Mon Sep 17 00:00:00 2001 From: summerscope Date: Fri, 27 Feb 2015 16:08:20 +1100 Subject: [PATCH 3/7] WIP getting all the confirmation details right for collection, delivery, etc. --- app/assets/stylesheets/mail/email.css.sass | 8 ++- .../confirm_email_for_customer.html.haml | 55 ++++++++++--------- 2 files changed, 36 insertions(+), 27 deletions(-) diff --git a/app/assets/stylesheets/mail/email.css.sass b/app/assets/stylesheets/mail/email.css.sass index 38024a1cc4..5f0a91bd72 100644 --- a/app/assets/stylesheets/mail/email.css.sass +++ b/app/assets/stylesheets/mail/email.css.sass @@ -67,7 +67,9 @@ table.order-summary h4 margin-top: 15px tfoot - border-top: 1px solid black + tr:first-child td + border-top: 1px solid black + padding-top: 5px tr td padding-left: 5px padding-right: 5px @@ -260,6 +262,10 @@ ul tr td padding: 15px +.pad + tr td + padding: 15px + .column-wrap padding: 0!important margin: 0 auto diff --git a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml index 166da19ec2..2125b7a5a8 100644 --- a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml @@ -66,19 +66,22 @@ - if @order.payments.first.andand.payment_method.andand.type == "Spree::PaymentMethod::Check" and @order.payments.first.andand.payment_method.andand.description %p.callout + %span{:style => "float:right;"} + PAID or NOT PAID %strong Payment summary - / /Heading Panel - / Payment Summary - %p= @order.payments.first.andand.payment_method.andand.description.andand.html_safe + %h4 + Paying via: + %strong= @order.payments.first.andand.payment_method.andand.name.andand.html_safe + %p + %em= @order.payments.first.andand.payment_method.andand.description.andand.html_safe %p   - if @order.shipping_method.andand.require_ship_address - / Delivery details %p.callout %strong Delivery details - %p - Your order will be delivered to: + + %h4 Delivery address: %p #{@order.ship_address.full_name} %br @@ -91,15 +94,13 @@ #{@order.shipping_method.description.html_safe} - if @order.order_cycle.andand.pickup_time_for(@order.distributor) + %h4 Delivery date: %p - Delivery on: - %br %strong #{@order.order_cycle.pickup_time_for(@order.distributor)} - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) + %h5 Other delivery info: %p - Other delivery information: - %br %strong #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - else @@ -113,31 +114,31 @@ @order.shipping_method.description.html_safe - if @order.order_cycle.andand.pickup_time_for(@order.distributor) - %p - Ready for collection: - %br + %h4 + Ready for collection on: %strong #{@order.order_cycle.pickup_time_for(@order.distributor)} - - - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) + + - if @order.ship_address.full_address %p - Collection instructions: + %strong Collect from: %br - %strong #{@order.order_cycle.pickup_instructions_for(@order.distributor)} + #{@order.ship_address.full_address} + - if @order.shipping_method.andand.description + %br + %em #{@order.shipping_method.description.html_safe} + + - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) + %br + %em #{@order.order_cycle.pickup_instructions_for(@order.distributor)} + - if @order.special_instructions.present? %p %small - Customer notes: + %strong Your notes / custom delivery instructions: %br #{@order.special_instructions} - -# Your order will be ready for collection on - -# %strong{:style => "margin: 0;padding: 0;font-family: \"Helvetica Neue\", \"Helvetica\", Helvetica, Arial, sans-serif;"} - -# Tuesday 07 Dec - -# %p{:style => "margin: 0;padding: 0;font-family: \"Helvetica Neue\", \"Helvetica\", Helvetica, Arial, sans-serif;margin-bottom: 10px;font-weight: normal;font-size: 14px;line-height: 1.6;"} - -# Pick-up your order at the rear of 34 Mason Street, Warragul. See it on - -# %a{:href => "https://goo.gl/maps/T1ArU", :style => "margin: 0;padding: 0;font-family: \"Helvetica Neue\", \"Helvetica\", Helvetica, Arial, sans-serif;color: #0096ad;", :target => "_blank"} - -# google maps %br %p.callout Kind regards, @@ -152,4 +153,6 @@ %a{:href => "mailto:#{@order.distributor.email}", :target => "_blank"} = @order.distributor.email %br - = @order.distributor.website || "" \ No newline at end of file + = @order.distributor.website || "" + + From 4eee86a2404dd3f0d444852e55dccac8552a1f28 Mon Sep 17 00:00:00 2001 From: summerscope Date: Fri, 27 Feb 2015 16:09:14 +1100 Subject: [PATCH 4/7] Tweak label --- .../spree/order_mailer/confirm_email_for_customer.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml index 2125b7a5a8..9f1be86c09 100644 --- a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml @@ -67,7 +67,7 @@ - if @order.payments.first.andand.payment_method.andand.type == "Spree::PaymentMethod::Check" and @order.payments.first.andand.payment_method.andand.description %p.callout %span{:style => "float:right;"} - PAID or NOT PAID + PAID / NOT PAID %strong Payment summary %h4 Paying via: From ba0d4c21112d62cc5f18fdb72e38a086ab253cb9 Mon Sep 17 00:00:00 2001 From: summerscope Date: Fri, 27 Feb 2015 16:55:36 +1100 Subject: [PATCH 5/7] More order confirmation email updates. Making language correct for hub vs user. --- .../confirm_email_for_customer.html.haml | 35 ++++-- .../confirm_email_for_shop.html.haml | 106 ++++++++++-------- 2 files changed, 82 insertions(+), 59 deletions(-) diff --git a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml index 9f1be86c09..4ee414b614 100644 --- a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml @@ -67,7 +67,10 @@ - if @order.payments.first.andand.payment_method.andand.type == "Spree::PaymentMethod::Check" and @order.payments.first.andand.payment_method.andand.description %p.callout %span{:style => "float:right;"} - PAID / NOT PAID + - if @order.paid? + PAID + - else + NOT PAID %strong Payment summary %h4 Paying via: @@ -77,9 +80,19 @@ %p   - if @order.shipping_method.andand.require_ship_address + / Delivery details %p.callout %strong - Delivery details + - if @order.shipping_method.andand.name + #{@order.shipping_method.name.html_safe} + - else + Delivery details + + - if @order.order_cycle.andand.pickup_time_for(@order.distributor) + %h4 + Delivery on: + %strong #{@order.order_cycle.pickup_time_for(@order.distributor)} + %br   %h4 Delivery address: %p @@ -90,16 +103,11 @@ #{@order.ship_address.phone} - if @order.shipping_method.andand.description - %p - #{@order.shipping_method.description.html_safe} - - - if @order.order_cycle.andand.pickup_time_for(@order.distributor) - %h4 Delivery date: - %p - %strong #{@order.order_cycle.pickup_time_for(@order.distributor)} + %p #{@order.shipping_method.description.html_safe} + %br   - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) - %h5 Other delivery info: + %h4 Other delivery info: %p %strong #{@order.order_cycle.pickup_instructions_for(@order.distributor)} @@ -107,7 +115,10 @@ / Collection details %p.callout %strong - Collection details + - if @order.shipping_method.andand.name + #{@order.shipping_method.name.html_safe} + - else + Collection details - if @order.shipping_method.andand.description %p @@ -115,7 +126,7 @@ - if @order.order_cycle.andand.pickup_time_for(@order.distributor) %h4 - Ready for collection on: + Ready for collection: %strong #{@order.order_cycle.pickup_time_for(@order.distributor)} - if @order.ship_address.full_address diff --git a/app/views/spree/order_mailer/confirm_email_for_shop.html.haml b/app/views/spree/order_mailer/confirm_email_for_shop.html.haml index a7a30a35dc..87ed2e7166 100644 --- a/app/views/spree/order_mailer/confirm_email_for_shop.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_shop.html.haml @@ -66,20 +66,36 @@ - if @order.payments.first.andand.payment_method.andand.type == "Spree::PaymentMethod::Check" and @order.payments.first.andand.payment_method.andand.description %p.callout + %span{:style => "float:right;"} + - if @order.paid? + PAID + - else + NOT PAID %strong Payment summary - / /Heading Panel - / Payment Summary - %p= @order.payments.first.andand.payment_method.andand.description.andand.html_safe + %h4 + Paying via: + %strong= @order.payments.first.andand.payment_method.andand.name.andand.html_safe + %p + %em= @order.payments.first.andand.payment_method.andand.description.andand.html_safe %p   - if @order.shipping_method.andand.require_ship_address / Delivery details %p.callout %strong - Delivery details + - if @order.shipping_method.andand.name + #{@order.shipping_method.name.html_safe} + - else + Delivery details + + - if @order.order_cycle.andand.pickup_time_for(@order.distributor) + %h4 + Delivery on: + %strong #{@order.order_cycle.pickup_time_for(@order.distributor)} + %br   + + %h4 Delivery address: %p - Your order will be delivered to: - %br #{@order.ship_address.full_name} %br #{@order.ship_address.full_address} @@ -87,57 +103,53 @@ #{@order.ship_address.phone} - if @order.shipping_method.andand.description - %br - %br - #{@order.shipping_method.description.html_safe} - - - if @order.order_cycle.andand.pickup_time_for(@order.distributor) - %br - %br - Delivery on: #{@order.order_cycle.pickup_time_for(@order.distributor)} + %p #{@order.shipping_method.description.html_safe} + %br   - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) - %br - %br - Other delivery information: #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - - %br + %h4 Other delivery info: + %p + %strong #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - else / Collection details %p.callout %strong - Collection details - %p - - if @order.shipping_method.andand.description - %br - %br - = @order.shipping_method.description.html_safe + - if @order.shipping_method.andand.name + #{@order.shipping_method.name.html_safe} + - else + Collection details + + - if @order.shipping_method.andand.description + %p + @order.shipping_method.description.html_safe - - if @order.order_cycle.andand.pickup_time_for(@order.distributor) + - if @order.order_cycle.andand.pickup_time_for(@order.distributor) + %h4 + Ready for collection: + %strong #{@order.order_cycle.pickup_time_for(@order.distributor)} + + - if @order.ship_address.full_address + %p + %strong Collecting from: %br - %br - Ready for collection: #{@order.order_cycle.pickup_time_for(@order.distributor)} + #{@order.ship_address.full_address} - - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) - %br - %br - Collection instructions: #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - - - if @order.special_instructions.present? - %br - %br - Notes: #{@order.special_instructions} - - %br - - -# Your order will be ready for collection on - -# %strong{:style => "margin: 0;padding: 0;font-family: \"Helvetica Neue\", \"Helvetica\", Helvetica, Arial, sans-serif;"} - -# Tuesday 07 Dec - -# %p{:style => "margin: 0;padding: 0;font-family: \"Helvetica Neue\", \"Helvetica\", Helvetica, Arial, sans-serif;margin-bottom: 10px;font-weight: normal;font-size: 14px;line-height: 1.6;"} - -# Pick-up your order at the rear of 34 Mason Street, Warragul. See it on - -# %a{:href => "https://goo.gl/maps/T1ArU", :style => "margin: 0;padding: 0;font-family: \"Helvetica Neue\", \"Helvetica\", Helvetica, Arial, sans-serif;color: #0096ad;", :target => "_blank"} - -# google maps + - if @order.shipping_method.andand.description + %br + %em #{@order.shipping_method.description.html_safe} + - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) + %br + %em #{@order.order_cycle.pickup_instructions_for(@order.distributor)} + + - if @order.special_instructions.present? + %p + %small + %strong Customer notes / custom delivery instructions: + %br + #{@order.special_instructions} +%p   += render 'shared/mailers/signoff' = render 'shared/mailers/social_and_contact' From 12bfb9301aa373363a63bed32920086052a5d5f4 Mon Sep 17 00:00:00 2001 From: summerscope Date: Fri, 27 Feb 2015 17:09:59 +1100 Subject: [PATCH 6/7] More updates dealing with pick up instructions. --- .../confirm_email_for_customer.html.haml | 36 ++++++++++--------- .../confirm_email_for_shop.html.haml | 34 +++++++++--------- 2 files changed, 37 insertions(+), 33 deletions(-) diff --git a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml index 4ee414b614..83f0f66505 100644 --- a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml @@ -106,10 +106,10 @@ %p #{@order.shipping_method.description.html_safe} %br   - - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) - %h4 Other delivery info: - %p - %strong #{@order.order_cycle.pickup_instructions_for(@order.distributor)} + / - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) + / %h4 Other delivery info: + / %p + / %strong #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - else / Collection details @@ -131,24 +131,26 @@ - if @order.ship_address.full_address %p - %strong Collect from: + %strong Collecting from: %br #{@order.ship_address.full_address} - - if @order.shipping_method.andand.description - %br - %em #{@order.shipping_method.description.html_safe} + - if @order.shipping_method.andand.description + %br + %em #{@order.shipping_method.description.html_safe} - - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) - %br - %em #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - - - if @order.special_instructions.present? + - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) %p - %small - %strong Your notes / custom delivery instructions: - %br - #{@order.special_instructions} + %strong Collection instructions: + %br + %em #{@order.order_cycle.pickup_instructions_for(@order.distributor)} + +- if @order.special_instructions.present? + %p + %small + %strong Customer notes / custom delivery instructions: + %br + #{@order.special_instructions} %br %p.callout diff --git a/app/views/spree/order_mailer/confirm_email_for_shop.html.haml b/app/views/spree/order_mailer/confirm_email_for_shop.html.haml index 87ed2e7166..35c7593f45 100644 --- a/app/views/spree/order_mailer/confirm_email_for_shop.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_shop.html.haml @@ -106,10 +106,10 @@ %p #{@order.shipping_method.description.html_safe} %br   - - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) - %h4 Other delivery info: - %p - %strong #{@order.order_cycle.pickup_instructions_for(@order.distributor)} + / - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) + / %h4 Other delivery info: + / %p + / %strong #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - else / Collection details @@ -135,20 +135,22 @@ %br #{@order.ship_address.full_address} - - if @order.shipping_method.andand.description - %br - %em #{@order.shipping_method.description.html_safe} + - if @order.shipping_method.andand.description + %br + %em #{@order.shipping_method.description.html_safe} - - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) - %br - %em #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - - - if @order.special_instructions.present? + - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) %p - %small - %strong Customer notes / custom delivery instructions: - %br - #{@order.special_instructions} + %strong Collection instructions: + %br + %em #{@order.order_cycle.pickup_instructions_for(@order.distributor)} + +- if @order.special_instructions.present? + %p + %small + %strong Customer notes / custom delivery instructions: + %br + #{@order.special_instructions} %p   = render 'shared/mailers/signoff' From 2c2352cd4eea477cddad33fe879f58ca236e8304 Mon Sep 17 00:00:00 2001 From: summerscope Date: Fri, 27 Feb 2015 17:14:33 +1100 Subject: [PATCH 7/7] Final tweaks to different layout use cases for these emails. --- .../spree/order_mailer/confirm_email_for_customer.html.haml | 5 +++-- .../spree/order_mailer/confirm_email_for_shop.html.haml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml index 83f0f66505..497649f844 100644 --- a/app/views/spree/order_mailer/confirm_email_for_customer.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_customer.html.haml @@ -142,10 +142,11 @@ - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) %p %strong Collection instructions: - %br - %em #{@order.order_cycle.pickup_instructions_for(@order.distributor)} + %br + #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - if @order.special_instructions.present? + %br %p %small %strong Customer notes / custom delivery instructions: diff --git a/app/views/spree/order_mailer/confirm_email_for_shop.html.haml b/app/views/spree/order_mailer/confirm_email_for_shop.html.haml index 35c7593f45..c2dc363876 100644 --- a/app/views/spree/order_mailer/confirm_email_for_shop.html.haml +++ b/app/views/spree/order_mailer/confirm_email_for_shop.html.haml @@ -142,10 +142,11 @@ - if @order.order_cycle.andand.pickup_instructions_for(@order.distributor) %p %strong Collection instructions: - %br - %em #{@order.order_cycle.pickup_instructions_for(@order.distributor)} + %br + #{@order.order_cycle.pickup_instructions_for(@order.distributor)} - if @order.special_instructions.present? + %br %p %small %strong Customer notes / custom delivery instructions: