camaleon_ecommerce 1.1 → 1.2

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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/plugins/ecommerce/admin_product.js.coffee +83 -0
  3. data/app/assets/javascripts/plugins/ecommerce/cart.js +3 -0
  4. data/app/controllers/plugins/ecommerce/admin/coupons_controller.rb +6 -12
  5. data/app/controllers/plugins/ecommerce/admin/orders_controller.rb +2 -8
  6. data/app/controllers/plugins/ecommerce/admin/payment_methods_controller.rb +7 -12
  7. data/app/controllers/plugins/ecommerce/admin/prices_controller.rb +0 -8
  8. data/app/controllers/plugins/ecommerce/admin/settings_controller.rb +0 -8
  9. data/app/controllers/plugins/ecommerce/admin/shipping_methods_controller.rb +6 -14
  10. data/app/controllers/plugins/ecommerce/admin/tax_rates_controller.rb +6 -12
  11. data/app/controllers/plugins/ecommerce/admin_controller.rb +27 -8
  12. data/app/controllers/plugins/ecommerce/front/checkout_controller.rb +42 -75
  13. data/app/controllers/plugins/ecommerce/front/orders_controller.rb +2 -10
  14. data/app/controllers/plugins/ecommerce/front_controller.rb +0 -8
  15. data/app/decorators/plugins/ecommerce/coupon_decorator.rb +0 -8
  16. data/app/decorators/plugins/ecommerce/product_decorator.rb +86 -35
  17. data/app/decorators/plugins/ecommerce/product_item_decorator.rb +27 -3
  18. data/app/decorators/plugins/ecommerce/product_variation_decorator.rb +18 -0
  19. data/app/helpers/plugins/ecommerce/ecommerce_email_helper.rb +11 -13
  20. data/app/helpers/plugins/ecommerce/ecommerce_functions_helper.rb +25 -11
  21. data/app/helpers/plugins/ecommerce/ecommerce_helper.rb +22 -27
  22. data/app/helpers/plugins/ecommerce/ecommerce_payment_helper.rb +1 -56
  23. data/app/models/plugins/ecommerce/attribute.rb +9 -0
  24. data/app/models/plugins/ecommerce/cart.rb +46 -28
  25. data/app/models/plugins/ecommerce/coupon.rb +0 -8
  26. data/app/models/plugins/ecommerce/legacy_cart.rb +50 -0
  27. data/app/models/plugins/ecommerce/legacy_order.rb +48 -0
  28. data/app/models/plugins/ecommerce/order.rb +0 -8
  29. data/app/models/plugins/ecommerce/order_detail.rb +0 -9
  30. data/app/models/plugins/ecommerce/payment_method.rb +0 -8
  31. data/app/models/plugins/ecommerce/product_item.rb +3 -10
  32. data/app/models/plugins/ecommerce/product_variation.rb +9 -0
  33. data/app/models/plugins/ecommerce/shipping_method.rb +0 -8
  34. data/app/models/plugins/ecommerce/tax_rate.rb +0 -8
  35. data/app/services/plugins/ecommerce/cart_service.rb +149 -0
  36. data/app/services/plugins/ecommerce/order_service.rb +26 -0
  37. data/app/services/plugins/ecommerce/product_item_service.rb +29 -0
  38. data/app/services/plugins/ecommerce/product_service.rb +17 -0
  39. data/app/services/plugins/ecommerce/site_service.rb +21 -0
  40. data/app/services/plugins/ecommerce/user_cart_service.rb +12 -0
  41. data/app/services/plugins/ecommerce/user_product_service.rb +29 -0
  42. data/app/services/plugins/ecommerce/util_service.rb +5 -0
  43. data/app/views/plugins/ecommerce/admin/orders/form.html.erb +28 -16
  44. data/app/views/plugins/ecommerce/admin/orders/index.html.erb +7 -1
  45. data/app/views/plugins/ecommerce/admin/payment_methods/form.html.erb +11 -1
  46. data/app/views/plugins/ecommerce/admin/product_attributes.html.erb +95 -0
  47. data/app/views/plugins/ecommerce/admin/products/_variations.html.erb +72 -0
  48. data/app/views/plugins/ecommerce/front/checkout/cart_index.html.erb +5 -5
  49. data/app/views/plugins/ecommerce/front/orders/show.html.erb +96 -89
  50. data/app/views/plugins/ecommerce/partials/_cart_widget.html.erb +3 -3
  51. data/app/views/plugins/ecommerce/partials/checkout/_details.html.erb +1 -1
  52. data/app/views/plugins/ecommerce/partials/checkout/_payments.html.erb +6 -1
  53. data/app/views/plugins/ecommerce/partials/checkout/_products_detail.html.erb +1 -1
  54. data/app/views/plugins/ecommerce/partials/checkout/_user_info.html.erb +26 -22
  55. data/app/views/post_types/commerce/single.html.erb +28 -12
  56. data/config/camaleon_plugin.json +4 -12
  57. data/config/custom_models.rb +10 -0
  58. data/config/locales/en.yml +3 -0
  59. data/config/locales/es.yml +112 -54
  60. data/config/routes.rb +2 -0
  61. data/db/migrate/20160527184747_add_new_cart_structure.rb +7 -4
  62. data/db/migrate/20160620200501_add_product_attributes_structure.rb +21 -0
  63. data/db/migrate/20160825174848_set_cama_post_decorator_class.rb +13 -0
  64. data/db/migrate/20160825232739_migrate_order_data.rb +87 -0
  65. data/lib/ecommerce/version.rb +1 -1
  66. metadata +22 -7
  67. data/app/assets/javascripts/plugins/ecommerce/admin.js +0 -0
  68. data/app/assets/javascripts/plugins/ecommerce/fix_form.js +0 -7
  69. data/config/currency_en.json +0 -154
  70. data/config/currency_es.json +0 -154
@@ -1,12 +1,12 @@
1
1
  <div class="row" style="min-height: 64px">
2
2
  <div class="col-md-9">
3
3
  <ol class="breadcrumb" style="margin: 0;">
4
- <% @ecommerce_bredcrumb.each_with_index do |m, index| %>
4
+ <% @ecommerce_breadcrumb.each_with_index do |m, index| %>
5
5
  <% if m[1].present? %>
6
- <li class="<%= "active" if @ecommerce_bredcrumb.size == index+1 %>">
6
+ <li class="<%= "active" if @ecommerce_breadcrumb.size == index+1 %>">
7
7
  <a href="<%= m[1] %>"><%= m[0] %></a></li>
8
8
  <% else %>
9
- <li class="<%= "active" if @ecommerce_bredcrumb.size == index+1 %>"><span><%= m[0] %></span></li>
9
+ <li class="<%= "active" if @ecommerce_breadcrumb.size == index+1 %>"><span><%= m[0] %></span></li>
10
10
  <% end %>
11
11
  <% end %>
12
12
  </ol>
@@ -31,5 +31,5 @@
31
31
  <%= render plugin_view('partials/checkout/products_detail') %>
32
32
  </div>
33
33
  <div class="text-right">
34
- <button type="submit" class="btn btn-primary">Next</button>
34
+ <button type="submit" class="btn btn-primary"><%= t('.next', default: 'Next') %></button>
35
35
  </div>
@@ -1,6 +1,6 @@
1
1
  <% if @cart.free_cart? %>
2
2
  <div class="free_order text-center col-md-12">
3
- <%= link_to('Complete Order', plugins_ecommerce_checkout_complete_free_order_url, class: 'btn btn-primary col-md-4 col-md-offset-4') %>
3
+ <%= link_to(t('.complete_order', default: 'Complete Order'), plugins_ecommerce_checkout_complete_free_order_url, class: 'btn btn-primary col-md-4 col-md-offset-4') %>
4
4
  </div>
5
5
  <% else %>
6
6
  <div id="e-payments-types" role="tabpanel">
@@ -114,6 +114,11 @@
114
114
  data-locale="<%= I18n.locale %>"></script>
115
115
  <% end %>
116
116
  <% end %>
117
+
118
+ <% if(custom_method = ecommerce_custom_payment_methods[payment.options[:type].to_sym]).present? %>
119
+ <%= render custom_method[:payment_form_view_path], payment: payment, options: payment.options, cart: @cart %>
120
+ <% end %>
121
+
117
122
  </div>
118
123
  <% end %>
119
124
  <%= content_tag(:div, 'No Payment Methods Defined', class: 'alert alert-danger') unless payment_methods.any? %>
@@ -13,7 +13,7 @@
13
13
  <% @cart.product_items.decorate.each do |item| product = item.product.decorate %>
14
14
  <tr>
15
15
  <td><%= item.qty %></td>
16
- <td><%= product.the_title %></td>
16
+ <td><%= link_to(item.the_title, product.the_url) %></td>
17
17
  <td><%= item.the_price %></td>
18
18
  <td><%= item.the_tax %></td>
19
19
  <td><%= item.the_sub_total %></td>
@@ -5,42 +5,43 @@
5
5
  %>
6
6
  <div class="row">
7
7
  <div id="billing_address" class="col-md-6">
8
- <h3><%= t('plugin.ecommerce.billing_address') %></h3>
9
-
8
+ <h3><%= t('.billing_address') %></h3>
10
9
  <div class="form-group">
11
- <label for=""><%= t('.firstname', default: 'First Name') %></label>
10
+ <label><%= t('.firstname', default: 'First Name') %></label>
12
11
  <%= text_field_tag 'order[billing_address][first_name]', billing_address[:first_name], class: 'form-control required' %>
13
-
14
12
  </div>
15
13
  <div class="form-group">
16
- <label for=""><%= t('.lastname', default: 'Last Name') %></label>
14
+ <label><%= t('.lastname', default: 'Last Name') %></label>
17
15
  <%= text_field_tag 'order[billing_address][last_name]',billing_address[:last_name], class: 'form-control required' %>
18
16
  </div>
19
17
  <div class="form-group">
20
- <label for=""><%= t('.address', default: 'Address') %></label>
18
+ <label><%= t('.address', default: 'Address') %></label>
21
19
  <%= text_field_tag 'order[billing_address][address1]',billing_address[:address1], class: 'form-control required' %>
22
20
  </div>
23
21
  <div class="form-group">
24
- <label for=""><%= t('.address', default: 'Address') %> 2</label>
22
+ <label><%= t('.address', default: 'Address') %> 2</label>
25
23
  <%= text_field_tag 'order[billing_address][address2]',billing_address[:address2], class: 'form-control' %>
26
24
  </div>
27
25
  <div class="form-group">
28
- <label for=""><%= t('.city', default: 'City') %></label>
26
+ <label><%= t('.city', default: 'City') %></label>
29
27
  <%= text_field_tag 'order[billing_address][city]',billing_address[:city], class: 'form-control required' %>
30
28
  </div>
31
29
  <div class="form-group">
32
- <label for=""><%= t('.country', default: 'Country') %></label>
30
+ <label><%= t('.country', default: 'Country') %></label>
33
31
  <%= country_select :billing_address, :country, {locale: I18n.locale.to_s, iso_codes: true, selected: billing_address[:country]}, { :name => 'order[billing_address][country]', class: 'form-control' } %>
34
32
  </div>
35
33
  <div class="form-group">
36
- <label for=""><%= t('.state', default: 'State') %></label>
34
+ <label><%= t('.state', default: 'State') %></label>
37
35
  <%= text_field_tag 'order[billing_address][state]',billing_address[:state], class: 'form-control' %>
38
36
  </div>
39
37
  <div class="form-group">
40
- <label for=""><%= t('.code_zip', default: 'Zip code') %></label>
38
+ <label><%= t('.code_zip', default: 'Zip code') %></label>
41
39
  <%= text_field_tag 'order[billing_address][zip]',billing_address[:zip], class: 'form-control' %>
42
40
  </div>
43
-
41
+ <div class="form-group">
42
+ <label><%= t('.phone_number', default: 'Phone Number') %></label>
43
+ <%= text_field_tag 'order[billing_address][phone_number]',billing_address[:phone_number], class: 'form-control' %>
44
+ </div>
44
45
  </div>
45
46
 
46
47
  <div id="shipping_address" class="col-md-6">
@@ -50,43 +51,46 @@
50
51
  </h3>
51
52
 
52
53
  <div class="form-group">
53
- <label for=""><%= t('.firstname') %></label>
54
+ <label><%= t('.firstname', default: 'First Name') %></label>
54
55
  <%= text_field_tag 'order[shipping_address][first_name]', shipping_address[:first_name], class: 'form-control required' %>
55
-
56
56
  </div>
57
57
  <div class="form-group">
58
- <label for=""><%= t('.lastname') %></label>
58
+ <label><%= t('.lastname', default: 'Last Name') %></label>
59
59
  <%= text_field_tag 'order[shipping_address][last_name]', shipping_address[:last_name], class: 'form-control required' %>
60
60
  </div>
61
61
  <div class="form-group">
62
- <label for=""><%= t('.address') %></label>
62
+ <label><%= t('.address', default: 'Address') %></label>
63
63
  <%= text_field_tag 'order[shipping_address][address1]', shipping_address[:address1], class: 'form-control required' %>
64
64
  </div>
65
65
  <div class="form-group">
66
- <label for=""><%= t('.address') %> 2</label>
66
+ <label><%= t('.address', default: 'Address') %> 2</label>
67
67
  <%= text_field_tag 'order[shipping_address][address2]', shipping_address[:address2], class: 'form-control' %>
68
68
  </div>
69
69
  <div class="form-group">
70
- <label for=""><%= t('.city') %></label>
70
+ <label><%= t('.city', default: 'City') %></label>
71
71
  <%= text_field_tag 'order[shipping_address][city]', shipping_address[:city], class: 'form-control required' %>
72
72
  </div>
73
73
  <div class="form-group">
74
- <label for=""><%= t('.country') %></label>
74
+ <label><%= t('.country', default: 'Country') %></label>
75
75
  <%= country_select :shipping_address, :country, {locale: I18n.locale.to_s, iso_codes: true, selected: billing_address[:country]}, { :name => 'order[shipping_address][country]', class: 'form-control' } %>
76
76
  </div>
77
77
  <div class="form-group">
78
- <label for=""><%= t('.state') %></label>
78
+ <label><%= t('.state', default: 'State') %></label>
79
79
  <%= text_field_tag 'order[shipping_address][state]', shipping_address[:state], class: 'form-control' %>
80
80
  </div>
81
81
  <div class="form-group">
82
- <label for=""><%= t('.code_zip') %></label>
82
+ <label><%= t('.code_zip', default: 'Zip code') %></label>
83
83
  <%= text_field_tag 'order[shipping_address][zip]', shipping_address[:zip], class: 'form-control' %>
84
84
  </div>
85
+ <div class="form-group">
86
+ <label><%= t('.phone_number', default: 'Phone Number') %></label>
87
+ <%= text_field_tag 'order[shipping_address][phone_number]', shipping_address[:phone_number], class: 'form-control' %>
88
+ </div>
85
89
  </div>
86
90
  <div class="clearfix"></div>
87
91
  <% unless defined?(as_partial) %>
88
92
  <div class="text-right col-md-12">
89
- <button type="submit" class="btn btn-primary">Next</button>
93
+ <button type="submit" class="btn btn-primary"><%= t('.next', default: 'Next') %></button>
90
94
  </div>
91
95
  <% end %>
92
96
  </div>
@@ -1,8 +1,7 @@
1
1
  <%= render plugin_view('partials/cart_widget') %>
2
- <% @field_values = @post.get_field_values_hash %>
3
2
  <div class="row">
4
3
  <div class="col-md-9 post-view">
5
- <article class="post-content">
4
+ <article class="post-content" id="product_view">
6
5
  <div class="row">
7
6
  <div class="col-md-6">
8
7
  <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
@@ -36,16 +35,27 @@
36
35
 
37
36
  <div class="col-md-6">
38
37
  <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>
38
+ <h3>
39
+ <%= t('plugins.ecommerce.single.sku', default: 'SKU') %>: <span id="product_sku"><%= @post.the_sku %></span>
40
+ <span class="pull-right"><%= raw @post.the_featured_status %></span>
41
+ </h3>
42
+ <h4><span id="product_price"><%= @post.the_price %></span> <span class="pull-right"><%= raw @post.the_stock_status %></span></h4>
42
43
  <hr/>
43
44
  <p><%= @post.the_excerpt %></p>
44
45
  <hr/>
45
46
  <% if @post.in_stock? %>
46
- <p><%= t('plugins.ecommerce.single.available_items', default: 'Items available') %>: <%= @post.the_qty_real %></p>
47
47
  <% if @post.the_qty_real.to_i > 0 %>
48
48
  <%= form_tag(plugins_ecommerce_checkout_cart_add_path, :method => "post", :class => "form") do %>
49
+ <% if @post.is_variation_product? %>
50
+ <div class="form-group">
51
+ <%= label_tag :variation_id %>
52
+ <select class="form-control required" name="variation_id" id="product_variation_id">
53
+ <% @post.product_variations.each_with_index do |variation, index| %>
54
+ <option data-sku="<%= variation.sku %>" <%= 'selected' if index == 0 %> <%= 'disabled' unless @post.in_stock?(variation.id) %> data-price="<%= @post.the_price(variation.id) %>" value="<%= variation.id %>"><%= @post.the_variation_title(variation.id) %></option>
55
+ <% end %>
56
+ </select>
57
+ </div>
58
+ <% end %>
49
59
  <div class="input-group">
50
60
  <span class="input-group-addon"><%= t('plugins.ecommerce.single.qty', default: 'Qty') %></span>
51
61
  <%= number_field :cart, :qty, class: 'form-control', value: 1, min: 0, max: @post.the_qty_real.to_i %>
@@ -67,22 +77,28 @@
67
77
  <%= raw @post.the_content %>
68
78
  </div>
69
79
  </div>
70
-
71
- <% attrs = []; @field_values[:ecommerce_attrs].to_a.each { |attr| attrs << JSON.parse(attr) rescue {} } %>
72
- <% if attrs.present? %>
80
+ <% if (attrs = @post.the_attribute_fields('ecommerce_attrs').to_a).present? %>
73
81
  <div class="col-md-6">
74
82
  <h3><%= t('plugins.ecommerce.single.attrs', default: 'Attributes') %></h3>
75
83
  <table class="table table-bordered">
76
- <% attrs.each do |data| %>
84
+ <% attrs.each_with_index do |attr, index| %>
77
85
  <tr>
78
- <td><strong><%= data['attr'].to_s.translate %></strong></td>
79
- <td><%= data['value'].to_s.translate %></td>
86
+ <td><strong><%= attr['attr'].to_s.translate %></strong></td>
87
+ <td><%= attr['value'].to_s.translate %></td>
80
88
  </tr>
81
89
  <% end %>
82
90
  </table>
83
91
  </div>
84
92
  <% end %>
85
93
  </div>
94
+ <% if @post.is_variation_product? %>
95
+ <script>
96
+ jQuery(function(){
97
+ var panel = $('#product_view');
98
+ panel.find('#product_variation_id').change(function(){ var op = $(this).find('option:selected'); panel.find('#product_sku').html(op.attr('data-sku')); panel.find('#product_price').html(op.attr('data-price')); }).trigger('change');
99
+ });
100
+ </script>
101
+ <% end %>
86
102
  </article>
87
103
  </div>
88
104
  <div class="col-md-3">
@@ -26,23 +26,15 @@
26
26
  "admin_before_load": [
27
27
  "ecommerce_admin_before_load"
28
28
  ],
29
- "on_render_post": [
30
- "ecommerce_on_render_post"
31
- ],
32
- "on_render_post_type": [
33
- "ecommerce_on_render_post_type"
34
- ],
35
29
  "list_post": [
36
30
  "ecommerce_admin_list_post"
37
31
  ],
38
32
  "app_before_load": [
39
33
  "ecommerce_app_before_load"
40
34
  ],
41
- "edit_post": [
42
- "ecommerce_form_post"
43
- ],
44
- "new_post": [
45
- "ecommerce_form_post"
46
- ]
35
+ "post_form_custom_html": ["ecommerce_admin_product_form"],
36
+ "created_post": ["ecommerce_admin_product_created"],
37
+ "updated_post": ["ecommerce_admin_product_created"]
38
+
47
39
  }
48
40
  }
@@ -7,10 +7,20 @@ Rails.application.config.to_prepare do
7
7
  has_many :shipping_methods, :class_name => "Plugins::Ecommerce::ShippingMethod", foreign_key: :parent_id, dependent: :destroy
8
8
  has_many :coupons, :class_name => "Plugins::Ecommerce::Coupon", foreign_key: :parent_id, dependent: :destroy
9
9
  has_many :tax_rates, :class_name => "Plugins::Ecommerce::TaxRate", foreign_key: :parent_id, dependent: :destroy
10
+ has_many :product_attributes, :class_name => "Plugins::Ecommerce::Attribute", foreign_key: :site_id, dependent: :destroy
10
11
  def products
11
12
  post_types.where(slug: 'commerce').first.try(:posts)
12
13
  end
13
14
  end
15
+
16
+ CamaleonCms::User.class_eval do
17
+ has_many :carts, class_name: 'Plugins::Ecommerce::Cart', foreign_key: :user_id
18
+ has_many :orders, class_name: 'Plugins::Ecommerce::Order', foreign_key: :user_id
19
+ end
20
+
21
+ CamaleonCms::Post.class_eval do
22
+ has_many :product_variations, class_name: 'Plugins::Ecommerce::ProductVariation', foreign_key: :product_id, dependent: :destroy
23
+ end
14
24
 
15
25
  CamaleonCms::SiteDecorator.class_eval do
16
26
  def current_unit
@@ -190,3 +190,6 @@
190
190
  order_received_admin:
191
191
  subject: "New purchase"
192
192
 
193
+
194
+
195
+
@@ -17,6 +17,7 @@ es:
17
17
  edit_coupon: "Editar Cupón"
18
18
  edit_order: "Editar Pedido"
19
19
  all_products: "Todos los Productos"
20
+ product_attributes: 'Atributos de Productos'
20
21
  add_new: "Agregar Nuevo"
21
22
  add_tax_rate: "Agregar Tasa de Impuesto"
22
23
  add_price: "Agregar Precio"
@@ -218,6 +219,38 @@ es:
218
219
  order_received_admin:
219
220
  subject: "Nueva Compra"
220
221
 
222
+ plugins:
223
+ ecommerce:
224
+ admin:
225
+ product_attributes:
226
+ group_label: 'Etiqueta de Grupo'
227
+ label: 'Etiqueta'
228
+ value: 'Valor'
229
+ title: 'Atributos de Producto'
230
+ add_attr_group: 'Agregar nuevo grupo'
231
+ add_new_value: 'Agregar valor'
232
+ values: 'Valores'
233
+ code: 'Código'
234
+ confirm_delete: 'Esta seguro de eliminar?'
235
+
236
+ save_product_attributes:
237
+ saved_product_attributes: 'Atributos guardados'
238
+
239
+
240
+ products:
241
+ variations:
242
+ title: 'Variaciones de Producto'
243
+ attributes: 'Atributos'
244
+ add_new_variation: 'Agregar Variación'
245
+ add_new_value: 'Agregar nuevo valor'
246
+ photo: 'Foto'
247
+ sku: 'SKU'
248
+ price: 'Precio'
249
+ weight: 'Peso'
250
+ qty: 'Cantidad'
251
+ confirm_del: 'Esta seguro de eliminar esta variación?'
252
+
253
+
221
254
  # frontend
222
255
  plugins:
223
256
  ecommerce:
@@ -225,7 +258,8 @@ es:
225
258
  cart_no_products: 'No existen productos en su carro'
226
259
  checkout: 'Pago'
227
260
  saved_order: 'Orden guardado'
228
- not_enough_product_qty: 'No existen suficientes productos "%{product}" (%{qty})'
261
+ not_enough_product_qty: 'No existen suficientes productos "%{product}" (Disponible %{qty})'
262
+ missing_variation: 'Variación de producto no válido'
229
263
  added_product_in_cart: 'Producto agregado al carrito'
230
264
  cart_updated: 'Carro de compras actualizado'
231
265
  cart_deleted: 'Producto eliminado de su carro de compras'
@@ -274,50 +308,7 @@ es:
274
308
  cart_update:
275
309
  updated_products: 'Carro de compras actualizado'
276
310
 
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
311
  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
312
  index:
322
313
  title: 'Mis Ordenes'
323
314
  id: 'ID'
@@ -354,6 +345,18 @@ es:
354
345
  track_url: 'Url de seguimiento'
355
346
  no_shipping: 'Metodo de envío no asignado'
356
347
  no_shipped: 'No enviado'
348
+ phone_number: 'Número de Teléfono'
349
+ total: 'Total'
350
+ qty: 'Cantidad'
351
+ item: 'Item'
352
+ price: 'Precio'
353
+ tax: 'Impuestos'
354
+ subtotal: 'Sub Total'
355
+ total_excl: 'Total (excluyendo impuestos)'
356
+ discount: 'Descuento'
357
+ total_shipping: 'Total envío'
358
+ total_price: 'Precio Total'
359
+
357
360
  login:
358
361
  login: 'Acceder'
359
362
  register: 'Registro'
@@ -367,16 +370,71 @@ es:
367
370
 
368
371
 
369
372
  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'
373
+ checkout:
374
+ user_info:
375
+ firstname: 'Nombre(s)'
376
+ lastname: 'Apellido'
377
+ address: 'Dirección'
378
+ city: 'Ciudad'
379
+ country: 'País'
380
+ state: 'Estado'
381
+ code_zip: 'Código Zip'
382
+ billing_address: "Dirección de facturación"
383
+ shipping_address: 'Dirección de envío'
384
+ copy_address: 'Copiar mis datos de envío'
385
+ phone_number: 'Número de Teléfono'
386
+ next: 'Siguiente'
387
+
388
+ payments:
389
+ title: 'Método de Pago'
390
+ paypal: 'Paypal'
391
+ bank_transfer: 'Transferencia Bancaria'
392
+ account_number: 'Número de Cuenta'
393
+ details_transfer: 'Detalles'
394
+ credit_card: 'Tarjeta de Crédito'
395
+ authorize_net: 'Authorize.net'
396
+ stripe: 'Stripe'
397
+ order_now: 'Comprar'
398
+ order_details: 'Detalles de Orden'
399
+ first_name: 'Nombre'
400
+ last_name: 'Apellidos'
401
+ card_number: 'Tarjeta de Crédito'
402
+ exp_date: 'Fecha de expiración'
403
+ cvv: 'Código CVV'
404
+ code_key: 'Código / ID / KEY / TICKET'
405
+ bank_owner: 'Nombre de Cuenta en el banco'
406
+ bank_name: 'Nombre del banco'
407
+ descr: 'Descripción'
408
+
409
+ products_details:
410
+ title: 'Información de Pedido'
411
+ user_details: 'Detalles de Comprador'
412
+ name: 'Nombre'
413
+ email: 'Correo Electrónico'
414
+ phone: 'Teléfono'
415
+
416
+ shipping_options: 'Opciones de Envío'
417
+ shipping_method: 'Método de envío'
418
+ no_shipping_methods: 'No se han definido los métodos de envío'
419
+ create_order: 'Crear Orden de Compra'
420
+ total: 'Total'
421
+ qty: 'Cantidad'
422
+ item: 'Item'
423
+ price: 'Precio'
424
+ tax: 'Impuestos'
425
+ subtotal: 'Sub Total'
426
+ total_excl: 'Total (excluyendo impuestos)'
427
+ discount: 'Descuento'
428
+ total_shipping: 'Total envío'
429
+ total_price: 'Precio Total'
430
+
431
+ details:
432
+ coupon: 'Cupón de descuento'
433
+ coupon_msg: 'Ingrese aquí su código'
434
+ apply: 'Aplicar'
435
+ shipping_options: 'Opciones de Envío'
436
+ next: 'Siguiente'
437
+
380
438
  cart_widget:
381
439
  shopping_cart: 'Carro de compras'
382
440
  products_list: 'Lista de productos'