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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/plugins/ecommerce/admin_product.js.coffee +83 -0
- data/app/assets/javascripts/plugins/ecommerce/cart.js +3 -0
- data/app/controllers/plugins/ecommerce/admin/coupons_controller.rb +6 -12
- data/app/controllers/plugins/ecommerce/admin/orders_controller.rb +2 -8
- data/app/controllers/plugins/ecommerce/admin/payment_methods_controller.rb +7 -12
- data/app/controllers/plugins/ecommerce/admin/prices_controller.rb +0 -8
- data/app/controllers/plugins/ecommerce/admin/settings_controller.rb +0 -8
- data/app/controllers/plugins/ecommerce/admin/shipping_methods_controller.rb +6 -14
- data/app/controllers/plugins/ecommerce/admin/tax_rates_controller.rb +6 -12
- data/app/controllers/plugins/ecommerce/admin_controller.rb +27 -8
- data/app/controllers/plugins/ecommerce/front/checkout_controller.rb +42 -75
- data/app/controllers/plugins/ecommerce/front/orders_controller.rb +2 -10
- data/app/controllers/plugins/ecommerce/front_controller.rb +0 -8
- data/app/decorators/plugins/ecommerce/coupon_decorator.rb +0 -8
- data/app/decorators/plugins/ecommerce/product_decorator.rb +86 -35
- data/app/decorators/plugins/ecommerce/product_item_decorator.rb +27 -3
- data/app/decorators/plugins/ecommerce/product_variation_decorator.rb +18 -0
- data/app/helpers/plugins/ecommerce/ecommerce_email_helper.rb +11 -13
- data/app/helpers/plugins/ecommerce/ecommerce_functions_helper.rb +25 -11
- data/app/helpers/plugins/ecommerce/ecommerce_helper.rb +22 -27
- data/app/helpers/plugins/ecommerce/ecommerce_payment_helper.rb +1 -56
- data/app/models/plugins/ecommerce/attribute.rb +9 -0
- data/app/models/plugins/ecommerce/cart.rb +46 -28
- data/app/models/plugins/ecommerce/coupon.rb +0 -8
- data/app/models/plugins/ecommerce/legacy_cart.rb +50 -0
- data/app/models/plugins/ecommerce/legacy_order.rb +48 -0
- data/app/models/plugins/ecommerce/order.rb +0 -8
- data/app/models/plugins/ecommerce/order_detail.rb +0 -9
- data/app/models/plugins/ecommerce/payment_method.rb +0 -8
- data/app/models/plugins/ecommerce/product_item.rb +3 -10
- data/app/models/plugins/ecommerce/product_variation.rb +9 -0
- data/app/models/plugins/ecommerce/shipping_method.rb +0 -8
- data/app/models/plugins/ecommerce/tax_rate.rb +0 -8
- data/app/services/plugins/ecommerce/cart_service.rb +149 -0
- data/app/services/plugins/ecommerce/order_service.rb +26 -0
- data/app/services/plugins/ecommerce/product_item_service.rb +29 -0
- data/app/services/plugins/ecommerce/product_service.rb +17 -0
- data/app/services/plugins/ecommerce/site_service.rb +21 -0
- data/app/services/plugins/ecommerce/user_cart_service.rb +12 -0
- data/app/services/plugins/ecommerce/user_product_service.rb +29 -0
- data/app/services/plugins/ecommerce/util_service.rb +5 -0
- data/app/views/plugins/ecommerce/admin/orders/form.html.erb +28 -16
- data/app/views/plugins/ecommerce/admin/orders/index.html.erb +7 -1
- data/app/views/plugins/ecommerce/admin/payment_methods/form.html.erb +11 -1
- data/app/views/plugins/ecommerce/admin/product_attributes.html.erb +95 -0
- data/app/views/plugins/ecommerce/admin/products/_variations.html.erb +72 -0
- data/app/views/plugins/ecommerce/front/checkout/cart_index.html.erb +5 -5
- data/app/views/plugins/ecommerce/front/orders/show.html.erb +96 -89
- data/app/views/plugins/ecommerce/partials/_cart_widget.html.erb +3 -3
- data/app/views/plugins/ecommerce/partials/checkout/_details.html.erb +1 -1
- data/app/views/plugins/ecommerce/partials/checkout/_payments.html.erb +6 -1
- data/app/views/plugins/ecommerce/partials/checkout/_products_detail.html.erb +1 -1
- data/app/views/plugins/ecommerce/partials/checkout/_user_info.html.erb +26 -22
- data/app/views/post_types/commerce/single.html.erb +28 -12
- data/config/camaleon_plugin.json +4 -12
- data/config/custom_models.rb +10 -0
- data/config/locales/en.yml +3 -0
- data/config/locales/es.yml +112 -54
- data/config/routes.rb +2 -0
- data/db/migrate/20160527184747_add_new_cart_structure.rb +7 -4
- data/db/migrate/20160620200501_add_product_attributes_structure.rb +21 -0
- data/db/migrate/20160825174848_set_cama_post_decorator_class.rb +13 -0
- data/db/migrate/20160825232739_migrate_order_data.rb +87 -0
- data/lib/ecommerce/version.rb +1 -1
- metadata +22 -7
- data/app/assets/javascripts/plugins/ecommerce/admin.js +0 -0
- data/app/assets/javascripts/plugins/ecommerce/fix_form.js +0 -7
- data/config/currency_en.json +0 -154
- 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
|
-
<% @
|
4
|
+
<% @ecommerce_breadcrumb.each_with_index do |m, index| %>
|
5
5
|
<% if m[1].present? %>
|
6
|
-
<li class="<%= "active" if @
|
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 @
|
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"
|
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><%=
|
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('
|
9
|
-
|
8
|
+
<h3><%= t('.billing_address') %></h3>
|
10
9
|
<div class="form-group">
|
11
|
-
<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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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"
|
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
|
40
|
-
<span
|
41
|
-
|
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.
|
84
|
+
<% attrs.each_with_index do |attr, index| %>
|
77
85
|
<tr>
|
78
|
-
<td><strong><%=
|
79
|
-
<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">
|
data/config/camaleon_plugin.json
CHANGED
@@ -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
|
-
"
|
42
|
-
|
43
|
-
]
|
44
|
-
|
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
|
}
|
data/config/custom_models.rb
CHANGED
@@ -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
|
data/config/locales/en.yml
CHANGED
data/config/locales/es.yml
CHANGED
@@ -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
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
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'
|