diff --git a/app/controllers/spree/checkout_controller_decorator.rb b/app/controllers/spree/checkout_controller_decorator.rb index bd2a2cf5..15fa9056 100644 --- a/app/controllers/spree/checkout_controller_decorator.rb +++ b/app/controllers/spree/checkout_controller_decorator.rb @@ -39,11 +39,11 @@ def normalize_addresses if @order.bill_address_id != @order.ship_address_id && bill_address.same_as?(ship_address) @order.update_column(:bill_address_id, ship_address.id) bill_address.destroy - else + elsif params[:save_user_address] bill_address.update_attribute(:user_id, spree_current_user.try(:id)) end - ship_address.update_attribute(:user_id, spree_current_user.try(:id)) + ship_address.update_attribute(:user_id, spree_current_user.try(:id)) if params[:save_user_address] end end end diff --git a/app/views/spree/checkout/_address.html.erb b/app/views/spree/checkout/_address.html.erb index fccb1adf..0f9e64d1 100644 --- a/app/views/spree/checkout/_address.html.erb +++ b/app/views/spree/checkout/_address.html.erb @@ -44,6 +44,13 @@ <% end %> + +

+ <%= label_tag :save_user_address, :id => 'save_user_address' do %> + <%= check_box_tag 'save_user_address', '1' %> + <%= Spree.t(:save_user_address) %> + <% end %> +

diff --git a/spec/features/checkout_address_selection_spec.rb b/spec/features/checkout_address_selection_spec.rb index 3995fa0c..30b587e7 100644 --- a/spec/features/checkout_address_selection_spec.rb +++ b/spec/features/checkout_address_selection_spec.rb @@ -79,6 +79,7 @@ choose I18n.t('address_book.other_address') fill_in_address(shipping, :ship) end + check 'save_user_address' complete_checkout end.to change { user.addresses.count }.by(2) end @@ -94,6 +95,7 @@ choose I18n.t('address_book.other_address') fill_in_address(billing, :ship) end + check 'save_user_address' complete_checkout end.to change { user.addresses.count }.by(1) end @@ -164,6 +166,7 @@ choose I18n.t('address_book.other_address') fill_in_address(shipping, :ship) end + check 'save_user_address' complete_checkout end.to change{ user.addresses.count }.by(1) end @@ -247,6 +250,7 @@ choose I18n.t('address_book.other_address') fill_in_address(billing) end + check 'save_user_address' complete_checkout end.to change{ user.addresses.count }.by(1) end