camaleon_ecommerce 1.1 → 1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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'
|