rshop 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +41 -0
- data/Rakefile +1 -0
- data/app/controllers/ajax/rshop/products_controller.rb +12 -0
- data/app/controllers/rshop/.keep +0 -0
- data/app/controllers/rshop/auto_products_controller.rb +38 -0
- data/app/controllers/rshop/brands_controller.rb +9 -0
- data/app/controllers/rshop/cart_controller.rb +61 -0
- data/app/controllers/rshop/checkout_controller.rb +69 -0
- data/app/controllers/rshop/products_controller.rb +13 -0
- data/app/controllers/rshop/stock_requests_controller.rb +17 -0
- data/app/mailers/order_mailer.rb +13 -0
- data/app/views/order_mailer/feedback.html.slim +3 -0
- data/app/views/order_mailer/new_order.html.slim +33 -0
- data/app/views/rshop/address/_address_form.html.slim +27 -0
- data/app/views/rshop/admin/order/_address.html.slim +13 -0
- data/app/views/rshop/admin/order/_order_items.html.slim +7 -0
- data/app/views/rshop/brands/index.html.slim +6 -0
- data/app/views/rshop/brands/show.html.slim +4 -0
- data/app/views/rshop/cart/show.html.slim +74 -0
- data/app/views/rshop/checkout/form.html.slim +65 -0
- data/app/views/rshop/checkout/ty.html.slim +22 -0
- data/app/views/rshop/products/_list.html.slim +27 -0
- data/app/views/rshop/products/all.html.slim +1 -0
- data/app/views/rshop/products/index.html.slim +0 -0
- data/app/views/rshop/products/show.html.slim +67 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/config/locales/rshop.ru.yml +141 -0
- data/config/locales/rshop_autozap.ru.yml +88 -0
- data/config/routes.rb +2 -0
- data/lib/generators/rshop_autozap_generator.rb +30 -0
- data/lib/generators/rshop_generator.rb +38 -0
- data/lib/generators/rshop_price_log_generator.rb +30 -0
- data/lib/generators/rshop_views_generator.rb +17 -0
- data/lib/generators/templates/app/admin/dashboard.rb +37 -0
- data/lib/generators/templates/app/admin/rshop/brand.rb +24 -0
- data/lib/generators/templates/app/admin/rshop/delivery.rb +4 -0
- data/lib/generators/templates/app/admin/rshop/order.rb +55 -0
- data/lib/generators/templates/app/admin/rshop/payment.rb +4 -0
- data/lib/generators/templates/app/admin/rshop/product.rb +61 -0
- data/lib/generators/templates/app/controllers/rshop/.keep +0 -0
- data/lib/generators/templates/app/models/rshop/address.rb +11 -0
- data/lib/generators/templates/app/models/rshop/album.rb +11 -0
- data/lib/generators/templates/app/models/rshop/album_image.rb +7 -0
- data/lib/generators/templates/app/models/rshop/brand.rb +24 -0
- data/lib/generators/templates/app/models/rshop/delivery.rb +3 -0
- data/lib/generators/templates/app/models/rshop/order.rb +65 -0
- data/lib/generators/templates/app/models/rshop/order_item.rb +9 -0
- data/lib/generators/templates/app/models/rshop/payment.rb +3 -0
- data/lib/generators/templates/app/models/rshop/product.rb +88 -0
- data/lib/generators/templates/app/uploaders/rshop_album_image_uploader.rb +49 -0
- data/lib/generators/templates/app/uploaders/rshop_base_image_uploader.rb +63 -0
- data/lib/generators/templates/app/uploaders/rshop_brand_uploader.rb +7 -0
- data/lib/generators/templates/migration.rb +95 -0
- data/lib/generators/templates_autozap/app/admin/rshop/auto_category.rb +16 -0
- data/lib/generators/templates_autozap/app/admin/rshop/auto_mark.rb +15 -0
- data/lib/generators/templates_autozap/app/admin/rshop/auto_model.rb +16 -0
- data/lib/generators/templates_autozap/app/admin/rshop/auto_subcategory.rb +14 -0
- data/lib/generators/templates_autozap/app/admin/rshop/product.rb +66 -0
- data/lib/generators/templates_autozap/app/controllers/rshop/.keep +0 -0
- data/lib/generators/templates_autozap/app/models/rshop/auto_category.rb +15 -0
- data/lib/generators/templates_autozap/app/models/rshop/auto_mark.rb +11 -0
- data/lib/generators/templates_autozap/app/models/rshop/auto_model.rb +13 -0
- data/lib/generators/templates_autozap/app/models/rshop/auto_subcategory.rb +12 -0
- data/lib/generators/templates_autozap/app/models/rshop/product.rb +94 -0
- data/lib/generators/templates_autozap/app/views/rshop/auto/_filters.html.slim +18 -0
- data/lib/generators/templates_autozap/migration.rb +51 -0
- data/lib/generators/templates_price_log/app/models/rshop/price_log.rb +5 -0
- data/lib/generators/templates_price_log/migration.rb +11 -0
- data/lib/rshop.rb +47 -0
- data/lib/rshop/application_controller.rb +51 -0
- data/lib/rshop/auto_application_controller.rb +43 -0
- data/lib/rshop/price_adjustable_product.rb +30 -0
- data/lib/rshop/price_loggable_product.rb +19 -0
- data/lib/rshop/version.rb +3 -0
- data/rshop.gemspec +32 -0
- metadata +156 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
.cart-show.paper-panel
|
|
2
|
+
.clearfix
|
|
3
|
+
h2 Корзина
|
|
4
|
+
|
|
5
|
+
.progress.progress-stage
|
|
6
|
+
.progress-bar.progress-stage-1 style="width: 34%"
|
|
7
|
+
= t('rshop.cart.stage_1')
|
|
8
|
+
.progress-bar.progress-stage-2 style="width: 33%"
|
|
9
|
+
= t('rshop.cart.stage_2')
|
|
10
|
+
.pointer
|
|
11
|
+
.progress-bar.progress-stage-3 style="width: 33%"
|
|
12
|
+
= t('rshop.cart.stage_3')
|
|
13
|
+
|
|
14
|
+
- unless @cart.nil?
|
|
15
|
+
= form_for @cart, url: cart_path, method: :patch do |f|
|
|
16
|
+
table.table
|
|
17
|
+
thead
|
|
18
|
+
tr
|
|
19
|
+
th
|
|
20
|
+
= t('rshop.cart.item')
|
|
21
|
+
th
|
|
22
|
+
= t('rshop.cart.cost')
|
|
23
|
+
th
|
|
24
|
+
tbody
|
|
25
|
+
- @cart.order_items.each do |oi|
|
|
26
|
+
= f.fields_for :order_items, oi do |oif|
|
|
27
|
+
- product = oif.object.product
|
|
28
|
+
tr.product-item
|
|
29
|
+
td
|
|
30
|
+
.image
|
|
31
|
+
a href=product_path(product)
|
|
32
|
+
img src=product.image_url(:gallery)
|
|
33
|
+
.info
|
|
34
|
+
a href=product_path(product)
|
|
35
|
+
span.name #{product.name}
|
|
36
|
+
br
|
|
37
|
+
- if product.brand
|
|
38
|
+
a.brand href=brand_path(product.brand)
|
|
39
|
+
span #{product.brand.try(:name)}
|
|
40
|
+
br
|
|
41
|
+
td.qty
|
|
42
|
+
span.operation #{number_to_currency(product.price)} x
|
|
43
|
+
= oif.number_field :qty, class: "form-control", min: 1, max: 100
|
|
44
|
+
span.operation
|
|
45
|
+
| шт. =
|
|
46
|
+
span #{number_to_currency(oif.object.cost)}
|
|
47
|
+
td.remove-item-td
|
|
48
|
+
a.remove-item href=cart_item_path(oi) data-method="delete" title=t('rshop.cart_item.delete_title')
|
|
49
|
+
i.fa.fa-trash
|
|
50
|
+
tr
|
|
51
|
+
td colspan="3"
|
|
52
|
+
h3.pull-right #{number_to_currency(@cart.cost)}
|
|
53
|
+
tfoot
|
|
54
|
+
tr
|
|
55
|
+
td.has-flat-ts colspan="3"
|
|
56
|
+
.pull-left
|
|
57
|
+
/a href=permalink_path(@cart.order_items.last.product.category)
|
|
58
|
+
i.fa.fa-reply
|
|
59
|
+
| <-
|
|
60
|
+
.pull-right
|
|
61
|
+
button.btn.btn-success type="submit"
|
|
62
|
+
i.fa.l.fa-refresh.flat-ts-lb-success
|
|
63
|
+
span #{t('rshop.cart.save')}
|
|
64
|
+
|
|
|
65
|
+
button.btn.btn-success type="submit" name="buy_action"
|
|
66
|
+
i.fa.l.fa-shopping-cart.flat-ts-lb-success
|
|
67
|
+
span #{t('rshop.cart.checkout')}
|
|
68
|
+
|
|
69
|
+
- else
|
|
70
|
+
span #{t('rshop.cart.is_empty')}
|
|
71
|
+
br
|
|
72
|
+
br
|
|
73
|
+
br
|
|
74
|
+
.clearfix
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
.checkout-show
|
|
2
|
+
h2 Оформление заказа
|
|
3
|
+
.progress
|
|
4
|
+
.progress-bar.progress-bar-info style="width: 34%"
|
|
5
|
+
| 1. Поиск товаров
|
|
6
|
+
.progress-bar.progress-bar-warning style="width: 33%"
|
|
7
|
+
| 2. Просмотр корзины
|
|
8
|
+
.progress-bar.progress-bar-success.progress-bar-striped.active style="width: 33%"
|
|
9
|
+
| 3. Оформление заказа
|
|
10
|
+
.pointer
|
|
11
|
+
|
|
12
|
+
.row
|
|
13
|
+
.col-xs-12.col-sm-6.col-md-7.col-lg-8.action-variant
|
|
14
|
+
h4 Купить без регистрации
|
|
15
|
+
= simple_form_for @cart, url: checkout_save_path, id: 'checkout-full-form', html: { class: 's-form edit_order'} do |f|
|
|
16
|
+
.col-xs-12.col-lg-6
|
|
17
|
+
= f.simple_fields_for :address, @cart.address do |af|
|
|
18
|
+
.form-group
|
|
19
|
+
= af.label :phone, class: 'form-label', required: f.object.validate_saving?
|
|
20
|
+
span
|
|
21
|
+
= af.full_error :phone
|
|
22
|
+
= af.input_field :phone, class: 'form-control'
|
|
23
|
+
|
|
24
|
+
.form-group
|
|
25
|
+
= f.association :payment, required: f.object.validate_saving?, prompt: false, label_html: { class: 'form-label '}, input_html: { class: 'form-control' }
|
|
26
|
+
|
|
27
|
+
.form-group
|
|
28
|
+
= f.association :delivery, required: f.object.validate_saving?, prompt: false, label_html: { class: 'form-label '}, input_html: { class: 'form-control' }
|
|
29
|
+
|
|
30
|
+
= f.simple_fields_for :address, @cart.address do |af|
|
|
31
|
+
.form-group
|
|
32
|
+
= af.label :address, class: 'form-label', required: f.object.validate_saving?
|
|
33
|
+
span
|
|
34
|
+
= af.full_error :address
|
|
35
|
+
= af.input_field :address, class: 'form-control', as: :text
|
|
36
|
+
|
|
37
|
+
.col-xs-12.col-lg-6
|
|
38
|
+
= f.simple_fields_for :address, @cart.address do |af|
|
|
39
|
+
.form-group
|
|
40
|
+
= af.label :username, class: 'form-label'
|
|
41
|
+
span
|
|
42
|
+
= af.full_error :username
|
|
43
|
+
= af.input_field :username, class: 'form-control'
|
|
44
|
+
|
|
45
|
+
.form-group
|
|
46
|
+
= af.label :email, class: 'form-label'
|
|
47
|
+
span
|
|
48
|
+
= af.full_error :email
|
|
49
|
+
= af.input_field :email, class: 'form-control'
|
|
50
|
+
.form-group
|
|
51
|
+
= f.label :comments, class: 'form-label'
|
|
52
|
+
span
|
|
53
|
+
= f.full_error :comments
|
|
54
|
+
= f.input_field :comments, class: 'form-control'
|
|
55
|
+
|
|
56
|
+
.clearfix
|
|
57
|
+
hr.visible-lg
|
|
58
|
+
.form-group.text-center
|
|
59
|
+
button.btn.btn-primary.btn-lg
|
|
60
|
+
| Купить
|
|
61
|
+
i.fa.fa-caret-right
|
|
62
|
+
.clearfix
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
.clearfix
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
p.text-center
|
|
2
|
+
| Спасибо за покупку
|
|
3
|
+
|
|
4
|
+
/- if @order && false
|
|
5
|
+
script type="text/javascript"
|
|
6
|
+
| ga('ecommerce:addTransaction', {
|
|
7
|
+
'id': '#{@order.id}', // Transaction ID. Required.
|
|
8
|
+
'affiliation': 'Добра фігура', // Affiliation or store name.
|
|
9
|
+
'revenue': '#{@order.cost}', // Grand Total.
|
|
10
|
+
'shipping': '0', // Shipping.
|
|
11
|
+
'tax': '0' // Tax.
|
|
12
|
+
});
|
|
13
|
+
- @order.order_items.each do |item|
|
|
14
|
+
| ga('ecommerce:addItem', {
|
|
15
|
+
'id': '#{@order.id}', // Transaction ID. Required.
|
|
16
|
+
'name': '#{item.product.name}', // Product name. Required.
|
|
17
|
+
'sku': '#{item.product.code}', // SKU/code.
|
|
18
|
+
'category': '#{item.product.category.name}', // Category or variation.
|
|
19
|
+
'price': '#{item.product.price}', // Unit price.
|
|
20
|
+
'quantity': '#{item.qty}' // Quantity.
|
|
21
|
+
});
|
|
22
|
+
| ga('ecommerce:send');
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.product-list itemscope="" itemtype="http://schema.org/ItemList"
|
|
2
|
+
- products.each_with_index do |product, index|
|
|
3
|
+
.product-item itemtype="http://schema.org/Product" itemprop="itemListElement" itemscope=""
|
|
4
|
+
meta itemprop="url" content=product_path(product)
|
|
5
|
+
.hide itemtype="http://schema.org/Offer" itemprop="offers" itemscope=""
|
|
6
|
+
link itemprop="availability" content="in_stock"
|
|
7
|
+
meta itemprop="priceCurrency" content="UAH"
|
|
8
|
+
meta itemprop="price" content=product.price
|
|
9
|
+
|
|
10
|
+
.h3
|
|
11
|
+
a class="#{product.get_name_font}" href=product_path(product) itemprop="name" #{product.name}
|
|
12
|
+
|
|
13
|
+
- if product.is_promotion
|
|
14
|
+
.promotions
|
|
15
|
+
span.badge
|
|
16
|
+
| Акция
|
|
17
|
+
|
|
18
|
+
a href=product_path(product) rel="nofollow"
|
|
19
|
+
img.img-responsive src=product.image_url(:list) itemprop="image"
|
|
20
|
+
|
|
21
|
+
.price
|
|
22
|
+
span.value
|
|
23
|
+
span #{number_to_currency(product.price)}
|
|
24
|
+
|
|
25
|
+
.description itemprop="description"
|
|
26
|
+
.clearfix
|
|
27
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
= render 'list', products: @products
|
|
File without changes
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/script
|
|
2
|
+
| ga('send', 'event', 'Interface', 'product-show-action');
|
|
3
|
+
|
|
4
|
+
.product-show itemscope="" itemtype="http://schema.org/Product"
|
|
5
|
+
.hide itemprop="offers" itemscope="" itemtype="http://schema.org/Offer"
|
|
6
|
+
link itemprop="availability" content="in_stock"
|
|
7
|
+
meta itemprop="priceCurrency" content="UAH"
|
|
8
|
+
meta itemprop="price" content=@product.price
|
|
9
|
+
.hide itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating"
|
|
10
|
+
meta itemprop="ratingValue" content="4,3"
|
|
11
|
+
meta itemprop="ratingCount" content="15"
|
|
12
|
+
meta itemprop="bestRating" content="5"
|
|
13
|
+
|
|
14
|
+
.col-xs-12.col-sm-4
|
|
15
|
+
.album.m-t-15
|
|
16
|
+
- if @product.album.has_images?
|
|
17
|
+
a href=@product.album.images[0].url(:origin) rel="nofollow" data-lightbox="product-show"
|
|
18
|
+
img.img-responsive src=@product.album.images[0].url(:list) alt=@product.name itemprop="image"
|
|
19
|
+
.clearfix
|
|
20
|
+
- if @product.album.images.count > 1
|
|
21
|
+
.thumbs
|
|
22
|
+
- @product.album.images.each_with_index do |i, index|
|
|
23
|
+
- if index != 0
|
|
24
|
+
.col-xs-6.col-sm-4.row
|
|
25
|
+
a href=i.image.url data-lightbox="product-show"
|
|
26
|
+
img.img-responsive src=i.image.url(:gallery) alt=@product.name
|
|
27
|
+
- else
|
|
28
|
+
a rel="nofollow"
|
|
29
|
+
img.img-responsive src=@product.image_url alt=@product.name
|
|
30
|
+
.clearfix
|
|
31
|
+
|
|
32
|
+
.col-xs-12.col-sm-8
|
|
33
|
+
.desc
|
|
34
|
+
- if @product.is_promotion
|
|
35
|
+
.promotions
|
|
36
|
+
span.badge
|
|
37
|
+
| акція
|
|
38
|
+
= form_tag cart_items_path do
|
|
39
|
+
|
|
40
|
+
= hidden_field_tag(:product_id, @product.id)
|
|
41
|
+
|
|
42
|
+
h2 itemprop="name"
|
|
43
|
+
| #{@product.name}
|
|
44
|
+
|
|
45
|
+
.price
|
|
46
|
+
span.value
|
|
47
|
+
span itemprop="price" #{number_to_currency(@product.price)}
|
|
48
|
+
|
|
49
|
+
.qty
|
|
50
|
+
input type="number" class="form-control" value="1" name="qty" min="1" max="100"
|
|
51
|
+
| шт.
|
|
52
|
+
button.btn.btn-primary
|
|
53
|
+
i.fa.fa-shopping-cart
|
|
54
|
+
| В КОРЗИНУ
|
|
55
|
+
.clearfix
|
|
56
|
+
.m-t-15
|
|
57
|
+
.pull-left
|
|
58
|
+
- if @product.brand
|
|
59
|
+
div itemprop="brand" itemscope="" itemtype="http://schema.org/Organization"
|
|
60
|
+
| Виробник:
|
|
61
|
+
a href=brand_path(@product.brand) itemprop="name" #{@product.brand.name}
|
|
62
|
+
.clearfix
|
|
63
|
+
p.text.m-t-15 itemprop="description"
|
|
64
|
+
== @product.description
|
|
65
|
+
|
|
66
|
+
.clearfix
|
|
67
|
+
.clearfix
|
data/bin/console
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require "bundler/setup"
|
|
4
|
+
require "rshop"
|
|
5
|
+
|
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
+
|
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
+
# require "pry"
|
|
11
|
+
# Pry.start
|
|
12
|
+
|
|
13
|
+
require "irb"
|
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
ru:
|
|
2
|
+
number:
|
|
3
|
+
currency:
|
|
4
|
+
format:
|
|
5
|
+
unit: 'грн'
|
|
6
|
+
delimiter: ' '
|
|
7
|
+
separator: '.'
|
|
8
|
+
precision: 2
|
|
9
|
+
format: '%n %u'
|
|
10
|
+
|
|
11
|
+
active_admin:
|
|
12
|
+
filters:
|
|
13
|
+
predicates:
|
|
14
|
+
eq: равно
|
|
15
|
+
|
|
16
|
+
rshop:
|
|
17
|
+
order:
|
|
18
|
+
status_1: в корзине (не заказан)
|
|
19
|
+
status_2: новый заказ
|
|
20
|
+
status_3: заказ обработан
|
|
21
|
+
status_4: отклоненный заказ
|
|
22
|
+
cart_item:
|
|
23
|
+
created: Товар %{name} добавлен в корзину
|
|
24
|
+
deleted: Товар %{name} удален с корзины
|
|
25
|
+
delete_title: Удалить с корзины
|
|
26
|
+
cart:
|
|
27
|
+
view_title: Просмотреть корзину
|
|
28
|
+
is_empty: Корзина пустая
|
|
29
|
+
save: Сохранить изменения
|
|
30
|
+
checkout: Оформить заказ
|
|
31
|
+
flashed: Корзина очищена
|
|
32
|
+
cost: Стоимость
|
|
33
|
+
item: Товар
|
|
34
|
+
stage_1: 1. Поиск товаров
|
|
35
|
+
stage_2: 2. Просмотр корзины
|
|
36
|
+
stage_3: 3. оформление заказа
|
|
37
|
+
|
|
38
|
+
activerecord:
|
|
39
|
+
models:
|
|
40
|
+
rshop/brand:
|
|
41
|
+
one: Бренд
|
|
42
|
+
few: Брендов
|
|
43
|
+
many: Брендов
|
|
44
|
+
other: Бренды
|
|
45
|
+
|
|
46
|
+
rshop/product:
|
|
47
|
+
one: Товар
|
|
48
|
+
few: Товара
|
|
49
|
+
many: Товаров
|
|
50
|
+
other: Товары
|
|
51
|
+
|
|
52
|
+
rshop/album:
|
|
53
|
+
one: Альбом
|
|
54
|
+
few: Альбома
|
|
55
|
+
many: Альбомов
|
|
56
|
+
other: Альбома
|
|
57
|
+
|
|
58
|
+
rshop/album_image:
|
|
59
|
+
one: Изображение
|
|
60
|
+
few: Изображения
|
|
61
|
+
many: Изображений
|
|
62
|
+
other: Изображения
|
|
63
|
+
|
|
64
|
+
rshop/payment:
|
|
65
|
+
one: Способ оплаты
|
|
66
|
+
few: Способа оплаты
|
|
67
|
+
many: Способов оплаты
|
|
68
|
+
other: Способы оплаты
|
|
69
|
+
|
|
70
|
+
rshop/delivery:
|
|
71
|
+
one: Способ доставки
|
|
72
|
+
few: Способа доставки
|
|
73
|
+
many: Способов доставки
|
|
74
|
+
other: Способы доставки
|
|
75
|
+
|
|
76
|
+
rshop/order:
|
|
77
|
+
one: Заказ
|
|
78
|
+
few: Заказа
|
|
79
|
+
many: Заказов
|
|
80
|
+
other: Заказы
|
|
81
|
+
|
|
82
|
+
attributes:
|
|
83
|
+
rshop/order:
|
|
84
|
+
payment: Способ оплаты
|
|
85
|
+
delivery: Способ доставки
|
|
86
|
+
comments: Комментарии к заказу
|
|
87
|
+
status: Состояние (статус)
|
|
88
|
+
created_at: Создан
|
|
89
|
+
updated_at: Редактирован
|
|
90
|
+
cost: Стоимость товаров
|
|
91
|
+
order_items: Товары
|
|
92
|
+
address: Адрес
|
|
93
|
+
user: Пользователь
|
|
94
|
+
payment_and_delivery: Доставка
|
|
95
|
+
|
|
96
|
+
rshop/address:
|
|
97
|
+
phone: Телефон
|
|
98
|
+
address: Адрес
|
|
99
|
+
username: Имя
|
|
100
|
+
email: E-mail
|
|
101
|
+
|
|
102
|
+
rshop/brand:
|
|
103
|
+
name: Название
|
|
104
|
+
n: Приоритет
|
|
105
|
+
slug: Url-ключ
|
|
106
|
+
description: Описание
|
|
107
|
+
image: Изображение
|
|
108
|
+
remove_image: Удалить изображение
|
|
109
|
+
created_at: Создан
|
|
110
|
+
updated_at: Редактирован
|
|
111
|
+
|
|
112
|
+
rshop/product:
|
|
113
|
+
name: Название
|
|
114
|
+
n: Приоритет
|
|
115
|
+
slug: Url-ключ
|
|
116
|
+
description: Описание
|
|
117
|
+
price: Цена продажи
|
|
118
|
+
price_hint: например "200.50" (используйте точку для копеек)
|
|
119
|
+
code: Код (артикул)
|
|
120
|
+
brand: Бренд
|
|
121
|
+
album: Альбом
|
|
122
|
+
categories: Катагории
|
|
123
|
+
description_short: Краткое описание
|
|
124
|
+
is_promotion: По акции
|
|
125
|
+
is_published: Опубликован
|
|
126
|
+
in_stock: В наличии
|
|
127
|
+
created_at: Создан
|
|
128
|
+
updated_at: Редактирован
|
|
129
|
+
|
|
130
|
+
rshop/payment:
|
|
131
|
+
name: Название
|
|
132
|
+
n: Приоритет
|
|
133
|
+
created_at: Создан
|
|
134
|
+
updated_at: Редактирован
|
|
135
|
+
|
|
136
|
+
rshop/delivery:
|
|
137
|
+
name: Название
|
|
138
|
+
n: Приоритет
|
|
139
|
+
created_at: Создан
|
|
140
|
+
updated_at: Редактирован
|
|
141
|
+
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
ru:
|
|
2
|
+
number:
|
|
3
|
+
currency:
|
|
4
|
+
format:
|
|
5
|
+
unit: 'грн'
|
|
6
|
+
delimiter: ' '
|
|
7
|
+
separator: '.'
|
|
8
|
+
precision: 2
|
|
9
|
+
format: '%n <span class="currency">%u</span>'
|
|
10
|
+
|
|
11
|
+
activerecord:
|
|
12
|
+
models:
|
|
13
|
+
rshop/auto_mark:
|
|
14
|
+
one: Авто марка
|
|
15
|
+
few: Авто марки
|
|
16
|
+
many: Авто марок
|
|
17
|
+
other: Авто марки
|
|
18
|
+
|
|
19
|
+
rshop/auto_model:
|
|
20
|
+
one: Авто модель
|
|
21
|
+
few: Авто модели
|
|
22
|
+
many: Авто моделей
|
|
23
|
+
other: Авто модели
|
|
24
|
+
|
|
25
|
+
rshop/auto_category:
|
|
26
|
+
one: Авто категория
|
|
27
|
+
few: Авто категории
|
|
28
|
+
many: Авто категорий
|
|
29
|
+
other: Авто категории
|
|
30
|
+
|
|
31
|
+
rshop/auto_subcategory:
|
|
32
|
+
one: Авто подкатегория
|
|
33
|
+
few: Авто подкатегории
|
|
34
|
+
many: Авто подкатегорий
|
|
35
|
+
other: Авто подкатегории
|
|
36
|
+
|
|
37
|
+
attributes:
|
|
38
|
+
rshop/auto_mark:
|
|
39
|
+
name: Название
|
|
40
|
+
n: Приоритет
|
|
41
|
+
slug: Url-ключ
|
|
42
|
+
image: Изображение
|
|
43
|
+
remove_image: Удалить изображение
|
|
44
|
+
created_at: Создан
|
|
45
|
+
updated_at: Редактирован
|
|
46
|
+
|
|
47
|
+
rshop/auto_model:
|
|
48
|
+
mark: Марка авто
|
|
49
|
+
name: Название
|
|
50
|
+
n: Приоритет
|
|
51
|
+
slug: Url-ключ
|
|
52
|
+
image: Изображение
|
|
53
|
+
remove_image: Удалить изображение
|
|
54
|
+
created_at: Создан
|
|
55
|
+
updated_at: Редактирован
|
|
56
|
+
|
|
57
|
+
rshop/auto_category:
|
|
58
|
+
name: Название
|
|
59
|
+
n: Приоритет
|
|
60
|
+
slug: Url-ключ
|
|
61
|
+
image: Изображение
|
|
62
|
+
remove_image: Удалить изображение
|
|
63
|
+
created_at: Создан
|
|
64
|
+
updated_at: Редактирован
|
|
65
|
+
|
|
66
|
+
rshop/auto_subcategory:
|
|
67
|
+
name: Название
|
|
68
|
+
n: Приоритет
|
|
69
|
+
slug: Url-ключ
|
|
70
|
+
image: Изображение
|
|
71
|
+
remove_image: Удалить изображение
|
|
72
|
+
created_at: Создан
|
|
73
|
+
updated_at: Редактирован
|
|
74
|
+
|
|
75
|
+
rshop/product:
|
|
76
|
+
admin_comment: Комент
|
|
77
|
+
xls_code: Идентификатор импорта
|
|
78
|
+
mark: Марка
|
|
79
|
+
model: Модель
|
|
80
|
+
category: Категория
|
|
81
|
+
subcategory: Подкатегория
|
|
82
|
+
album: Альбом
|
|
83
|
+
brand: Бренд
|
|
84
|
+
views_count: Просмотры
|
|
85
|
+
sold_count: Кол-во продаж
|
|
86
|
+
cart_count: Кол-во в корзине
|
|
87
|
+
ctb: в корзине / продажи
|
|
88
|
+
ctc: показы / в корзине
|