Merge pull request #12998 from kernal053/add-voucher-to-order-confirmation-emails

Add 'Voucher:' before voucher code on order confirmation emails
This commit is contained in:
Konrad
2025-01-03 14:01:45 +01:00
committed by GitHub
3 changed files with 31 additions and 1 deletions

View File

@@ -43,7 +43,10 @@
- checkout_adjustments_for(@order, exclude: [:line_item]).reverse_each do |adjustment|
%tr
%td{align: "right", colspan: "3"}
= "#{adjustment.label}:"
- if adjustment.originator_type == "Voucher"
= t(:email_order_summary_voucher_label, code: adjustment.label)
- else
= "#{adjustment.label}:"
%td{align: "right"}
= adjustment.display_amount
%tr

View File

@@ -2499,6 +2499,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using
email_order_summary_subtotal: "Subtotal:"
email_order_summary_total: "Total:"
email_order_summary_includes_tax: "(includes tax):"
email_order_summary_voucher_label: "Voucher (%{code}):"
email_payment_paid: PAID
email_payment_not_paid: NOT PAID
email_payment_description: Payment Description at Checkout

View File

@@ -257,4 +257,30 @@ RSpec.describe Spree::OrderMailer do
end
end
end
context "display adjustments" do
let(:order) { create(:order_with_totals_and_distribution, :completed) }
let(:voucher) { create(:voucher, enterprise: order.distributor) }
before do
voucher.create_adjustment(voucher.code, order)
OrderManagement::Order::Updater.new(order).update_voucher
end
let!(:confirmation_email_for_customer) { Spree::OrderMailer.confirm_email_for_customer(order) }
let!(:confirmation_email_for_shop) { Spree::OrderMailer.confirm_email_for_shop(order) }
let!(:cancellation_email) { Spree::OrderMailer.cancel_email(order) }
it "includes Voucher text with label" do
expect(confirmation_email_for_customer.body).to include("Voucher (#{voucher.code}):")
expect(confirmation_email_for_shop.body).to include("Voucher (#{voucher.code}):")
expect(cancellation_email.body).to include("Voucher (#{voucher.code}):")
end
it "includes Shipping label" do
expect(confirmation_email_for_customer.body).to include("Shipping:")
expect(confirmation_email_for_shop.body).to include("Shipping:")
expect(cancellation_email.body).to include("Shipping:")
end
end
end