forgeos_commerce_front 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +339 -0
- data/COPYING.LESSER +165 -0
- data/Gemfile +2 -0
- data/LICENSE +2 -0
- data/README.textile +28 -0
- data/app/assets/images/commerce_front/cart/calulate.png +0 -0
- data/app/assets/images/commerce_front/cart/cart.png +0 -0
- data/app/assets/images/commerce_front/cart/change_quantity.png +0 -0
- data/app/assets/images/commerce_front/cart/delete.png +0 -0
- data/app/assets/images/commerce_front/cart/reduction.png +0 -0
- data/app/assets/images/commerce_front/cart/steps_left.png +0 -0
- data/app/assets/images/commerce_front/cart/steps_right.png +0 -0
- data/app/assets/images/commerce_front/product.jpg +0 -0
- data/app/assets/javascripts/commerce_front/functions.js +10 -0
- data/app/assets/javascripts/commerce_front/init.js +4 -0
- data/app/assets/javascripts/commerce_front/jquery.jnotify.min.js +21 -0
- data/app/assets/stylesheets/commerce_front/_cart.css.sass +97 -0
- data/app/assets/stylesheets/commerce_front/_common.css.sass +13 -0
- data/app/assets/stylesheets/commerce_front/_forms.css.sass +15 -0
- data/app/assets/stylesheets/commerce_front/_jnotify.css.sass +65 -0
- data/app/assets/stylesheets/commerce_front/style.css.sass +4 -0
- data/app/controllers/addresses_controller.rb +71 -0
- data/app/controllers/application_controller.rb +21 -0
- data/app/controllers/cart_controller.rb +144 -0
- data/app/controllers/newsletters_controller.rb +20 -0
- data/app/controllers/order_controller.rb +413 -0
- data/app/controllers/orders_controller.rb +32 -0
- data/app/controllers/person_sessions_controller.rb +23 -0
- data/app/controllers/users_controller.rb +164 -0
- data/app/helpers/application_helper.rb +73 -0
- data/app/helpers/cart_helper.rb +25 -0
- data/app/helpers/order_helper.rb +59 -0
- data/app/models/address.rb +18 -0
- data/app/models/notifier.rb +88 -0
- data/app/models/order.rb +13 -0
- data/app/models/user.rb +16 -0
- data/app/models/user_address.rb +15 -0
- data/app/views/addresses/_address_form.html.haml +18 -0
- data/app/views/addresses/_multiple_address_form.html.haml +27 -0
- data/app/views/cart/_free_products.html.haml +3 -0
- data/app/views/cart/_tbody.html.haml +25 -0
- data/app/views/cart/_total.html.haml +46 -0
- data/app/views/cart/index.html.haml +32 -0
- data/app/views/notifier/newsletter.html.haml +2 -0
- data/app/views/notifier/reset_password.html.haml +9 -0
- data/app/views/notifier/validation_user_account.html.haml +9 -0
- data/app/views/notifier/waiting_for_cheque_notification.html.haml +2 -0
- data/app/views/order/_form_address.html.haml +44 -0
- data/app/views/order/_tbody.html.haml +21 -0
- data/app/views/order/_total.html.haml +50 -0
- data/app/views/order/cheque_payment.html.haml +1 -0
- data/app/views/order/create.html.haml +76 -0
- data/app/views/order/deliveries.html.haml +28 -0
- data/app/views/order/new.html.haml +26 -0
- data/app/views/order/so_colissimo.html.haml +8 -0
- data/app/views/orders/index.html.haml +34 -0
- data/app/views/person_sessions/_form.html.haml +23 -0
- data/app/views/person_sessions/new.html.haml +1 -0
- data/app/views/person_sessions/new_reset_password.html.haml +7 -0
- data/app/views/users/_edit_form.html.haml +61 -0
- data/app/views/users/_form_create.html.haml +27 -0
- data/app/views/users/_form_quick_create.html.haml +16 -0
- data/app/views/users/_login_or_new.html.haml +10 -0
- data/app/views/users/forgotten_password.html.haml +12 -0
- data/app/views/users/new.html.haml +1 -0
- data/app/views/users/new_password.html.haml +10 -0
- data/app/views/users/show.html.haml +1 -0
- data/config/commerce.example.yml +27 -0
- data/config/initializers/commerce_front.rb +6 -0
- data/config/locales/fr.yml +85 -0
- data/config/routes.rb +17 -0
- data/db/migrate/20110311134232_add_form_attributes_to_addresses.rb +9 -0
- data/lib/field_error_proc_changer.rb +19 -0
- data/lib/forgeos/commerce_front.rb +6 -0
- data/lib/forgeos/commerce_front/engine.rb +10 -0
- data/lib/forgeos/commerce_front/version.rb +5 -0
- data/lib/forgeos_commerce_front.rb +1 -0
- data/lib/tasks/install.rake +13 -0
- data/recipes/deploy.rb +6 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +9 -0
- data/test/dummy/app/assets/stylesheets/application.css +7 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +42 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +27 -0
- data/test/dummy/config/environments/production.rb +51 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +58 -0
- data/test/dummy/log/development.log +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/forgeos_commerce_front_test.rb +7 -0
- data/test/test_helper.rb +10 -0
- metadata +197 -0
data/app/models/order.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
load File.join(Gem.loaded_specs['forgeos_commerce'].full_gem_path, 'app', 'models', 'order.rb')
|
2
|
+
Order.class_eval do
|
3
|
+
|
4
|
+
private
|
5
|
+
|
6
|
+
def waiting_for_cheque_event_with_notification
|
7
|
+
waiting_for_cheque_event_without_notification
|
8
|
+
if self.user
|
9
|
+
Notifier.deliver_waiting_for_cheque_notification(self)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
alias_method_chain :waiting_for_cheque_event, :notification
|
13
|
+
end
|
data/app/models/user.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
load File.join(Gem.loaded_specs['forgeos_commerce'].full_gem_path, 'app', 'models', 'user.rb')
|
2
|
+
User.class_eval do
|
3
|
+
validates_confirmation_of :email, :if => :confirm_email?
|
4
|
+
|
5
|
+
def confirm_email?
|
6
|
+
Forgeos::CONFIG[:account]['checkout_quick_create']
|
7
|
+
end
|
8
|
+
|
9
|
+
def skip_presence_of_lastname?
|
10
|
+
not Forgeos::CONFIG[:account]['checkout_quick_create']
|
11
|
+
end
|
12
|
+
|
13
|
+
def skip_presence_of_firstname?
|
14
|
+
not Forgeos::CONFIG[:account]['checkout_quick_create']
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
load File.join(Gem.loaded_specs['forgeos_commerce'].full_gem_path, 'app', 'models', 'user_address.rb')
|
2
|
+
UserAddress.class_eval do
|
3
|
+
|
4
|
+
if Forgeos::CONFIG[:addresses] and mandatory_fields = Forgeos::CONFIG[:addresses]['mandatory_fields']
|
5
|
+
validates *mandatory_fields, :presence => true
|
6
|
+
end
|
7
|
+
|
8
|
+
def to_s
|
9
|
+
"#{I18n.t civility, :scope => [:civility, :label]} #{firstname} #{name} <br /> #{address} <br /> #{address_2} <br /> #{zip_code} #{city} <br />#{country.name.upcase}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def designation
|
13
|
+
self.class.to_s.underscore
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
.grid_5
|
2
|
+
= f.label :address, "#{t(:address, :count => 1).capitalize} <em>*</em>"
|
3
|
+
= f.text_field :address
|
4
|
+
= f.text_field :address_2
|
5
|
+
.clear
|
6
|
+
.grid_2
|
7
|
+
= f.label :zip_code, "#{t(:zip_code).capitalize} <em>*</em>"
|
8
|
+
= f.text_field :zip_code
|
9
|
+
.clear
|
10
|
+
.grid_5
|
11
|
+
= f.label :city, "#{t(:city).capitalize} <em>*</em>"
|
12
|
+
= f.text_field :city
|
13
|
+
.clear
|
14
|
+
|
15
|
+
.grid_5
|
16
|
+
= f.label :country_id, "#{t(:country).capitalize} <em>*</em>"
|
17
|
+
= f.select :country_id, options_for_countries(f.object.country_id)
|
18
|
+
.clear
|
@@ -0,0 +1,27 @@
|
|
1
|
+
- form_for(address) do |f|
|
2
|
+
= link_to_remote(t(:delete), :url => user_address_path(f.object), :method => :delete, :confirm => "Voulez-vous vraiment supprimer cette adresse ?") unless f.object.new_record?
|
3
|
+
.grid_8
|
4
|
+
= f.label :address, "#{t(:address, :count => 1)} <em>*</em>"
|
5
|
+
= f.text_field :address
|
6
|
+
= f.text_field :address_2
|
7
|
+
.clear
|
8
|
+
.grid_2
|
9
|
+
= f.label :zip_code, "#{:zip_code} <em>*</em>"
|
10
|
+
= f.text_field :zip_code, :class => 'textpg'
|
11
|
+
.grid_3
|
12
|
+
= f.label :city, "#{t(:city)} <em>*</em>"
|
13
|
+
= f.text_field :city
|
14
|
+
.grid_3
|
15
|
+
= f.label :country_id, "#{t(:country)} <em>*</em>"
|
16
|
+
= f.select :country_id, options_for_countries(f.object.country_id)
|
17
|
+
.clear
|
18
|
+
//.grid_4
|
19
|
+
// = f.label :phone, "#{t(:phone)} <em>*</em>"
|
20
|
+
// = f.text_field :phone
|
21
|
+
//.grid_4
|
22
|
+
// = f.label :other_phone, "#{:other_phone}"
|
23
|
+
// = f.text_field :other_phone
|
24
|
+
//.clear
|
25
|
+
.requiredinfo
|
26
|
+
* #{t(:mandatory_field, :count => 2)}
|
27
|
+
.clear
|
@@ -0,0 +1,25 @@
|
|
1
|
+
- unless current_cart.cart_items.nil? || current_cart.cart_items.empty?
|
2
|
+
- current_cart.cart_items.each do |cart_product|
|
3
|
+
- product = cart_product.product
|
4
|
+
%tr{:id => product.sku}
|
5
|
+
%td.delete.center
|
6
|
+
= remove_cart_product_link(cart_product.id)
|
7
|
+
%td.article
|
8
|
+
.grid_4
|
9
|
+
= image_tag '/images/commerce_front/product.jpg'
|
10
|
+
%p.grid_3.product_info
|
11
|
+
= link_to product.name, [:seo, product]
|
12
|
+
%span Catégorie
|
13
|
+
%span
|
14
|
+
Réf.
|
15
|
+
= product.sku
|
16
|
+
%td.quantity.center
|
17
|
+
= link_to_function '-', remote_function(:url => {:controller => 'cart', :action => 'update_quantity', :id => cart_product.id, :quantity => cart_product.quantity-1}), :class=> 'less_product'
|
18
|
+
= text_field_tag 'quantity', cart_product.quantity, :onchange => remote_function( :url => {:controller => 'cart', :action => 'update_quantity', :id => cart_product.id }, :with => "'quantity='+$(this).val()"), :class => 'quantity'
|
19
|
+
= link_to_function '+', remote_function({:url => {:controller => 'cart', :action => 'update_quantity', :id => cart_product.id, :quantity => cart_product.quantity+1}}), :class=> 'more_product'
|
20
|
+
%td.price.center
|
21
|
+
= price_with_currency(product.old_price)
|
22
|
+
%td.reduction.center
|
23
|
+
= price_with_currency(product.discount*cart_product.quantity)
|
24
|
+
%td.total_price.center
|
25
|
+
= price_with_currency(cart_product.total)
|
@@ -0,0 +1,46 @@
|
|
1
|
+
.total_block
|
2
|
+
.block
|
3
|
+
.grid_4.alignright
|
4
|
+
Sous total panier
|
5
|
+
.grid_6.alpha.omega
|
6
|
+
%span.space
|
7
|
+
|
8
|
+
= price_with_currency(current_cart.total({:cart_voucher_discount => false, :cart_special_offer_discount => false, :product_voucher_discount => false, :patronage => false, :cart_packaging => false }))
|
9
|
+
.clear
|
10
|
+
.clear
|
11
|
+
.block
|
12
|
+
.grid_4.alignright
|
13
|
+
Réduction panier
|
14
|
+
.grid_6.alpha.omega
|
15
|
+
%span.space
|
16
|
+
|
17
|
+
= price_with_currency(current_cart.discount)
|
18
|
+
.clear
|
19
|
+
%br
|
20
|
+
- if current_cart.packaging_price != 0
|
21
|
+
.block
|
22
|
+
.grid_3.alignleft
|
23
|
+
Frais d'emballage
|
24
|
+
.grid_3.alpha.omega.alignright
|
25
|
+
%span.space
|
26
|
+
|
27
|
+
= price_with_currency(current_cart.packaging_price)
|
28
|
+
.clear
|
29
|
+
#total_block.block
|
30
|
+
.grid_4.alignright
|
31
|
+
Prix total TTC
|
32
|
+
.grid_6.alpha.omega
|
33
|
+
%span.big_price
|
34
|
+
#{price_with_currency(current_cart.total)} TTC
|
35
|
+
.clear
|
36
|
+
|
37
|
+
.order_block
|
38
|
+
.grid_4.alignright
|
39
|
+
- link_to root_path do
|
40
|
+
Continuer vos achats
|
41
|
+
.grid_6.alpha.omega
|
42
|
+
- form_tag url_for(:controller => 'order', :action => 'deliveries'), :method => :post do
|
43
|
+
%span.space
|
44
|
+
|
45
|
+
= submit_tag 'Commander'
|
46
|
+
.clear
|
@@ -0,0 +1,32 @@
|
|
1
|
+
= step_order(0)
|
2
|
+
.clear
|
3
|
+
|
4
|
+
- unless current_cart.cart_items.empty?
|
5
|
+
.grid_24.cart_content
|
6
|
+
%table#cart_table
|
7
|
+
%thead
|
8
|
+
%tr
|
9
|
+
%th{ :colspan => 2 } Produit
|
10
|
+
%th Quantité
|
11
|
+
%th Prix unitaire
|
12
|
+
%th Réduction
|
13
|
+
%th Prix total
|
14
|
+
%tbody#tbody
|
15
|
+
= render :partial => 'tbody'
|
16
|
+
|
17
|
+
.grid_24#total
|
18
|
+
.grid_9.prefix_1
|
19
|
+
= display_voucher
|
20
|
+
#voucher_message
|
21
|
+
- if current_cart.voucher
|
22
|
+
- voucher = VoucherRule.find_by_id(current_cart.voucher)
|
23
|
+
%span= "Code validé ! #{voucher.name}" unless voucher.nil?
|
24
|
+
#free_products
|
25
|
+
= render :partial => 'free_products'
|
26
|
+
.grid_10.prefix_3.omega#cart_total
|
27
|
+
= render :partial => 'total'
|
28
|
+
|
29
|
+
- else
|
30
|
+
Il n'y a pas de produit dans votre panier
|
31
|
+
|
32
|
+
.clear
|
@@ -0,0 +1,44 @@
|
|
1
|
+
= address.hidden_field :designation, :value => (address.object.designation or 'default')
|
2
|
+
= address.hidden_field :civility, :value => 0
|
3
|
+
= address.hidden_field :id, :value => current_cart_address.id unless current_cart_address.nil?
|
4
|
+
|
5
|
+
.champ.grid_6
|
6
|
+
.grid_2
|
7
|
+
= address.label :name, "Nom #{content_tag(:em, '*')}"
|
8
|
+
= address.text_field :name
|
9
|
+
.champ.grid_6
|
10
|
+
.grid_2
|
11
|
+
= address.label :firstname, "Prénom #{content_tag(:em, '*')}"
|
12
|
+
= address.text_field :firstname
|
13
|
+
.champ.grid_6
|
14
|
+
.grid_2
|
15
|
+
= address.label :address, "Adresse #{content_tag(:em, '*')}"
|
16
|
+
= address.text_field :address
|
17
|
+
.champ.grid_6
|
18
|
+
.grid_2
|
19
|
+
= address.label :zip_code, "Code postal #{content_tag(:em, '*')}"
|
20
|
+
= address.text_field :zip_code
|
21
|
+
.champ.grid_6
|
22
|
+
.grid_2
|
23
|
+
= address.label :city, "Ville #{content_tag(:em, '*')}"
|
24
|
+
= address.text_field :city
|
25
|
+
|
26
|
+
.champ.grid_6
|
27
|
+
.grid_2
|
28
|
+
= address.label :country_id, "Pays #{content_tag(:em, '*')}"
|
29
|
+
- countries = Country.find_all_by_printable_name(['France','Belgium'], :select => 'id,printable_name', :order=>'printable_name')
|
30
|
+
- options = options_from_collection_for_select(countries, :id, :printable_name, (!address.object.nil? && !address.object.country.nil?) ? address.object.country.id : 258419522 )
|
31
|
+
= address.select :country_id, options
|
32
|
+
|
33
|
+
- if address.object.form
|
34
|
+
- address.object.form.form_attributes.each do |form_attribute|
|
35
|
+
- if form_attribute.is_a? TextAttribute
|
36
|
+
.champ.grid_6
|
37
|
+
.grid_2
|
38
|
+
%label
|
39
|
+
= form_attribute.name
|
40
|
+
- if form_attribute.validate
|
41
|
+
%em *
|
42
|
+
= text_field_tag "order[#{address.object.type.underscore}_attributes[form_attributes[#{form_attribute.access_method}]]]", address.object.form_attributes[form_attribute.access_method]
|
43
|
+
|
44
|
+
.clear
|
@@ -0,0 +1,21 @@
|
|
1
|
+
- unless @order.order_details.nil? || @order.order_details.empty?
|
2
|
+
- @order.order_details.each do |order_detail|
|
3
|
+
- product = order_detail.product
|
4
|
+
%tr{:id => product.sku}
|
5
|
+
%td.article
|
6
|
+
.grid_4
|
7
|
+
= image_tag '/images/commerce_front/product.jpg'
|
8
|
+
%p.grid_3.product_info
|
9
|
+
= link_to product.name, [:seo, product]
|
10
|
+
%span Catégorie
|
11
|
+
%span
|
12
|
+
Réf.
|
13
|
+
= product.sku
|
14
|
+
%td.quantity.center
|
15
|
+
= text_field_tag 'quantity', order_detail.quantity, :class => 'quantity'
|
16
|
+
%td.price.center
|
17
|
+
= price_with_currency(product.old_price)
|
18
|
+
%td.reduction.center
|
19
|
+
= price_with_currency(order_detail.discount(:voucher_discount => false)*order_detail.quantity)
|
20
|
+
%td.total_price.center
|
21
|
+
= price_with_currency(order_detail.total)
|
@@ -0,0 +1,50 @@
|
|
1
|
+
.total_block
|
2
|
+
.block
|
3
|
+
.grid_4.alignright
|
4
|
+
Sous total panier
|
5
|
+
.grid_6.alpha.omega
|
6
|
+
%span.space
|
7
|
+
|
8
|
+
= price_with_currency(@order.total({:cart_voucher_discount => false, :cart_special_offer_discount => false, :product_voucher_discount => false, :patronage => false}))
|
9
|
+
.clear
|
10
|
+
.clear
|
11
|
+
.block
|
12
|
+
.grid_4.alignright
|
13
|
+
Réduction panier
|
14
|
+
.grid_6.alpha.omega
|
15
|
+
%span.space
|
16
|
+
|
17
|
+
= price_with_currency(@order.discount)
|
18
|
+
.clear
|
19
|
+
%br
|
20
|
+
- if current_cart.packaging_price != 0
|
21
|
+
.block
|
22
|
+
.grid_3.alignleft
|
23
|
+
Frais d'emballage
|
24
|
+
.grid_3.alpha.omega.alignright
|
25
|
+
%span.space
|
26
|
+
|
27
|
+
= price_with_currency(current_cart.packaging_price)
|
28
|
+
.clear
|
29
|
+
#total_block.block
|
30
|
+
.grid_4.alignright
|
31
|
+
Prix total TTC
|
32
|
+
.grid_6.alpha.omega
|
33
|
+
%span.big_price
|
34
|
+
#{price_with_currency(@order.total)} TTC
|
35
|
+
.clear
|
36
|
+
|
37
|
+
.order_block
|
38
|
+
.grid_4.alignright
|
39
|
+
- link_to root_path do
|
40
|
+
Continuer vos achats
|
41
|
+
.grid_6.alpha.omega
|
42
|
+
- #TODO Use trnaslations and config
|
43
|
+
- form_tag url_for(:controller => 'order', :action => 'create'), :method => :post do
|
44
|
+
%h4 Choisissez votre mode de paiement
|
45
|
+
= payment_methods_list
|
46
|
+
.conditionpay
|
47
|
+
= check_box_tag("validchk")
|
48
|
+
%label J'accepte les conditions générales de vente
|
49
|
+
= submit_tag 'Commander'
|
50
|
+
.clear
|
@@ -0,0 +1 @@
|
|
1
|
+
= display_cheque_message
|
@@ -0,0 +1,76 @@
|
|
1
|
+
- if setting = Setting.first and setting.google_account.present? and setting.google_affiliation_store_name.present?
|
2
|
+
- content_for :google do
|
3
|
+
- javascript_tag do
|
4
|
+
var _gaq = _gaq || [];
|
5
|
+
= "_gaq.push(['_setAccount', '#{setting.google_account}' ]);"
|
6
|
+
_gaq.push(['_trackPageview']);
|
7
|
+
_gaq.push(['_addTrans',
|
8
|
+
= "'#{@order.reference}', // order ID - required"
|
9
|
+
= "'#{setting.google_affiliation_store_name}', // affiliation or store name"
|
10
|
+
= "'#{@order.total}', // total - required"
|
11
|
+
= "'#{@order.taxes.to_f}', // tax"
|
12
|
+
= "'#{@order.order_shipping.price.to_f}', // shipping"
|
13
|
+
= "'#{@order.address_delivery.city}', // city"
|
14
|
+
= "'#{@order.address_delivery.zip_code}', // state or province"
|
15
|
+
= "'#{@order.address_delivery.country.iso}' // country"
|
16
|
+
]);
|
17
|
+
|
18
|
+
- @order.order_details.each do |item|
|
19
|
+
- javascript_tag do
|
20
|
+
_gaq.push(['_addItem',
|
21
|
+
= "'#{@order.reference}', // order ID - required"
|
22
|
+
= "'#{item.sku}', // SKU/code - required"
|
23
|
+
= "'#{item.name}', // product name"
|
24
|
+
= "'#{item.product.product_type.name}', // category or variation"
|
25
|
+
= "'#{item.price}', // unit price - required"
|
26
|
+
= "'#{item.quantity}' // quantity - required"
|
27
|
+
]);
|
28
|
+
_gaq.push(['_trackTrans']); //submits transaction to the Analytics servers
|
29
|
+
|
30
|
+
(function() {
|
31
|
+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
32
|
+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
33
|
+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
34
|
+
})();
|
35
|
+
|
36
|
+
|
37
|
+
.grid_16
|
38
|
+
- case @order.payment_type
|
39
|
+
- when t("cmc_cic", :scope => 'payment', :count => 1)
|
40
|
+
%form{ :action => @payment.delete(:url_payment), :method => "post", :id => "payment_form"}
|
41
|
+
- @payment.each do |key,value|
|
42
|
+
= hidden_field_tag key, value unless key == :key
|
43
|
+
.payment_message
|
44
|
+
%p Vous aller être redirigé vers l'interface de paiement de la banque dans quelques instants
|
45
|
+
%img{:src => '/images/front/ajax-loader-2.gif'}
|
46
|
+
|
47
|
+
- when t("cyberplus", :scope => 'payment', :count => 1)
|
48
|
+
- form_tag('https://systempay.cyberpluspaiement.com/vads-payment/', :autocomplete => 'off', :id => 'payment_form') do
|
49
|
+
- @payment.each do |key,value|
|
50
|
+
= hidden_field_tag key, value unless key == :key
|
51
|
+
|
52
|
+
.payment_message
|
53
|
+
%p Vous aller être redirigé vers l'interface de paiement de la banque dans quelques instants
|
54
|
+
%img{:src => '/images/front/ajax-loader-2.gif'}
|
55
|
+
|
56
|
+
- when t("elysnet", :scope => 'payment', :count => 1)
|
57
|
+
= @payment
|
58
|
+
|
59
|
+
.payment_message
|
60
|
+
%p Vous aller être redirigé vers l'interface de paiement de la banque dans quelques instants
|
61
|
+
%img{:src => '/images/front/ajax-loader-2.gif'}
|
62
|
+
|
63
|
+
- when t("paypal", :scope => 'payment', :count => 1)
|
64
|
+
%form{ :action => @url_paypal, :id => 'payment_form'}
|
65
|
+
= hidden_field_tag :cmd, "_s-xclick"
|
66
|
+
= hidden_field_tag :encrypted, @order.paypal_encrypted
|
67
|
+
|
68
|
+
.payment_message
|
69
|
+
%p Vous aller être redirigé vers Paypal dans quelques instants
|
70
|
+
%img{:src => '/images/front/ajax-loader-2.gif'}
|
71
|
+
|
72
|
+
.clear
|
73
|
+
.clear
|
74
|
+
|
75
|
+
= javascript_tag "jQuery('#payment_form').submit();"
|
76
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
= step_order(1)
|
2
|
+
.clear
|
3
|
+
|
4
|
+
.grid_24
|
5
|
+
%h2 1 - Mode de livraison
|
6
|
+
|
7
|
+
.clear
|
8
|
+
.grid_24
|
9
|
+
- form_for(@order, :url => {:controller => 'order', :action => 'new'}) do |order|
|
10
|
+
.grid_12
|
11
|
+
%h2 2 - Adresse de facturation
|
12
|
+
%span Cette commande sera facturée à cette adresse
|
13
|
+
- unless order.object.address_invoice
|
14
|
+
- unless current_user.address_invoice.nil?
|
15
|
+
- order.object.build_address_invoice(current_user.address_invoice.attributes)
|
16
|
+
- else
|
17
|
+
- order.object.build_address_invoice
|
18
|
+
- order.fields_for :address_invoice do |address|
|
19
|
+
= render :partial => 'form_address', :locals => {:address => address, :current_cart_address => current_cart.address_invoice}
|
20
|
+
|
21
|
+
.grid_12
|
22
|
+
%h2 3 - Adresse de livraison
|
23
|
+
%span Cette commande sera livrée à cette adresse
|
24
|
+
- order.object.build_address_delivery unless order.object.address_delivery
|
25
|
+
- order.fields_for :address_delivery do |address|
|
26
|
+
= render :partial => 'form_address', :locals => {:address => address, :current_cart_address => current_cart.address_delivery}
|
27
|
+
.clear
|
28
|
+
= order.submit 'Mode de paiement'
|