forgeos_commerce_front 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. data/COPYING +339 -0
  2. data/COPYING.LESSER +165 -0
  3. data/Gemfile +2 -0
  4. data/LICENSE +2 -0
  5. data/README.textile +28 -0
  6. data/app/assets/images/commerce_front/cart/calulate.png +0 -0
  7. data/app/assets/images/commerce_front/cart/cart.png +0 -0
  8. data/app/assets/images/commerce_front/cart/change_quantity.png +0 -0
  9. data/app/assets/images/commerce_front/cart/delete.png +0 -0
  10. data/app/assets/images/commerce_front/cart/reduction.png +0 -0
  11. data/app/assets/images/commerce_front/cart/steps_left.png +0 -0
  12. data/app/assets/images/commerce_front/cart/steps_right.png +0 -0
  13. data/app/assets/images/commerce_front/product.jpg +0 -0
  14. data/app/assets/javascripts/commerce_front/functions.js +10 -0
  15. data/app/assets/javascripts/commerce_front/init.js +4 -0
  16. data/app/assets/javascripts/commerce_front/jquery.jnotify.min.js +21 -0
  17. data/app/assets/stylesheets/commerce_front/_cart.css.sass +97 -0
  18. data/app/assets/stylesheets/commerce_front/_common.css.sass +13 -0
  19. data/app/assets/stylesheets/commerce_front/_forms.css.sass +15 -0
  20. data/app/assets/stylesheets/commerce_front/_jnotify.css.sass +65 -0
  21. data/app/assets/stylesheets/commerce_front/style.css.sass +4 -0
  22. data/app/controllers/addresses_controller.rb +71 -0
  23. data/app/controllers/application_controller.rb +21 -0
  24. data/app/controllers/cart_controller.rb +144 -0
  25. data/app/controllers/newsletters_controller.rb +20 -0
  26. data/app/controllers/order_controller.rb +413 -0
  27. data/app/controllers/orders_controller.rb +32 -0
  28. data/app/controllers/person_sessions_controller.rb +23 -0
  29. data/app/controllers/users_controller.rb +164 -0
  30. data/app/helpers/application_helper.rb +73 -0
  31. data/app/helpers/cart_helper.rb +25 -0
  32. data/app/helpers/order_helper.rb +59 -0
  33. data/app/models/address.rb +18 -0
  34. data/app/models/notifier.rb +88 -0
  35. data/app/models/order.rb +13 -0
  36. data/app/models/user.rb +16 -0
  37. data/app/models/user_address.rb +15 -0
  38. data/app/views/addresses/_address_form.html.haml +18 -0
  39. data/app/views/addresses/_multiple_address_form.html.haml +27 -0
  40. data/app/views/cart/_free_products.html.haml +3 -0
  41. data/app/views/cart/_tbody.html.haml +25 -0
  42. data/app/views/cart/_total.html.haml +46 -0
  43. data/app/views/cart/index.html.haml +32 -0
  44. data/app/views/notifier/newsletter.html.haml +2 -0
  45. data/app/views/notifier/reset_password.html.haml +9 -0
  46. data/app/views/notifier/validation_user_account.html.haml +9 -0
  47. data/app/views/notifier/waiting_for_cheque_notification.html.haml +2 -0
  48. data/app/views/order/_form_address.html.haml +44 -0
  49. data/app/views/order/_tbody.html.haml +21 -0
  50. data/app/views/order/_total.html.haml +50 -0
  51. data/app/views/order/cheque_payment.html.haml +1 -0
  52. data/app/views/order/create.html.haml +76 -0
  53. data/app/views/order/deliveries.html.haml +28 -0
  54. data/app/views/order/new.html.haml +26 -0
  55. data/app/views/order/so_colissimo.html.haml +8 -0
  56. data/app/views/orders/index.html.haml +34 -0
  57. data/app/views/person_sessions/_form.html.haml +23 -0
  58. data/app/views/person_sessions/new.html.haml +1 -0
  59. data/app/views/person_sessions/new_reset_password.html.haml +7 -0
  60. data/app/views/users/_edit_form.html.haml +61 -0
  61. data/app/views/users/_form_create.html.haml +27 -0
  62. data/app/views/users/_form_quick_create.html.haml +16 -0
  63. data/app/views/users/_login_or_new.html.haml +10 -0
  64. data/app/views/users/forgotten_password.html.haml +12 -0
  65. data/app/views/users/new.html.haml +1 -0
  66. data/app/views/users/new_password.html.haml +10 -0
  67. data/app/views/users/show.html.haml +1 -0
  68. data/config/commerce.example.yml +27 -0
  69. data/config/initializers/commerce_front.rb +6 -0
  70. data/config/locales/fr.yml +85 -0
  71. data/config/routes.rb +17 -0
  72. data/db/migrate/20110311134232_add_form_attributes_to_addresses.rb +9 -0
  73. data/lib/field_error_proc_changer.rb +19 -0
  74. data/lib/forgeos/commerce_front.rb +6 -0
  75. data/lib/forgeos/commerce_front/engine.rb +10 -0
  76. data/lib/forgeos/commerce_front/version.rb +5 -0
  77. data/lib/forgeos_commerce_front.rb +1 -0
  78. data/lib/tasks/install.rake +13 -0
  79. data/recipes/deploy.rb +6 -0
  80. data/test/dummy/Rakefile +7 -0
  81. data/test/dummy/app/assets/javascripts/application.js +9 -0
  82. data/test/dummy/app/assets/stylesheets/application.css +7 -0
  83. data/test/dummy/app/controllers/application_controller.rb +3 -0
  84. data/test/dummy/app/helpers/application_helper.rb +2 -0
  85. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  86. data/test/dummy/config.ru +4 -0
  87. data/test/dummy/config/application.rb +42 -0
  88. data/test/dummy/config/boot.rb +10 -0
  89. data/test/dummy/config/database.yml +25 -0
  90. data/test/dummy/config/environment.rb +5 -0
  91. data/test/dummy/config/environments/development.rb +27 -0
  92. data/test/dummy/config/environments/production.rb +51 -0
  93. data/test/dummy/config/environments/test.rb +39 -0
  94. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  95. data/test/dummy/config/initializers/inflections.rb +10 -0
  96. data/test/dummy/config/initializers/mime_types.rb +5 -0
  97. data/test/dummy/config/initializers/secret_token.rb +7 -0
  98. data/test/dummy/config/initializers/session_store.rb +8 -0
  99. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  100. data/test/dummy/config/locales/en.yml +5 -0
  101. data/test/dummy/config/routes.rb +58 -0
  102. data/test/dummy/log/development.log +0 -0
  103. data/test/dummy/public/404.html +26 -0
  104. data/test/dummy/public/422.html +26 -0
  105. data/test/dummy/public/500.html +26 -0
  106. data/test/dummy/public/favicon.ico +0 -0
  107. data/test/dummy/script/rails +6 -0
  108. data/test/forgeos_commerce_front_test.rb +7 -0
  109. data/test/test_helper.rb +10 -0
  110. metadata +197 -0
@@ -0,0 +1,26 @@
1
+ = step_order(3)
2
+ .clear
3
+
4
+ - unless @order.order_details.empty?
5
+ .grid_24.cart_content
6
+ %table#cart_table
7
+ %thead
8
+ %tr
9
+ %th 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
+ =# render :partial => 'free_products'
20
+ .grid_10.prefix_3.omega#cart_total
21
+ = render :partial => 'total'
22
+
23
+ - else
24
+ Il n'y a pas de produit dans votre panier
25
+
26
+ .clear
@@ -0,0 +1,8 @@
1
+ - form_tag(@_url, :autocomplete => 'off', :id => 'payment_form') do
2
+ - @colissimo.each do |key,value|
3
+ = hidden_field_tag key, value unless key == :key
4
+ .center
5
+ %p
6
+ Merci pour votre confiance, vous allez être redirigé vers l'interface "So Colissimo" dans quelques instant
7
+ %br
8
+ = javascript_tag "jQuery('#payment_form').submit();"
@@ -0,0 +1,34 @@
1
+ .myaccount
2
+ %h2
3
+ Mon compte
4
+ .clear
5
+ .suiviorder.grid_16
6
+ .titresuivi.grid_4
7
+ %h4
8
+ = t(:order_list)
9
+ .clear
10
+ - unless @orders.empty?
11
+ %table
12
+ - @orders.each do |order|
13
+ %thead
14
+ %tr
15
+ %th= t(:order_reference)
16
+ %th= t(:order_date)
17
+ %th= t(:shipping)
18
+ %th= t(:amount)
19
+ %th= t(:status)
20
+ %tbody
21
+ %tr
22
+ %td
23
+ = "Commande n°#{order.id}"
24
+ .datecommande.commande
25
+ = order.created_at.strftime('%d/%m/%Y')
26
+ .detailscommande.commande
27
+ = t(:articles, :count => order.order_details.count)
28
+ pour un montant de
29
+ = price_with_currency(order.total)
30
+ TTC
31
+ .livraisoncommande.commande
32
+ = t(order.status, :scope => :order_status)
33
+ .detailcommande.commande
34
+ = link_to('Détail', order_path(order, :format => :pdf))
@@ -0,0 +1,23 @@
1
+ - form_for(@person_session || PersonSession.new, :url => person_session_path, :html => { :class => 'account-form' }) do |f|
2
+ .person-session-form
3
+ .grid_2
4
+ = f.label :email, "#{t(:email)} <span class='required'>*</span>"
5
+ .grid_4
6
+ = f.text_field :email
7
+ .clear
8
+ .grid_2
9
+ = f.label :password, "#{t(:password)} <span class='required'>*</span>"
10
+ .grid_4
11
+ = f.password_field :password
12
+ .clear
13
+ .grid_4.prefix_2
14
+ - link_to forgotten_password_user_path, :id => 'reset_password_link' do
15
+ = t('get_forgotten_password').capitalize
16
+ .grid_4.prefix_2
17
+ = f.check_box :remember_me, :value => '1'
18
+ = f.label :remember_me, t(:remember_me).capitalize, :class => 'remember'
19
+ %br
20
+ = f.submit t('log.in.action').capitalize, :class => 'submit_contact'
21
+ .clear
22
+ %p.mandatory-field
23
+ * #{t(:mandatory_field, :count => 2)}
@@ -0,0 +1 @@
1
+ = render :partial => '/users/login_or_new'
@@ -0,0 +1,7 @@
1
+ %h2 Récupérer un nouveau mot de passe
2
+ - form_tag :action => 'reset_admin_password' do
3
+ %fieldset.account-form
4
+ = label_tag :email, I18n.t('email').capitalize
5
+ = text_field_tag 'email', nil, :class => 'text'
6
+ = submit_tag 'envoyer', :class => 'submit-connexion commander'
7
+ = link_to "Retour à la page précédente", :action => 'new'
@@ -0,0 +1,61 @@
1
+ .myaccount
2
+ - form_for(@user, :url => user_path, :html => { :multipart => true, :autocomplete => false }) do |f|
3
+ .profile
4
+ %h2
5
+ = t(:profile, :scope => [:user, :part]).capitalize
6
+ .grid_5
7
+ - login_field = Forgeos::CONFIG[:login]['login_field']
8
+ = f.label(login_field, t(:uid, :scope => :user).capitalize)
9
+ = f.text_field(login_field)
10
+ .clear
11
+ //.grid_5
12
+ = password_fields(f)
13
+ .clear
14
+ - if Forgeos::CONFIG[:newsletter]['active']
15
+ .grid_5.newsletter
16
+ = f.check_box(:newsletter)
17
+ = f.label(:newsletter, t(:i_want, :scope => :newsletter).capitalize)
18
+ .clear
19
+
20
+ - if Forgeos::CONFIG[:account]['avatar']['active']
21
+ .avatar
22
+ - current_user.build_avatar unless current_user.avatar
23
+ - f.fields_for :avatar do |avatar|
24
+ = display_avatar(current_user.avatar)
25
+ = avatar.file_field :uploaded_data
26
+ .clear
27
+ .coord
28
+ %h2
29
+ = t(:infos, :scope => [:user, :part]).capitalize
30
+ .grid_5
31
+ = f.label :civility, "#{t(:civility, :count => 1).capitalize} <em>*</em>"
32
+ = f.select :civility, options_for_select([['Mr',0],['Mme',1],['Mlle',2],['Société',3]])
33
+ .clear
34
+
35
+ .grid_5
36
+ = f.label :lastname, "#{t(:lastname).capitalize} <em>*</em>"
37
+ = f.text_field :lastname
38
+ .clear
39
+ .grid_5
40
+ = f.label :firstname, "#{t(:firstname).capitalize} <em>*</em>"
41
+ = f.text_field :firstname
42
+ .clear
43
+ .grid_5
44
+ = f.label :phone, "#{t(:phone).capitalize} <em>*</em>"
45
+ = f.text_field :phone
46
+ .clear
47
+
48
+ .address
49
+ - multiple_addresses = Forgeos::CONFIG[:addresses]['multiple_addresses']
50
+ - if multiple_addresses
51
+ - @user.build_address_delivery unless @user.address_delivery
52
+ = render :partial => '/addresses/multiple_address_form', :locals => {:address => @user.address_invoice}
53
+ - else
54
+ %h2= t(:address, :count => 1, :scope => [:user, :part]).capitalize
55
+ - f.object.build_address_invoice unless f.object.address_invoice
56
+ - f.fields_for :address_invoice do |address|
57
+ = render :partial => '/addresses/address_form', :locals => {:f => address}
58
+ .requiredinfo
59
+ * #{t(:mandatory_field, :count => 2)}
60
+ = f.submit t('action', :scope => [:user, :update])
61
+ .clear
@@ -0,0 +1,27 @@
1
+ - content_for(:title, t('action', :scope => [:user, :create]))
2
+ - form_for @user, :html => { :autocomplete => 'on'}, :url => user_path do |f|
3
+ .person-session-form
4
+ .grid_2
5
+ = f.label(:civility, "#{t(:civility, :count => 1)} <span class='required'>*<span>")
6
+ .grid_4
7
+ = f.radio_button :civility, 0
8
+ %span M
9
+ = f.radio_button :civility, 1
10
+ %span Mme
11
+ = f.radio_button :civility, 2
12
+ %span Mlle
13
+ = f.radio_button :civility, 3
14
+ %span Société
15
+ - [:lastname, :firstname, :email].each do |key|
16
+ .grid_2
17
+ = f.label key, "#{t(key)} <span class='required'>*<span>"
18
+ .grid_4
19
+ = f.text_field key
20
+ .clear
21
+ - unless Forgeos::CONFIG[:account]['password_generated']
22
+ = password_fields(f)
23
+ .grid_4.prefix_2
24
+ = f.submit t('action', :scope => [:user, :create])
25
+ .clear
26
+ %p.mandatory-field
27
+ * #{t(:mandatory_field, :count => 2)}
@@ -0,0 +1,16 @@
1
+ - content_for(:title, t('action', :scope => [:user, :create]))
2
+ - form_for @user, :html => { :autocomplete => 'on'}, :url => user_path do |f|
3
+ = hidden_field_tag :quick, 1
4
+ .person-session-form
5
+ - [:email, :email_confirmation].each do |key|
6
+ .grid_2
7
+ = f.label key, "#{t(key)} <span class='required'>*<span>"
8
+ .grid_4
9
+ = f.text_field key
10
+ .clear
11
+ = password_fields(f, :label_class => 'grid_2', :input_class => 'grid_4', :field_class=> nil, :password_label => "#{t(:password)} <span class='required'>*<span>", :confirmation_label => "#{t(:password_confirmation)} <span class='required'>*<span>")
12
+ .grid_4.prefix_2
13
+ = f.submit t('action', :scope => [:user, :create])
14
+ .clear
15
+ %p.mandatory-field
16
+ * #{t(:mandatory_field, :count => 2)}
@@ -0,0 +1,10 @@
1
+ .account-area
2
+ .grid_7.login
3
+ %h2= t('new', :scope => [:person_session, :action])
4
+ = render :partial => '/person_sessions/form'
5
+ .prefix_2.grid_7
6
+ %h2= t('create', :scope => [:user, :action])
7
+ - if Forgeos::CONFIG[:account]['checkout_quick_create'] and params[:quick]
8
+ = render :partial => '/users/form_quick_create', :locals => {:btn => 'create'}
9
+ - else
10
+ = render :partial => '/users/form_create', :locals => {:btn => 'create'}
@@ -0,0 +1,12 @@
1
+ .account-area
2
+ .prefix_4.grid_8
3
+ %h2= t(:forgotten_password, :scope => [:user, :action]).capitalize
4
+ - form_tag(reset_password_user_path, :html => { :autocomplete => false }, :class => 'account-form') do
5
+ .grid_2
6
+ = label_tag(:email, t(:email))
7
+ .grid_5
8
+ = text_field_tag(:email)
9
+ .grid_5.prefix_2
10
+ = submit_tag(t('action', :scope => [:user, :reset_password]), :id => 'forgotten_password_submit')
11
+ .clear
12
+ .clear
@@ -0,0 +1 @@
1
+ = render :partial => '/users/login_or_new'
@@ -0,0 +1,10 @@
1
+ .account-area.new_password
2
+ .prefix_4.grid_8
3
+ %h2= t('new_password', :scope => [:user, :action]).capitalize
4
+ - form_for(@user, :url => update_password_user_path, :html => { :autocomplete => false }) do |f|
5
+ = hidden_field_tag :user_token, f.object.perishable_token
6
+ = password_fields(f, :label_class => 'grid_3', :input_class => 'grid_4')
7
+ .grid_5.prefix_2
8
+ = f.submit t('reset_password', :scope => [:user, :action])
9
+ .clear
10
+ .clear
@@ -0,0 +1 @@
1
+ = render :partial => 'users/edit_form.html.haml'
@@ -0,0 +1,27 @@
1
+ multilang: true # true/false
2
+ default_locale: en
3
+ login:
4
+ login_field: email
5
+ account:
6
+ active: true # true/false
7
+ password_generated: true # true/false
8
+ avatar:
9
+ active: true # true/false
10
+ addresses:
11
+ active: true # true/false
12
+ user_type: 'b2c' # b2b/b2c/b2b&b2c
13
+ multiple_addresses: true # true/false
14
+ mandatory_fields: [phone]
15
+ available_countries: [us, uk, fr]
16
+ default_country: us # ISO CODE
17
+ checkout:
18
+ active: true # true/false
19
+ payment: [cheque] # cheque/CMCIC
20
+ wishlist:
21
+ active: true # true/false
22
+ cart:
23
+ active: true # true/false
24
+ newsletter:
25
+ active: true
26
+ notifications:
27
+ active: true
@@ -0,0 +1,6 @@
1
+ # load settings
2
+ config_file = File.join(Rails.root, 'config', 'commerce.yml')
3
+ Forgeos::CONFIG = (File.exist?(config_file) ? YAML.load_file(config_file).symbolize_keys : {})
4
+ if not Forgeos::CONFIG[:multilang] and locale = Forgeos::CONFIG[:default_locale]
5
+ I18n.available_locales = locale.to_a
6
+ end
@@ -0,0 +1,85 @@
1
+ fr:
2
+ mandatory_field:
3
+ one: champ obligatoire
4
+ other: champs obligatoires
5
+ person_session:
6
+ action:
7
+ new: Identification
8
+ user:
9
+ one: utilisateur
10
+ other: utilisateurs
11
+ uid: identifiant
12
+ action:
13
+ show: Mon compte
14
+ create: Créer mon compte
15
+ activate: Activation du compte
16
+ new_password: votre nouveau mot de passe
17
+ reset_password: valider
18
+ forgotten_password: Vous avez perdu votre mot de passe ?
19
+ create:
20
+ success: Votre compte a bien été créé. Vous allez recevoir un email afin d'activer votre compte.
21
+ error: Une erreur s'est produite lors de la creation de votre compte.
22
+ action: Créer le compte
23
+ update:
24
+ success: Votre compte a bien été mis à jour.
25
+ error: Une erreur s'est produite lors de la mise à jour de vos informations personnelles
26
+ activate:
27
+ success: Votre compte a bien été activé.
28
+ error: Une erreur s'est produite lors de l'activation de votre compte.
29
+ reset_password:
30
+ success: Un email vous a été envoyé avec les intructions afin de réinitialiser votre mot de passe
31
+ error: Une erreur est survenue lors de l'envoie de l'email
32
+ unknown_user: Aucun utilisateur n'est enregistré avec %{email}
33
+ new_password:
34
+ error: Code d'identification invalide
35
+ part:
36
+ profile: mon profil
37
+ infos: mes coordonnées
38
+ address:
39
+ one: mon adresse
40
+ other: mes adresses
41
+ order:
42
+ not_found: La commande n'a pas été trouvée.
43
+ order_status:
44
+ paid: payée
45
+ unpaid: en attente de paiement
46
+ shipped: expédiée
47
+ waiting_for_cheque: en attente de chèque
48
+ canceled: annulée
49
+ closed: fermée
50
+ newsletter:
51
+ i_want: Je souhaite recevoir la newsletter
52
+ create:
53
+ success: Vous êtes maintenant inscrit à la newsletter.
54
+ invalid_email: L'email %{error}
55
+ subscription: Inscription à la Newsletter
56
+ authlogic:
57
+ error_messages:
58
+ login_blank: doit être rempli(e)
59
+ login_not_found: n'est pas valide
60
+ login_invalid: should use only letters, numbers, spaces, and .-_@ please.
61
+ consecutive_failed_logins_limit_exceeded: Consecutive failed logins limit exceeded, account is disabled.
62
+ email_invalid: n'est pas valide
63
+ password_blank: doit être rempli(e)
64
+ password_invalid: n'est pas valide
65
+ not_active: Votre compte n'est pas actif
66
+ not_confirmed: Your account is not confirmed
67
+ not_approved: Your account is not approved
68
+
69
+ emails:
70
+ waiting_for_cheque_notification:
71
+ subject: Commande en attente de chèque
72
+ reset_password:
73
+ subject: Réinitialisation de votre mot de passe
74
+ newsletter:
75
+ subject: Inscription à la newsletter
76
+ new_account:
77
+ subject: Bienvenue sur notre site
78
+ order_confirmation:
79
+ subject: Votre commande n°%{id}
80
+ order: votre commande
81
+ company: entreprise
82
+ administrator_warning: Attention vous êtes en administrateur.
83
+ not_authorized: Vous n'êtes pas autorisé à acceder à cette ressource.
84
+ phone: télephone
85
+ email_confirmation: confirmez votre email
@@ -0,0 +1,17 @@
1
+ Forgeos::CommerceFront::Engine.routes.draw do
2
+ resource :user do
3
+ member do
4
+ get :activate
5
+ get :new_password
6
+ get :forgotten_password
7
+ put :update_password
8
+ post :reset_password
9
+ end
10
+
11
+ resources :orders
12
+ resources :addresses
13
+
14
+ resources :address_deliveries, :controller => :addresses, :as => :addresses
15
+ resources :address_invoices, :controller => :addresses, :as => :addresses
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ class AddFormAttributesToAddresses < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :addresses, :form_attributes, :text
4
+ end
5
+
6
+ def self.down
7
+ remove_column :addresses, :form_attributes
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ class FieldErrorProcChanger
2
+ def initialize(proc)
3
+ @new_proc = proc
4
+ end
5
+
6
+ # This will run before the action. Returning false
7
+ # aborts the action.
8
+ def before(controller)
9
+ @old_proc = ActionView::Base.field_error_proc
10
+ ActionView::Base.field_error_proc = @new_proc
11
+ true
12
+ end
13
+
14
+ # This will run after the action if and only if
15
+ # before returned true.
16
+ def after(controller)
17
+ ActionView::Base.field_error_proc = @old_proc
18
+ end
19
+ end
@@ -0,0 +1,6 @@
1
+ module Forgeos
2
+ module CommerceFront
3
+ end
4
+ end
5
+
6
+ require 'forgeos/commerce_front/engine'
@@ -0,0 +1,10 @@
1
+ require 'forgeos/commerce/engine'
2
+ require 'forgeos/cms_front/engine'
3
+
4
+ module Forgeos
5
+ module CommerceFront
6
+ class Engine < Rails::Engine
7
+ paths["config/locales"] << 'config/locales/**'
8
+ end
9
+ end
10
+ end