camaleon_ecommerce 0.0.4 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/plugins/ecommerce/admin.js +0 -33
  3. data/app/assets/javascripts/plugins/ecommerce/cart.js +83 -200
  4. data/app/assets/javascripts/plugins/ecommerce/fix_form.js +1 -4
  5. data/app/assets/stylesheets/plugins/ecommerce/checkout.css.scss +46 -0
  6. data/app/assets/stylesheets/plugins/ecommerce/front.scss +2 -30
  7. data/app/controllers/plugins/ecommerce/admin/coupons_controller.rb +2 -2
  8. data/app/controllers/plugins/ecommerce/admin/orders_controller.rb +45 -34
  9. data/app/controllers/plugins/ecommerce/admin/payment_methods_controller.rb +4 -3
  10. data/app/controllers/plugins/ecommerce/admin/prices_controller.rb +5 -5
  11. data/app/controllers/plugins/ecommerce/admin/settings_controller.rb +0 -2
  12. data/app/controllers/plugins/ecommerce/admin/shipping_methods_controller.rb +3 -3
  13. data/app/controllers/plugins/ecommerce/admin/tax_rates_controller.rb +2 -2
  14. data/app/controllers/plugins/ecommerce/admin_controller.rb +1 -1
  15. data/app/controllers/plugins/ecommerce/front/checkout_controller.rb +162 -110
  16. data/app/controllers/plugins/ecommerce/front/orders_controller.rb +7 -234
  17. data/app/controllers/plugins/ecommerce/front_controller.rb +42 -3
  18. data/app/decorators/plugins/ecommerce/cart_decorator.rb +27 -0
  19. data/app/{models → decorators}/plugins/ecommerce/coupon_decorator.rb +1 -1
  20. data/app/decorators/plugins/ecommerce/order_decorator.rb +22 -0
  21. data/app/decorators/plugins/ecommerce/product_decorator.rb +88 -0
  22. data/app/decorators/plugins/ecommerce/product_item_decorator.rb +18 -0
  23. data/app/helpers/plugins/ecommerce/ecommerce_email_helper.rb +91 -28
  24. data/app/helpers/plugins/ecommerce/ecommerce_helper.rb +30 -136
  25. data/app/helpers/plugins/ecommerce/ecommerce_payment_helper.rb +14 -20
  26. data/app/models/plugins/ecommerce/cart.rb +139 -15
  27. data/app/models/plugins/ecommerce/coupon.rb +33 -7
  28. data/app/models/plugins/ecommerce/order.rb +47 -31
  29. data/app/models/plugins/ecommerce/{product.rb → product_item.rb} +11 -5
  30. data/app/views/camaleon_cms/html_mailer/order_canceled.html.erb +2 -0
  31. data/app/views/camaleon_cms/html_mailer/order_confirmed.html.erb +2 -0
  32. data/app/views/camaleon_cms/html_mailer/order_received_admin.html.erb +1 -1
  33. data/app/views/camaleon_cms/html_mailer/order_shipped.html.erb +2 -0
  34. data/app/views/plugins/ecommerce/admin/coupons/form.html.erb +10 -10
  35. data/app/views/plugins/ecommerce/admin/coupons/index.html.erb +1 -1
  36. data/app/views/plugins/ecommerce/admin/orders/form.html.erb +5 -49
  37. data/app/views/plugins/ecommerce/admin/orders/index.html.erb +140 -80
  38. data/app/views/plugins/ecommerce/admin/orders/show.html.erb +7 -169
  39. data/app/views/plugins/ecommerce/admin/payment_methods/form.html.erb +30 -3
  40. data/app/views/plugins/ecommerce/admin/payment_methods/index.html.erb +1 -3
  41. data/app/views/plugins/ecommerce/admin/prices/index.html.erb +0 -2
  42. data/app/views/plugins/ecommerce/admin/prices/show.html.erb +0 -2
  43. data/app/views/plugins/ecommerce/admin/products/index.html.erb +1 -1
  44. data/app/views/plugins/ecommerce/admin/settings/index.html.erb +0 -1
  45. data/app/views/plugins/ecommerce/admin/tax_rates/form.html.erb +1 -1
  46. data/app/views/plugins/ecommerce/front/checkout/cart_index.html.erb +46 -57
  47. data/app/views/plugins/ecommerce/front/checkout/index.html.erb +34 -158
  48. data/app/views/plugins/ecommerce/front/login.html.erb +67 -0
  49. data/app/views/plugins/ecommerce/front/orders/index.html.erb +36 -44
  50. data/app/views/plugins/ecommerce/front/orders/show.html.erb +121 -67
  51. data/app/views/plugins/ecommerce/partials/_cart_widget.html.erb +38 -0
  52. data/app/views/plugins/ecommerce/partials/checkout/_details.html.erb +35 -0
  53. data/app/views/plugins/ecommerce/partials/checkout/_payments.html.erb +123 -0
  54. data/app/views/plugins/ecommerce/partials/checkout/_products_detail.html.erb +49 -0
  55. data/app/views/plugins/ecommerce/partials/checkout/_user_info.html.erb +93 -0
  56. data/app/views/post_types/commerce.html.erb +22 -0
  57. data/app/views/post_types/commerce/_product_widget.html.erb +13 -0
  58. data/app/views/post_types/commerce/category.html.erb +23 -0
  59. data/app/views/post_types/commerce/single.html.erb +91 -0
  60. data/config/custom_models.rb +24 -57
  61. data/config/locales/en.yml +192 -0
  62. data/config/locales/es.yml +405 -0
  63. data/config/routes.rb +26 -16
  64. data/db/migrate/20160502221327_add_cama_ecommerce_structure_plugin.rb +12 -0
  65. data/db/migrate/20160504162311_move_featured_attribute_of_products.rb +15 -0
  66. data/db/migrate/20160527184747_add_new_cart_structure.rb +21 -0
  67. data/lib/ecommerce/version.rb +1 -1
  68. metadata +42 -19
  69. data/app/models/plugins/ecommerce/order_decorator.rb +0 -54
  70. data/app/views/layouts/plugins/ecommerce/mailer.html.erb +0 -22
  71. data/app/views/plugins/ecommerce/admin/index.html.erb +0 -2
  72. data/app/views/plugins/ecommerce/front/_post_list_item.html.erb +0 -18
  73. data/app/views/plugins/ecommerce/front/index.html.erb +0 -2
  74. data/app/views/plugins/ecommerce/front/list_products.html.erb +0 -34
  75. data/app/views/plugins/ecommerce/front/orders/pay_by_bank_transfer.html.erb +0 -67
  76. data/app/views/plugins/ecommerce/front/orders/pay_by_credit_card.html.erb +0 -131
  77. data/app/views/plugins/ecommerce/front/orders/pay_by_credit_card_authorize_net.erb +0 -150
  78. data/app/views/plugins/ecommerce/front/orders/select_payment.html.erb +0 -70
  79. data/app/views/plugins/ecommerce/front/product.html.erb +0 -105
  80. data/app/views/plugins/ecommerce/layouts/_ecommerce.html.erb +0 -41
  81. data/app/views/plugins/ecommerce/partials/_form_address.html.erb +0 -84
  82. data/app/views/plugins/ecommerce/partials/_table_order_products.html.erb +0 -85
  83. data/config/locales/translation.yml +0 -371
@@ -0,0 +1,22 @@
1
+ <article id="post_type-view" class="post_type_<%= @post_type.slug %>">
2
+ <%= render partial: 'partials/breadcrumb', locals: {breadcrumb: @post_type.the_breadcrumb } %>
3
+ <h1><%= @post_type.the_title %> <%= @post_type.the_edit_link %></h1>
4
+ <div class="content">
5
+ <%= raw @post_type.the_content %>
6
+ </div><br><br>
7
+
8
+ <% if @categories.present? %>
9
+ <div class="categories_list">
10
+ <%= render partial: "partials/categories_list", locals: {categories: @categories} %>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="row">
15
+ <% @posts.decorate.each_with_index do |post, index| %>
16
+ <%= raw "<div class='clearfix'></div>" if index%3 == 0 && index > 0 %>
17
+ <%= render 'post_types/commerce/product_widget', post: post %>
18
+ <% end %>
19
+ </div>
20
+ <%= content_tag("div", raw(ct('no_contents_found', default: 'No contents found.')), class: "alert alert-warning") if @posts.empty? %>
21
+ <%= will_paginate @posts, renderer: BootstrapPagination::Rails if @posts.present? %>
22
+ </article>
@@ -0,0 +1,13 @@
1
+ <div class="col-sm-6 col-md-4 post-list-item">
2
+ <div class="thumbnail">
3
+ <%= raw post.the_link_thumb({}, {style: "height: 200px; width: 100%; display: block;"}) %>
4
+ <div class="caption">
5
+ <h4 id="thumbnail-label">
6
+ <a href="<%= post.the_url %>"><%= post.the_title %> (<i class="fa fa-cart"></i> <%= post.the_price %>)</a>
7
+ </h4>
8
+ <small class="" style="display: block;"><%= post.the_created_at %></small>
9
+ <hr>
10
+ <p><%= raw post.the_excerpt %> <%= post.the_edit_link %></p>
11
+ </div>
12
+ </div>
13
+ </div>
@@ -0,0 +1,23 @@
1
+ <article id="category-view" class="category_<%= @category.slug %>">
2
+ <%= render partial: 'partials/breadcrumb', locals: {breadcrumb: @category.the_breadcrumb } %>
3
+ <h1><%= @category.the_title %><%= @category.the_edit_link %></h1>
4
+ <div class="content">
5
+ <%= raw @category.the_content %>
6
+ </div><br><br>
7
+
8
+ <% if @children.present? %>
9
+ <div class="well">
10
+ <%= render partial: "partials/categories_list", locals: {categories: @children } %>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="row">
15
+ <% @posts.decorate.each_with_index do |post, index| %>
16
+ <%= raw "<div class='clearfix'></div>" if index%3 == 0 && index > 0 %>
17
+ <%= render 'post_types/commerce/product_widget', post: post %>
18
+ <% end %>
19
+ </div>
20
+ <%= content_tag("div", raw(ct('no_contents_found', default: 'No contents found')), class: "alert alert-warning") if @posts.empty? %>
21
+ <%= will_paginate @posts, renderer: BootstrapPagination::Rails if @posts.present? %>
22
+
23
+ </article>
@@ -0,0 +1,91 @@
1
+ <%= render plugin_view('partials/cart_widget') %>
2
+ <% @field_values = @post.get_field_values_hash %>
3
+ <div class="row">
4
+ <div class="col-md-9 post-view">
5
+ <article class="post-content">
6
+ <div class="row">
7
+ <div class="col-md-6">
8
+ <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
9
+ <!-- Indicators -->
10
+ <ol class="carousel-indicators">
11
+ <% @post.the_photos.each_with_index do |pthoto, index| %>
12
+ <li data-target="#carousel-example-generic" data-slide-to="<%= index %>" class="<%= 'active' if index == 0 %>"></li>
13
+ <% end %>
14
+ </ol>
15
+
16
+ <!-- Wrapper for slides -->
17
+ <div class="carousel-inner" role="listbox">
18
+ <% @post.the_photos.each_with_index do |pthoto, index| %>
19
+ <div class="item <%= 'active' if index == 0 %>">
20
+ <img src="<%= pthoto %>" class="center-block">
21
+ </div>
22
+ <% end %>
23
+ </div>
24
+
25
+ <!-- Controls -->
26
+ <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
27
+ <span class="glyphicon glyphicon-chevron-left fa fa-chevron-left" aria-hidden="true"></span>
28
+ <span class="sr-only">Previous</span>
29
+ </a>
30
+ <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
31
+ <span class="glyphicon glyphicon-chevron-right fa fa-chevron-right " aria-hidden="true"></span>
32
+ <span class="sr-only">Next</span>
33
+ </a>
34
+ </div>
35
+ </div>
36
+
37
+ <div class="col-md-6">
38
+ <h1><%= @post.the_title %></h1>
39
+ <h3><%= t('plugins.ecommerce.single.sku', default: 'SKU') %>: <%= @post.the_sku %>
40
+ <span class="pull-right"><%= raw @post.the_featured_status %></span></h3>
41
+ <h4><%= @post.the_price %> <span class="pull-right"><%= raw @post.the_stock_status %></span></h4>
42
+ <hr/>
43
+ <p><%= @post.the_excerpt %></p>
44
+ <hr/>
45
+ <% if @post.in_stock? %>
46
+ <p><%= t('plugins.ecommerce.single.available_items', default: 'Items available') %>: <%= @post.the_qty_real %></p>
47
+ <% if @post.the_qty_real.to_i > 0 %>
48
+ <%= form_tag(plugins_ecommerce_checkout_cart_add_path, :method => "post", :class => "form") do %>
49
+ <div class="input-group">
50
+ <span class="input-group-addon"><%= t('plugins.ecommerce.single.qty', default: 'Qty') %></span>
51
+ <%= number_field :cart, :qty, class: 'form-control', value: 1, min: 0, max: @post.the_qty_real.to_i %>
52
+ <%= hidden_field :cart, :product_id, value: @post.id %>
53
+ <span class="input-group-btn"><button class="btn btn-default" type="submit"><i class="fa fa-shopping-cart"></i> <%= t('plugins.ecommerce.single.add_to_cart', default: 'Add to cart') %></button></span>
54
+ </div>
55
+ <% end %>
56
+ <% end %>
57
+ <% else %>
58
+ <p><%= t('plugins.ecommerce.single.noavailable_items', default: 'No items available') %></p>
59
+ <% end %>
60
+ </div>
61
+ </div>
62
+
63
+ <div class="row">
64
+ <div class="col-md-6">
65
+ <h3><%= t('plugins.ecommerce.single.descr', default: 'Description') %></h3>
66
+ <div class="item-content">
67
+ <%= raw @post.the_content %>
68
+ </div>
69
+ </div>
70
+
71
+ <% attrs = []; @field_values[:ecommerce_attrs].to_a.each { |attr| attrs << JSON.parse(attr) rescue {} } %>
72
+ <% if attrs.present? %>
73
+ <div class="col-md-6">
74
+ <h3><%= t('plugins.ecommerce.single.attrs', default: 'Attributes') %></h3>
75
+ <table class="table table-bordered">
76
+ <% attrs.each do |data| %>
77
+ <tr>
78
+ <td><strong><%= data['attr'].to_s.translate %></strong></td>
79
+ <td><%= data['value'].to_s.translate %></td>
80
+ </tr>
81
+ <% end %>
82
+ </table>
83
+ </div>
84
+ <% end %>
85
+ </div>
86
+ </article>
87
+ </div>
88
+ <div class="col-md-3">
89
+ <%= render partial: 'partials/sidebar', locals: {post: @post, skip_fields: true} %>
90
+ </div>
91
+ </div>
@@ -1,64 +1,31 @@
1
- CamaleonCms::Site.class_eval do
2
- #attr_accessible :my_id
3
- has_many :carts, :class_name => "Plugins::Ecommerce::Cart", foreign_key: :parent_id, dependent: :destroy
4
- has_many :orders, :class_name => "Plugins::Ecommerce::Order", foreign_key: :parent_id, dependent: :destroy
5
- has_many :payment_methods, :class_name => "Plugins::Ecommerce::PaymentMethod", foreign_key: :parent_id, dependent: :destroy
6
- has_many :shipping_methods, :class_name => "Plugins::Ecommerce::ShippingMethod", foreign_key: :parent_id, dependent: :destroy
7
- has_many :coupons, :class_name => "Plugins::Ecommerce::Coupon", foreign_key: :parent_id, dependent: :destroy
8
- has_many :tax_rates, :class_name => "Plugins::Ecommerce::TaxRate", foreign_key: :parent_id, dependent: :destroy
9
- end
10
-
11
- CamaleonCms::SiteDecorator.class_eval do
12
- def current_unit
13
- @current_unit ||= h.e_get_currency_units[object.meta[:_setting_ecommerce][:current_unit]]['symbol'] rescue '$'
14
- end
15
- def currency_code
16
- @currency_code ||= h.e_get_currency_units[object.meta[:_setting_ecommerce][:current_unit]]['code'] rescue 'USD'
17
- end
18
- def current_weight
19
- @current_weight ||= h.e_get_currency_weight[object.meta[:_setting_ecommerce][:current_weight]]['code'] rescue 'kg'
20
- end
21
- end
22
-
23
- CamaleonCms::PostDecorator.class_eval do
24
- def the_sku
25
- object.get_field_value('ecommerce_sku').to_s
26
- end
27
- def the_price
28
- "#{h.current_site.current_unit} #{object.get_field_value('ecommerce_price').to_f}"
29
- end
30
- def the_weight
31
- "#{h.current_site.current_weight} #{object.get_field_value('ecommerce_weight').to_f}"
32
- end
33
- def the_qty
34
- object.get_field_value('ecommerce_qty') || 0
35
- end
36
- def the_photos
37
- object.get_field_values('ecommerce_photos') || []
38
- end
39
- def in_stock?
40
- object.get_field_value('ecommerce_stock').to_s.to_bool
41
- end
42
- def the_stock_status
43
- if in_stock? && the_qty_real.to_i > 0
44
- "<span class='label label-success'>#{I18n.t('plugin.ecommerce.product.in_stock')}</span>"
45
- else
46
- "<span class='label label-danger'>#{I18n.t('plugin.ecommerce.product.not_in_tock')}</span>"
1
+ Rails.application.config.to_prepare do
2
+ CamaleonCms::Site.class_eval do
3
+ #attr_accessible :my_id
4
+ has_many :carts, :class_name => "Plugins::Ecommerce::Cart", foreign_key: :site_id, dependent: :destroy
5
+ has_many :orders, :class_name => "Plugins::Ecommerce::Order", foreign_key: :site_id, dependent: :destroy
6
+ has_many :payment_methods, :class_name => "Plugins::Ecommerce::PaymentMethod", foreign_key: :parent_id, dependent: :destroy
7
+ has_many :shipping_methods, :class_name => "Plugins::Ecommerce::ShippingMethod", foreign_key: :parent_id, dependent: :destroy
8
+ has_many :coupons, :class_name => "Plugins::Ecommerce::Coupon", foreign_key: :parent_id, dependent: :destroy
9
+ has_many :tax_rates, :class_name => "Plugins::Ecommerce::TaxRate", foreign_key: :parent_id, dependent: :destroy
10
+ def products
11
+ post_types.where(slug: 'commerce').first.try(:posts)
47
12
  end
48
13
  end
49
14
 
50
- def featured?
51
- object.get_field_value('ecommerce_featured').to_s.to_bool
52
- end
53
- def the_featured_status
54
- if featured?
55
- "<span class='label label-primary'>#{I18n.t('plugin.ecommerce.product.featured')}</span>"
56
- else
57
- ""
15
+ CamaleonCms::SiteDecorator.class_eval do
16
+ def current_unit
17
+ @current_unit ||= h.e_get_currency_units[object.meta[:_setting_ecommerce][:current_unit]]['symbol'] rescue '$'
18
+ end
19
+ def currency_code
20
+ @currency_code ||= h.e_get_currency_units[object.meta[:_setting_ecommerce][:current_unit]]['code'] rescue 'USD'
21
+ end
22
+ def current_weight
23
+ @current_weight ||= h.e_get_currency_weight[object.meta[:_setting_ecommerce][:current_weight]]['code'] rescue 'kg'
58
24
  end
59
- end
60
25
 
61
- def the_qty_real
62
- object.get_field_value('ecommerce_qty') || 0
26
+ # return all visible products fo current user in current site
27
+ def the_products
28
+ the_posts('commerce')
29
+ end
63
30
  end
64
31
  end
@@ -0,0 +1,192 @@
1
+ en:
2
+ plugin:
3
+ ecommerce:
4
+ active: 'Active'
5
+ add_shipping_methods: 'Add Shipping Method'
6
+ not_active: 'Not Active'
7
+ accepted: 'Accepted'
8
+ coupons: 'Coupons'
9
+ e_commerce: 'E-Commerce'
10
+ e_commerce_settings: 'E-commerce Settings'
11
+ e_mail_address: 'E-Mail Address'
12
+ edit_tax_rate: 'Edit Tax Rate'
13
+ edit_shipping_methods: 'Edit Shipping Method'
14
+ edit_price: 'Edit Price'
15
+ edit_payment_methods: 'Edit Payment Methods'
16
+ edit_coupon: 'Edit Coupon'
17
+ edit_order: 'Edit Order'
18
+ all_products: 'All Products'
19
+ add_new: 'Add New'
20
+ add_tax_rate: 'Add Tax Rate'
21
+ add_shipping_methods: 'Add Shipping Method'
22
+ add_price: 'Add Price'
23
+ add_coupons: 'Add Coupons'
24
+ add_payment_method: 'Add Payment Method'
25
+ billing_address: 'Billing Address'
26
+ by_bank_transfer: 'By bank transfer'
27
+ by_paypal: 'By Paypal'
28
+ by_credit_card: 'By credit card (with paypal)'
29
+ by_authorize_net: 'By credit card (Authorize.net)'
30
+ details_shipping_methods: 'Shipping Method Details'
31
+ details_payment_methods: 'Payment Methods Details'
32
+ details_order: 'Details Order'
33
+ details_user: 'User Details'
34
+ form_tax_rate: 'Tax Rate Form'
35
+ form_shipping_methods: 'Shipping Method Form'
36
+ form_price: 'Price Form'
37
+ form_payment_methods: 'Payment Methods Form'
38
+ form_coupon: 'Coupon Form'
39
+ form_settings: 'Settings Form'
40
+ orders: 'Orders'
41
+ order_received: 'Order Received'
42
+ order_accepted: 'Order Accepted'
43
+ order_shipped: 'Order Shipped'
44
+ payment_methods: 'Payment Methods'
45
+ info: 'Information'
46
+ list_orders: 'List Orders'
47
+ list_tax_rate: 'Tax Rate List'
48
+ list_shipping_methods: 'Shipping Method List'
49
+ shipping_methods: 'Shipping Methods'
50
+ shipping_prices: 'Shipping Prices'
51
+ list_price: 'Price List'
52
+ list_payment_methods: 'Payment Methods List'
53
+ list_coupons: 'Coupons List'
54
+ mark_shipped: 'Mark as Shipped'
55
+ message:
56
+ consignment_number: 'Use {{consignment_number}} to insert the consignment number.'
57
+ error_paypal_values: 'Error Paypal Values'
58
+ not_shipped: 'Not Shipped'
59
+ not_shipped_assigned: 'Not Shipped Assigned'
60
+ order: 'Order %{status}'
61
+ accepted: 'Accepted'
62
+ shipped: 'Shipped'
63
+ updated: 'Updated'
64
+ method_paypal: 'Method by Paypal'
65
+ method_credit_card: 'Method by Credit Card'
66
+ method_bank_transfer: 'Method Bank Transfer'
67
+ method_shipped: 'Method Shipped'
68
+ method_authorize_net: 'Method by Authorize.net'
69
+ new: 'New'
70
+ new_tax_rate: 'New Tax Rate'
71
+ new_shipping_methods: 'New Shipping Method'
72
+ new_payment_methods: 'New Payment Methods'
73
+ new_coupon: 'New Coupon'
74
+ options_payment_methods: 'Payment Options'
75
+ payments: 'Payments'
76
+ phone_number: 'Phone Number'
77
+ product:
78
+ featured: 'Featured'
79
+ item: 'Item'
80
+ photo: "Photos of product"
81
+ box: "What's in the box"
82
+ sku: "SKU"
83
+ attrs: "Attributes"
84
+ photos: "Photos"
85
+ price: "Price"
86
+ cost: "Cost"
87
+ tax: "Tax rate"
88
+ weight: "Weight"
89
+ stock_status: 'Stock Status'
90
+ stock: "Stock control?"
91
+ qty: "Quantity"
92
+ in_stock: 'In Stock'
93
+ not_in_tock: 'Not In Stock'
94
+ total_excluding_tax: 'Total (excluding Tax)'
95
+ current_unit: 'Current unit: %{unit}'
96
+ current_weight: 'Current weight: %{weight}'
97
+ products: 'Products'
98
+ shipping_address: 'Shipping Address'
99
+ shipping_methods: 'Shipping Methods'
100
+ shipped_date: 'Shipped Date'
101
+ search_order_number: 'Search for order number'
102
+ select:
103
+ received: 'Received'
104
+ unpaid: 'Unpaid'
105
+ accepted: 'Accepted'
106
+ shipped: 'Shipped'
107
+ closed: 'Closed'
108
+ canceled: 'Canceled'
109
+ kilogram: 'kilogram'
110
+ pound: 'pound'
111
+ dram: 'dram'
112
+ grain: 'grain'
113
+ gram: 'gram'
114
+ hundredweight: 'hundredweight'
115
+ milligram: 'milligram'
116
+ ounce: 'ounce'
117
+ tonne: 'tonne'
118
+ table:
119
+ address: 'Address'
120
+ actions: 'Actions'
121
+ amount: 'Amount'
122
+ allowed_applications: 'Allowed applications'
123
+ city: 'City'
124
+ code: 'Code'
125
+ country: 'Country'
126
+ currency_unit: 'Currency Unit'
127
+ currency_weight: 'Currency Weight'
128
+ customer: 'Customer'
129
+ customer_info: 'Customer Info'
130
+ description: 'Description'
131
+ details: 'Details'
132
+ discount: 'Discount'
133
+ discount_type: 'Discount type'
134
+ email: 'Email'
135
+ expiration_date: 'Expiration date'
136
+ expired: 'Expired'
137
+ firstname: 'Firstname'
138
+ id: 'ID'
139
+ lastname: 'Lastname'
140
+ login: 'Login'
141
+ login_id: 'Login Id'
142
+ max_weight: 'Max Weight'
143
+ min_weight: 'Min Weight'
144
+ min_cart_total: 'Min cart total'
145
+ name: 'Name'
146
+ not_paid: 'Not Paid'
147
+ method: 'Method'
148
+ number_account_bank: 'Number Account Bank'
149
+ phone: 'Phone'
150
+ paid: 'Paid?'
151
+ password: 'Password'
152
+ payment_method: 'Payment Method'
153
+ percent: 'Percent'
154
+ money: 'Money'
155
+ free_shipping: 'Free Shipping'
156
+ products: 'Products'
157
+ rate: 'Rate'
158
+ received_time: 'Received Time'
159
+ sandbox: 'Sandbox'
160
+ shipping: 'Shipping'
161
+ signature: 'Signature'
162
+ status: 'Status'
163
+ slug: 'Slug'
164
+ sub_total: 'Subtotal'
165
+ state: 'State'
166
+ total: 'Total'
167
+ url_tracking: 'URL Tracking'
168
+ username_login: 'Username / Login'
169
+ used_applications: 'Used applications'
170
+ code_zip: 'Code Zip'
171
+ method_type: 'Method type'
172
+ transaction_key: 'Transaction key'
173
+ tax_rates: 'Tax Rates'
174
+ add_to_cart: 'Add to cart'
175
+ msg:
176
+ added_product_in_cart: 'Added product successfully in Cart.'
177
+ mail:
178
+ order_received:
179
+ welcome: "Hi"
180
+ thanks: "Thank you for your purchase."
181
+ reference: "For your reference, your order number is:"
182
+ recovery_cart:
183
+ body: "We noticed that you might be stuck."
184
+ reference: "For your reference, your order number is:"
185
+ email:
186
+ order_received:
187
+ subject: "Thank you for purchasing"
188
+ recovery_cart:
189
+ subject: "We noticed that you might be stuck"
190
+ order_received_admin:
191
+ subject: "New purchase"
192
+
@@ -0,0 +1,405 @@
1
+ es:
2
+ # backend
3
+ plugin:
4
+ ecommerce:
5
+ accepted: "Aceptado"
6
+ active: "Activo"
7
+ add_shipping_methods: "Agregar Método de Envío"
8
+ not_active: "No Activo"
9
+ coupons: "Cupones"
10
+ e_commerce: "Comercio Electrónico"
11
+ e_commerce_settings: "Ajustes Comercio Electrónico"
12
+ e_mail_address: "Dirección Correo Electrónico"
13
+ edit_tax_rate: "Editar Tasa de Impuesto"
14
+ edit_shipping_methods: "Editar Método de Envío"
15
+ edit_price: "Editar Precio"
16
+ edit_payment_methods: "Editar Método de Pago"
17
+ edit_coupon: "Editar Cupón"
18
+ edit_order: "Editar Pedido"
19
+ all_products: "Todos los Productos"
20
+ add_new: "Agregar Nuevo"
21
+ add_tax_rate: "Agregar Tasa de Impuesto"
22
+ add_price: "Agregar Precio"
23
+ add_coupons: "Agregar Cupones"
24
+ add_payment_method: "Agregar Método de Pago"
25
+ billing_address: "Dirección de facturación"
26
+ by_bank_transfer: "Por Transferencia Bancaria"
27
+ by_paypal: "Por Paypal"
28
+ by_credit_card: "Tarjeta Crédito (PayPal)"
29
+ by_authorize_net: "Tarjeta Crédito (Authorize.net)"
30
+ details_shipping_methods: "Detalle Método de Envío"
31
+ details_payment_methods: "Detalle Método de Pago"
32
+ details_order: "Detalle Pedido"
33
+ order_destroyed: 'Orden Eliminado'
34
+ order_no_destroyed: 'La orden no pudo ser eliminado '
35
+ details_user: "Detalle Usuario"
36
+ form_tax_rate: "Formulario Tasa de Impuesto"
37
+ form_shipping_methods: "Formulario Método de Envío"
38
+ form_price: "Formulario Precio"
39
+ form_payment_methods: "Formulario Método de Pago"
40
+ form_coupon: "Formulario Cupón"
41
+ form_settings: "Formulario Ajustes"
42
+ orders: "Pedidos"
43
+ order_received: "Pedido Recibido"
44
+ order_accepted: "Pedido Aceptado"
45
+ order_shipped: "Solicitar Envio"
46
+ payment_methods: "Métodos de Pago"
47
+ info: "Información"
48
+ list_orders: "Lista de Pedidos"
49
+ list_tax_rate: "Lista Tasas de Impuestos"
50
+ list_shipping_methods: "Lista Métodos de Envío "
51
+ list_price: "Lista de Precio"
52
+ list_payment_methods: "Lista Métodos de Pago"
53
+ list_coupons: "Lista Cupones"
54
+ mark_Shipped: "Marcar como enviado"
55
+ message:
56
+ consignment_number: "Use {{numero_envio}} para insertar el no."
57
+ error_paypal_values: "Error Valores Paypal"
58
+ not_shipped: "No Enviado"
59
+ not_shipped_assigned: "Envío no asignado"
60
+ order: "Pedido %{status}"
61
+ accepted: "Aceptado"
62
+ shipped: "Enviado"
63
+ updated: "Actualizado"
64
+ order_bank_confirmed: 'Pago Bancario Confirmado'
65
+ order_accepted: 'Orden aceptado'
66
+ order_shipped: 'Orden enviado'
67
+ order_canceled: 'Orden cancelado'
68
+ order_updated: 'Orden actualizado'
69
+ method_paypal: "Método por Paypal"
70
+ method_credit_card: "Método por Tarjeta de Credito"
71
+ method_bank_transfer: "Método Transferencia Bancaria"
72
+ method_shipped: "Método de Envío"
73
+ method_authorize_net: "Método por Authorize.net"
74
+ new: "Nuevo"
75
+ new_tax_rate: "Nueva Tasa de Impuesto"
76
+ new_shipping_methods: "Nuevo Método de Envío"
77
+ new_price: "Nuevo Precio"
78
+ new_payment_methods: "Nuevo Método de Pago"
79
+ new_coupon: "Nuevo Cupón"
80
+ options_payment_methods: "Opciones de Pago"
81
+ payments: "Pagos"
82
+ phone_number: "Número Telefónico"
83
+ product:
84
+ featured: "Destacado"
85
+ item: "Artículo"
86
+ price: "Precio"
87
+ photo: "Fotos del producto"
88
+ box: "Que contiene la caja"
89
+ sku: "SKU"
90
+ attrs: "Atributos"
91
+ photos: "Fotos"
92
+ cost: "Costo"
93
+ tax: "Tasa de impuesto"
94
+ weight: "Peso"
95
+ stock_tatus: "Cantidad de Productos"
96
+ stock: "Control de Cantidad de Productos?"
97
+ qty: "Cantidad"
98
+ files: 'Archivos del producto'
99
+ in_stock: "Disponible"
100
+ not_in_tock: "No Disponible"
101
+ total_excluding_tax: "Total (impuestos excluidos)"
102
+ attrs_descr: "Ingresa los atributos de tu producto separados por comas, ejemplo: Color ==> Rojo, Azul, Verde"
103
+ image_label: "Foto de Producto"
104
+ stock_status: "Estado del stock"
105
+ current_unit: "Tipo de unidad: %{unit}"
106
+ current_weight: "Unidad de Medida: %{weight}"
107
+ products: "Productos"
108
+ shipping_address: "Dirección de Envío"
109
+ shipping_methods: "Métodos de Envío"
110
+ shipped_date: "Fecha de Envío"
111
+ search_order_number: "Buscar número de pedido"
112
+ select:
113
+ kilogram: "kilogramo"
114
+ pound: "libra"
115
+ dram: "dracma"
116
+ grain: "grano"
117
+ gram: "gramo"
118
+ hundredweight: "quintal"
119
+ milligram: "miligramo"
120
+ ounce: "onza"
121
+ tonne: "tonelada"
122
+ table:
123
+ address: "Dirección"
124
+ actions: "Acciones"
125
+ amount: "Cantidad"
126
+ allowed_applications: "Aplicaciones permitidas"
127
+ city: "Ciudad"
128
+ code: "CÓDIGO"
129
+ country: "País"
130
+ currency_unit: "Unidad de Moneda"
131
+ currency_weight: "Unidad de Peso"
132
+ customer: "Cliente"
133
+ customer_info: "Información del cliente"
134
+ description: "Descripción"
135
+ details: "Detalle"
136
+ discount: "Descuento"
137
+ discount_type: "Tipo de Descuento"
138
+ email: "Correo Electrónico"
139
+ expiration_date: "Fecha de expiración"
140
+ expired: "Expirado"
141
+ firstname: "Nombre"
142
+ id: "ID"
143
+ lastname: "Apellido"
144
+ login: "Inicio Sesión"
145
+ login_id: "Identificar de inicio"
146
+ max_weight: "Peso Máximo"
147
+ min_weight: "Peso Mínimo"
148
+ min_cart_total: "Compra total mínima"
149
+ method: "Método"
150
+ name: "Nombre"
151
+ not_paid: "No pagado"
152
+ number_account_bank: "Número Cuenta Bancaria"
153
+ password: "Contraseña"
154
+ paid: "A cargo?"
155
+ make_accepted: 'Marcar como aceptado'
156
+ make_shipped: 'Marcar como enviado'
157
+ make_canceled: 'Marcar como cancelado'
158
+ make_bank_confirmed: 'Marcar como Pagado'
159
+ confirm_mark_as_paid: 'Esta seguro de marcar como pagado?'
160
+ confirm_delete: 'Esta seguro de eliminar esta orden?'
161
+ payment_method: "Forma de Pago"
162
+ percent: "Porcentaje"
163
+ money: "Dinero"
164
+ free_shipping: "Envío Gratis"
165
+ phone: "Teléfono"
166
+ products: "Productos"
167
+ rate: "Tarifa"
168
+ received_time: "Tiempo Recibido"
169
+ sandbox: "Cuentas de Prueba"
170
+ shipping: "Envío"
171
+ signature: "Firma"
172
+ status: "Estado"
173
+ slug: "Código"
174
+ sub_total: "Sub Total"
175
+ state: "Estado"
176
+ total: "Total"
177
+ url_tracking: "URL de seguimiento"
178
+ username_login: "Nombre Usuario / Inicio Sesión"
179
+ used_applications: "Aplicaciones Usadas"
180
+ code_zip: "Código Postal"
181
+ method_type: "Tipo de metodo"
182
+ transaction_key: "Clave de transacción"
183
+ show_order:
184
+ consignment_number: 'Número de envío'
185
+
186
+
187
+ tax_rates: "Tasas de Impuesto"
188
+ add_to_cart: "Añadir al carro"
189
+ msg:
190
+ added_product_in_cart: "Producto añadido al carro correctamente."
191
+ shipping_prices: "Precios de envío"
192
+ mark_shipped: "Marcar como enviado"
193
+ mail:
194
+ dear: 'Estimado/a %{name}: '
195
+ order_received:
196
+ welcome: "Hola"
197
+ thanks: "Gracias por su compra"
198
+ reference: "Para su referencia, su número de orden es: "
199
+ boght_by: 'Compra realizada por %{user}'
200
+ recovery_cart:
201
+ body: "Hemos observado que usted a dejado pendiente una compra."
202
+ reference: "Para su referencia, su número de orden es: "
203
+ order_confirmed:
204
+ message: 'Hemos revisado y confirmado su pago por transferencia bancaria de su orden #%{order}. Gracias por su preferencia.'
205
+ subject: 'Order Confirmed'
206
+ order_shipped:
207
+ subject: 'Orden Enviado'
208
+ message: 'Tu orden %{order} a sido enviado.'
209
+ order_canceled:
210
+ subject: 'Orden Cancelado'
211
+ message: 'Tu orden %{order} a sido cancelado por la siguiente razon: %{message}'
212
+
213
+ email:
214
+ order_received:
215
+ subject: "Gracias por su compra"
216
+ recovery_cart:
217
+ subject: "Hemos observado que usted a dejado pendiente una compra."
218
+ order_received_admin:
219
+ subject: "Nueva Compra"
220
+
221
+ # frontend
222
+ plugins:
223
+ ecommerce:
224
+ messages:
225
+ cart_no_products: 'No existen productos en su carro'
226
+ checkout: 'Pago'
227
+ saved_order: 'Orden guardado'
228
+ not_enough_product_qty: 'No existen suficientes productos "%{product}" (%{qty})'
229
+ added_product_in_cart: 'Producto agregado al carrito'
230
+ cart_updated: 'Carro de compras actualizado'
231
+ cart_deleted: 'Producto eliminado de su carro de compras'
232
+ shopping_cart: 'Carro de compras'
233
+ invalid_access: 'Acceso no válido'
234
+ created_account: 'Cuenta creada satisfactoriamente'
235
+ my_orders: 'Mis Ordenes'
236
+ detail_order: 'Detalles de orden: #%{order}'
237
+ coupon_not_found: 'Cupón no encontrado'
238
+ coupon_expired: 'Cupón expirado'
239
+ inactive_coupon: 'Cupón deshabilitado'
240
+ canceled_order: 'Orden cancelado'
241
+ payment_completed: 'Compra realizada satisfactoriamente'
242
+ processing_order: 'Pago por orden #%{order}'
243
+ times_exceeded: 'Cantidad de usos excedido'
244
+ required_minimum_price: 'El monto de tu compra debe ser superior a %{min_amount}'
245
+ order_status:
246
+ bank_pending: 'Pendiente de confirmación'
247
+ canceled: 'Cancelado'
248
+ paid: 'Pagado'
249
+ shipped: 'Enviado'
250
+ received: 'Recibido'
251
+ accepted: 'Aceptado'
252
+
253
+ single:
254
+ available_items: 'Items Disponibles'
255
+ qty: 'Cantidad'
256
+ add_to_cart: 'Agregar al Carro'
257
+ descr: 'Descripción'
258
+ attrs: 'Atributos'
259
+ sku: 'SKU'
260
+ noavailable_items: 'No hay items disponibles'
261
+
262
+ front:
263
+ checkout:
264
+ cart_index:
265
+ item: 'Item'
266
+ tax: 'Impuesto'
267
+ price: 'Precio'
268
+ subtotal: 'Sub Total'
269
+ quantity: 'Cantidad'
270
+ delete: 'Eliminar'
271
+ update: 'Actualizar'
272
+ proceed: 'Realizar Compra'
273
+ title: 'Carro de Compras'
274
+ cart_update:
275
+ updated_products: 'Carro de compras actualizado'
276
+
277
+ index:
278
+ title: 'Información de Pedido'
279
+ user_details: 'Detalles de Comprador'
280
+ name: 'Nombre'
281
+ email: 'Correo Electrónico'
282
+ phone: 'Teléfono'
283
+ coupon: 'Cupón de descuento'
284
+ coupon_msg: 'Ingrese aquí su código'
285
+ apply: 'Aplicar'
286
+ shipping_options: 'Opciones de Envío'
287
+ shipping_method: 'Método de envío'
288
+ no_shipping_methods: 'No se han definido los métodos de envío'
289
+ create_order: 'Crear Orden de Compra'
290
+ total: 'Total'
291
+ qty: 'Cantidad'
292
+ item: 'Item'
293
+ price: 'Precio'
294
+ tax: 'Impuestos'
295
+ subtotal: 'Sub Total'
296
+ total_excl: 'Total (excluyendo impuestos)'
297
+ discount: 'Descuento'
298
+ total_shipping: 'Total envío'
299
+ total_price: 'Precio Total'
300
+ orders:
301
+ select_payment:
302
+ title: 'Método de Pago'
303
+ paypal: 'Paypal'
304
+ bank_transfer: 'Transferencia Bancaria'
305
+ account_number: 'Número de Cuenta'
306
+ details_transfer: 'Detalles'
307
+ credit_card: 'Tarjeta de Crédito'
308
+ authorize_net: 'Authorize.net'
309
+ stripe: 'Stripe'
310
+ order_now: 'Comprar'
311
+ order_details: 'Detalles de Orden'
312
+ first_name: 'Nombre'
313
+ last_name: 'Apellidos'
314
+ card_number: 'Tarjeta de Crédito'
315
+ exp_date: 'Fecha de expiración'
316
+ cvv: 'Código CVV'
317
+ code_key: 'Código / ID / KEY / TICKET'
318
+ bank_owner: 'Nombre de Cuenta en el banco'
319
+ bank_name: 'Nombre del banco'
320
+ descr: 'Descripción'
321
+ index:
322
+ title: 'Mis Ordenes'
323
+ id: 'ID'
324
+ status: 'Estado'
325
+ products: 'Productos'
326
+ total_amount: 'Monto Total'
327
+ coupon: 'Cupón'
328
+ paid_amount: 'Monto Pagado'
329
+ order_date: 'Fecha de Orden'
330
+ method: 'Método de Pago'
331
+ view: 'Ver Detalles'
332
+ buy: 'Comprar'
333
+
334
+ show:
335
+ title: 'Detalles de Orden'
336
+ customer_info: 'Información de Comprador'
337
+ name: 'Nombre'
338
+ email: 'Correo Electrónico'
339
+ phone: 'Teléfono'
340
+ billing_address: 'Dirección de factura'
341
+ address: 'Dirección'
342
+ details: 'Detalles'
343
+ shipping_address: 'Dirección de envío'
344
+ city: 'Ciudad'
345
+ state: 'Estado'
346
+ zip_code: 'Código zip'
347
+ country: 'País'
348
+ title_products: 'Productos y Pagos'
349
+ payment_type: 'Tipo de Pago'
350
+ buy_now: 'Comprar ahora'
351
+ cancel_order: 'Cancelar Orden'
352
+ shipping_method: 'Tipo de envío'
353
+ date_shipped: 'Fecha de Envío'
354
+ track_url: 'Url de seguimiento'
355
+ no_shipping: 'Metodo de envío no asignado'
356
+ no_shipped: 'No enviado'
357
+ login:
358
+ login: 'Acceder'
359
+ register: 'Registro'
360
+ username: 'Nombre de usuario'
361
+ forgot: 'Olvidó contraseña?'
362
+ pass: 'Password'
363
+ email: 'Correo Electrónico'
364
+ full_name: 'Nombre Completo'
365
+ confirm_pass: 'Confirme Password'
366
+ create_account: 'Create cuenta'
367
+
368
+
369
+ partials:
370
+ form_address:
371
+ firstname: 'Nombre(s)'
372
+ lastname: 'Apellido'
373
+ address: 'Dirección'
374
+ city: 'Ciudad'
375
+ country: 'País'
376
+ state: 'Estado'
377
+ code_zip: 'Código Zip'
378
+ shipping_address: 'Dirección de envío'
379
+ copy_address: 'Copiar mis datos de envío'
380
+ cart_widget:
381
+ shopping_cart: 'Carro de compras'
382
+ products_list: 'Lista de productos'
383
+ purchase: 'Comprar'
384
+ my_orders: 'Mis Ordenes'
385
+ total_items: '(%{qty}) items'
386
+ total: 'Total'
387
+
388
+
389
+ table_order_products:
390
+ qty: 'Cantidad'
391
+ item: 'Item'
392
+ price: 'Precio'
393
+ tax: 'Impuesto'
394
+ sub_total: 'Sub Total'
395
+ total_excluding_tax: 'Total (excluyendo impuestos)'
396
+ shipping: 'Total Envio'
397
+ total_price: 'Precio Total'
398
+ discounts: 'Descuentos'
399
+ sub_total: 'Sub Total'
400
+
401
+
402
+
403
+
404
+
405
+