comable-core 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +97 -0
  4. data/app/assets/javascripts/comable/application.js +13 -0
  5. data/app/assets/stylesheets/comable/application.css +13 -0
  6. data/app/controllers/concerns/comable/permitted_attributes.rb +15 -0
  7. data/app/helpers/comable/application_helper.rb +84 -0
  8. data/app/helpers/comable/products_helper.rb +82 -0
  9. data/app/mailers/comable/order_mailer.rb +18 -0
  10. data/app/models/comable/ability.rb +18 -0
  11. data/app/models/comable/address.rb +39 -0
  12. data/app/models/comable/category.rb +72 -0
  13. data/app/models/comable/image.rb +15 -0
  14. data/app/models/comable/order.rb +121 -0
  15. data/app/models/comable/order/associations.rb +22 -0
  16. data/app/models/comable/order/callbacks.rb +43 -0
  17. data/app/models/comable/order/morrisable.rb +20 -0
  18. data/app/models/comable/order/scopes.rb +17 -0
  19. data/app/models/comable/order/validations.rb +39 -0
  20. data/app/models/comable/order_item.rb +98 -0
  21. data/app/models/comable/order_item/csvable.rb +32 -0
  22. data/app/models/comable/page.rb +30 -0
  23. data/app/models/comable/payment.rb +87 -0
  24. data/app/models/comable/payment_method.rb +27 -0
  25. data/app/models/comable/product.rb +55 -0
  26. data/app/models/comable/product/csvable.rb +20 -0
  27. data/app/models/comable/shipment.rb +85 -0
  28. data/app/models/comable/shipment_method.rb +9 -0
  29. data/app/models/comable/stock.rb +71 -0
  30. data/app/models/comable/stock/csvable.rb +26 -0
  31. data/app/models/comable/store.rb +30 -0
  32. data/app/models/comable/theme.rb +25 -0
  33. data/app/models/comable/tracker.rb +17 -0
  34. data/app/models/comable/user.rb +130 -0
  35. data/app/models/concerns/comable/cart_owner.rb +94 -0
  36. data/app/models/concerns/comable/checkout.rb +85 -0
  37. data/app/models/concerns/comable/importable.rb +67 -0
  38. data/app/models/concerns/comable/liquidable.rb +12 -0
  39. data/app/models/concerns/comable/product/search.rb +41 -0
  40. data/app/models/concerns/comable/ransackable.rb +38 -0
  41. data/app/models/concerns/comable/role_owner.rb +15 -0
  42. data/app/models/concerns/comable/sku_choice.rb +19 -0
  43. data/app/models/concerns/comable/sku_item.rb +17 -0
  44. data/app/uploaders/image_uploader.rb +7 -0
  45. data/app/views/comable/order_mailer/complete.text.erb +42 -0
  46. data/config/initializers/comma.rb +8 -0
  47. data/config/locales/en.yml +424 -0
  48. data/config/locales/ja.yml +425 -0
  49. data/db/migrate/20131214194807_create_comable_products.rb +15 -0
  50. data/db/migrate/20140120032559_create_comable_users.rb +46 -0
  51. data/db/migrate/20140502060116_create_comable_stocks.rb +14 -0
  52. data/db/migrate/20140723175431_create_comable_orders.rb +20 -0
  53. data/db/migrate/20140723175810_create_comable_order_items.rb +19 -0
  54. data/db/migrate/20140817194104_create_comable_payment_methods.rb +13 -0
  55. data/db/migrate/20140921191416_create_comable_shipment_methods.rb +11 -0
  56. data/db/migrate/20140926063541_create_comable_stores.rb +11 -0
  57. data/db/migrate/20141024025526_create_comable_addresses.rb +17 -0
  58. data/db/migrate/20150111031228_create_comable_categories.rb +10 -0
  59. data/db/migrate/20150111031229_create_comable_products_categories.rb +8 -0
  60. data/db/migrate/20150112173706_create_comable_images.rb +9 -0
  61. data/db/migrate/20150423095210_create_comable_shipments.rb +13 -0
  62. data/db/migrate/20150511171940_create_comable_payments.rb +12 -0
  63. data/db/migrate/20150513185230_create_comable_trackers.rb +12 -0
  64. data/db/migrate/20150519080729_create_comable_pages.rb +17 -0
  65. data/db/migrate/20150612143226_create_comable_themes.rb +15 -0
  66. data/db/migrate/20150612143445_add_theme_id_to_comable_stores.rb +7 -0
  67. data/db/seeds.rb +5 -0
  68. data/db/seeds/comable/users.rb +51 -0
  69. data/lib/comable/core.rb +48 -0
  70. data/lib/comable/core/configuration.rb +22 -0
  71. data/lib/comable/core/engine.rb +50 -0
  72. data/lib/comable/deprecator.rb +26 -0
  73. data/lib/comable/payment_provider.rb +14 -0
  74. data/lib/comable/payment_provider/base.rb +42 -0
  75. data/lib/comable/payment_provider/general.rb +15 -0
  76. data/lib/comable/state_machine_patch.rb +32 -0
  77. data/lib/comma_extractor_extentions.rb +31 -0
  78. data/lib/generators/comable/install/install_generator.rb +133 -0
  79. data/lib/generators/comable/install/templates/config/initializers/comable.rb +31 -0
  80. data/lib/tasks/comable_tasks.rake +4 -0
  81. metadata +346 -0
@@ -0,0 +1,38 @@
1
+ module Comable
2
+ module Ransackable
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ attr_reader :_ransack_options
7
+
8
+ def ransack_options(options = nil)
9
+ if options
10
+ @_ransack_options = options
11
+ else
12
+ @_ransack_options || {}
13
+ end
14
+ end
15
+
16
+ def ransackable_attribute?
17
+ klass.ransackable_attributes(auth_object).include? str
18
+ end
19
+
20
+ def ransackable_attributes(_auth_object = nil)
21
+ ransackable_attributes_options = ransack_options[:ransackable_attributes] || {}
22
+ if ransackable_attributes_options[:only]
23
+ [ransackable_attributes_options[:only]].flatten.map(&:to_s)
24
+ else
25
+ column_names + _ransackers.keys - [ransackable_attributes_options[:except]].flatten.map(&:to_s)
26
+ end
27
+ end
28
+
29
+ def ransackable_association?
30
+ klass.ransackable_associations(auth_object).include? str
31
+ end
32
+
33
+ def ransackable_associations(_auth_object = nil)
34
+ reflect_on_all_associations.map { |a| a.name.to_s }
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,15 @@
1
+ module Comable
2
+ module RoleOwner
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ extend Enumerize
7
+
8
+ enumerize :role, in: %i(
9
+ admin
10
+ reporter
11
+ customer
12
+ ), default: :customer, predicates: true, scope: true
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module Comable
2
+ #
3
+ # SKU選択肢
4
+ # 商品と注文明細にSKU選択肢としての機能を付与するためのモジュール
5
+ #
6
+ module SkuChoice
7
+ def name_with_sku
8
+ return name unless sku?
9
+ name + "(#{sku_name})"
10
+ end
11
+
12
+ def sku_name
13
+ return unless sku?
14
+ sku_name = sku_h_choice_name
15
+ sku_name += '/' + sku_v_choice_name if sku_v_choice_name.present?
16
+ sku_name
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ module Comable
2
+ #
3
+ # SKU項目
4
+ # 商品と注文明細にSKU項目としての機能を付与するためのモジュール
5
+ #
6
+ module SkuItem
7
+ def sku_h?
8
+ sku_h_item_name.present?
9
+ end
10
+
11
+ def sku_v?
12
+ sku_v_item_name.present?
13
+ end
14
+
15
+ alias_method :sku?, :sku_h?
16
+ end
17
+ end
@@ -0,0 +1,7 @@
1
+ class ImageUploader < CarrierWave::Uploader::Base
2
+ storage :file
3
+
4
+ def store_dir
5
+ "#{model.class.to_s.underscore}/#{model.id}"
6
+ end
7
+ end
@@ -0,0 +1,42 @@
1
+ <%= subject_for(@order) %>
2
+ <%= "#{@order.class.human_attribute_name(:code)}: #{@order.code}" %>
3
+ ----------------------------------------------------------------------
4
+
5
+ <%= Comable.t('order_mailer.complete.dear', name: @order.bill_full_name) %>
6
+
7
+ <%= Comable.t('order_mailer.complete.introductions', store_name: current_store.name) %>
8
+
9
+ <%- shipment = @order.shipment %>
10
+ <%- if shipment %>
11
+ <%= @order.class.human_attribute_name(:shipment_method) %>:
12
+ <%= shipment.name %>
13
+ <%- end %>
14
+
15
+ <%= @order.class.human_attribute_name(:ship_address) %>:
16
+ <%= name_with_honorific @order.ship_full_name %>
17
+
18
+ ======================================================================
19
+
20
+ <%= Comable::Order.model_name.human %>
21
+
22
+ <%= "#{@order.class.human_attribute_name(:code)}: #{@order.code}" %>
23
+ <%= "#{@order.class.human_attribute_name(:completed_at)}: #{I18n.l @order.completed_at.to_date}" %>
24
+
25
+ <%- @order.order_items.each do |order_item| %>
26
+ <%= name_with_quantity order_item.name_with_sku, order_item.quantity %>
27
+ <%= number_to_currency order_item.subtotal_price %>
28
+
29
+ <%- end %>
30
+ ----------------------------------------------------------------------
31
+
32
+ <%= "#{@order.class.human_attribute_name(:item_total_price)}: #{number_to_currency @order.item_total_price}" %>
33
+ <%= "#{@order.class.human_attribute_name(:payment_fee)}: #{number_to_currency @order.payment_fee}" %>
34
+ <%= "#{@order.class.human_attribute_name(:shipment_fee)}: #{number_to_currency @order.shipment_fee}" %>
35
+
36
+ <%= "#{@order.class.human_attribute_name(:total_price)}: #{number_to_currency @order.total_price}" %>
37
+
38
+ <%= "#{@order.class.human_attribute_name(:payment_method)}: #{@order.payment.name}\n" if @order.payment -%>
39
+
40
+ ======================================================================
41
+
42
+ <%= Comable.t('order_mailer.complete.outroductions', store_name: current_store.name) %>
@@ -0,0 +1,8 @@
1
+ # from https://github.com/comma-csv/comma/pull/50#issuecomment-22819269
2
+ Comma::HeaderExtractor.value_humanizer = lambda do |value, model_class|
3
+ if value.is_a?(String) || !model_class.respond_to?(:human_attribute_name)
4
+ Comma::HeaderExtractor::DEFAULT_VALUE_HUMANIZER.call(value, model_class)
5
+ else
6
+ model_class.human_attribute_name(value)
7
+ end
8
+ end
@@ -0,0 +1,424 @@
1
+ en:
2
+ comable:
3
+ cart: 'Cart'
4
+ shopping_cart: 'Shopping Cart'
5
+ checkout: 'Checkout'
6
+ show_cart: 'Show Cart'
7
+ search: 'Search'
8
+ category: 'Category'
9
+ my_account: 'My Account'
10
+ sign_in: 'Login'
11
+ sign_out: 'Logout'
12
+ guest: 'Guest'
13
+ guest_order: 'Guest Checkout'
14
+ add_to_cart: 'Add to Cart'
15
+ browse_related_products: 'Browse related products'
16
+ reorder: 'Buy it Again'
17
+ change_email_or_password: 'Change email address or password'
18
+ edit_your_address_book: 'Edit your address book'
19
+ address_book: 'Address book'
20
+ order_history: 'Order history'
21
+ next_step: 'Continue'
22
+ use_this_address: 'Use this address'
23
+ complete_order: 'Place your order'
24
+ use_as_billing_address: 'Use as Billing Address'
25
+ use_as_shipping_address: 'Use as Shipping Address'
26
+ new_billing_address: 'New billing address'
27
+ new_shipping_address: 'New shiping address'
28
+ edit_billing_address: 'Edit billing address'
29
+ edit_shipping_address: 'Edit shiping address'
30
+ other_addresses: 'Other addresses'
31
+ new_address: 'New address'
32
+ successful: 'Successful'
33
+ failure: 'Failure'
34
+ products: 'Products'
35
+ pages: 'Pages'
36
+ home: 'Home'
37
+ support: 'Support'
38
+ sample_header: 'Sample text'
39
+ sample_subheader: 'This is sample text.'
40
+ sample_text: 'Please write your message here.'
41
+ default_store_name: 'K&B style'
42
+
43
+ price: &price
44
+ 'Price'
45
+ quantity: &quantity
46
+ 'Quantity'
47
+ item_total_price: &item_total_price
48
+ 'Item total'
49
+ item_total_quantity: &item_total_quantity
50
+ 'Item total quantity'
51
+ soldout:
52
+ 'Soldout'
53
+ honorific: &honorific
54
+ 'Dear %{name}'
55
+
56
+ checkout_flow:
57
+ sign_in: 'Login'
58
+ address_and_payment: 'Address & Payment'
59
+ confirm: 'Confirm'
60
+ complete: 'Place Order'
61
+
62
+ actions:
63
+ new: 'New'
64
+ edit: 'Edit'
65
+ create: 'Create'
66
+ update: 'Update'
67
+ destroy: 'Destroy'
68
+ cancel: 'Cancel'
69
+ continue: 'Continue'
70
+
71
+ errors:
72
+ messages:
73
+ out_of_stock: '(%{name}) was Sold Out.'
74
+ out_of_stocks: 'Sold Out Items.'
75
+ product_not_found: '%{name} could not be found or has been deleted.'
76
+ products_not_found: 'This item could not be found or has been deleted.'
77
+
78
+ carts:
79
+ added: 'An item is added to Cart'
80
+ empty: 'Cart is empty.'
81
+ updated: 'Cart Updated'
82
+ invalid: 'Cart Errored'
83
+
84
+ orders:
85
+ success: 'Your order has been placed.'
86
+ failure: 'Your order has failed. Please check your order again.'
87
+
88
+ order_mailer:
89
+ complete:
90
+ subject: 'Your %{store_name} order has been placed (Order: %{order_code})'
91
+ dear: *honorific
92
+ introductions: |-
93
+ Thank you for shopping with %{store_name}.
94
+ Your order items:
95
+ outroductions: |-
96
+ We hope to see you again soon.
97
+ %{store_name}
98
+
99
+ admin:
100
+ not_found: 'Record not found.'
101
+ general: 'General'
102
+ images: 'Images'
103
+ main_image: 'Main image'
104
+ sub_image: 'Sub image'
105
+ home: 'Home'
106
+ product: 'Product'
107
+ index: 'List'
108
+ search: 'Search'
109
+ back_to_store: 'Back to Store'
110
+ confirmation_to_remove_product: 'This operation cannot be undone. Would you like to proceed?'
111
+ confirmation_to_remove_stock: 'This operation cannot be undone. Would you like to proceed?'
112
+ confirmation_to_remove_page: 'This operation cannot be undone. Would you like to proceed?'
113
+ you_can_drag_and_drop: 'Edit the category tree by drag-and-drop.'
114
+ you_can_right_click: 'Open the context menu by right click.'
115
+ link_to_add_new_node: 'Add a new category from the following link: '
116
+ link_to_add_new_stock: 'Add a new stock from the following link: '
117
+ check_this_product_in_frontend: 'Check this product in Store'
118
+ preview: 'preview'
119
+ note: 'NOTE:'
120
+ results: 'results'
121
+ times: 'times'
122
+ more: 'More'
123
+ access_denied: 'Access denied'
124
+ order_count: 'Order count'
125
+ new_orders: 'New Order'
126
+ new_users: 'New User'
127
+ sales: 'Sales'
128
+ better_than_last_week: 'Better than last week (%{percentage}%)'
129
+ edit_profile: 'Edit profile'
130
+ please_fill_when_using_sku: 'Please fill the text fielde when using sku.'
131
+ operation: 'Operation'
132
+ stocks: 'Stocks'
133
+ clear_search_conditions: 'Clear search conditions'
134
+ add_search_condition: 'Add search condition'
135
+ remove_search_condition: '×'
136
+ advanced_search: 'Advanced search'
137
+ bill: 'Billing address'
138
+ ship: 'Shipping address'
139
+ add_sub_image: 'Add a sub image'
140
+ sign_in: 'Login'
141
+ sign_out: 'Logout'
142
+ export_to_csv: 'Export to CSV'
143
+ export_to_excel: 'Export to Excel'
144
+ import: 'Import from file...'
145
+ unknown_file_type: 'Unknown file type: %{filename}'
146
+ is_not_exists: 'is not exists.'
147
+ ship: 'Ship'
148
+ help: 'Help'
149
+ tracker_code_help_introduction: |-
150
+ You can embed a Tracking ID, Order Information and many others by using a special symbol to Tracking code.
151
+ For example, you can embed Total Price of the order by writing <code>{{order.total_price}}</code>.
152
+ It will outputs as <code>1500</code> on the actual page.
153
+ tracker_code_help_additional: '<code>order.order_items</code> is Array. And you can retrieve the following information from each element.'
154
+ list_of_usable_variables: 'Available variables are as follows.'
155
+ mote_infomation_for_syntax: 'For more information about the syntax please refer to the following page:'
156
+ help_of_store_email: 'This field will be used as sender of mail that send to customers. The mail will not be sent when the field is empty.'
157
+ files: 'Files'
158
+ use_this_theme: 'Use this theme'
159
+ available_assigns: 'Available assigns'
160
+ available_assigns_in_all_pages: 'Available assigns in all pages'
161
+ available_filters: 'Available filters'
162
+ about_sintax: 'About sintax'
163
+ please_see_following_page_for_syntax: 'Please see the following page for the syntax:'
164
+ please_select_file_form_directory_tree_to_edit: 'Please select a file form the directory tree to edit.'
165
+ here_editor_will_be_displayed_and_you_can_edit_file: 'Here the editor will be displayed, you can edit file.'
166
+ nav:
167
+ dashboard: 'Dashboard'
168
+ order: 'Orders'
169
+ product: 'Products'
170
+ stock: 'Stocks'
171
+ category: 'Categories'
172
+ page: 'Pages'
173
+ user: 'Users'
174
+ general_settings: 'General settings'
175
+ store: 'Store'
176
+ shipment_method: 'Shipment methods'
177
+ payment_method: 'Payment methods'
178
+ tracker: 'Tracker'
179
+ theme: 'Theme'
180
+ products:
181
+ detail: 'Product details'
182
+ list: 'Product list'
183
+ orders:
184
+ detail: 'Order details'
185
+ cart: 'Cart infomation'
186
+ user: 'User details'
187
+ shipment: 'Shipment fee'
188
+ payment: 'Payment charge'
189
+ users:
190
+ detail: 'User details'
191
+ edit: 'Editing user'
192
+ new_orders: 'Recently orders (%{count})'
193
+ pages:
194
+ general: 'General'
195
+ seo: 'SEO'
196
+ visibility: 'publishing/closed'
197
+ published: 'Published'
198
+ unpublished: 'Unpublished'
199
+ stores:
200
+ edit: 'Editing store'
201
+ shipment_methods:
202
+ edit: 'Editing shipment method'
203
+ payment_methods:
204
+ edit: 'Editing payment method'
205
+ actions:
206
+ index: 'List'
207
+ new: 'New'
208
+ edit: 'Edit'
209
+ update: 'Update'
210
+ destroy: 'Destroy'
211
+ save: 'Save'
212
+ cancel: 'Cancel'
213
+ property: 'property'
214
+ categories:
215
+ new_node: 'New category'
216
+
217
+ sample:
218
+ suede_dress: 'Suede Dress'
219
+ girly_coat: 'Double Button Girly Coat'
220
+ fur_gloves: 'Fur Gloves with Side Stitching'
221
+ leather_boots: 'Leather Boots'
222
+ clothing: 'Clothing'
223
+ color: 'Color'
224
+ size: 'Size'
225
+ navy: 'Navy'
226
+ beige: 'Beige'
227
+ black_cat: 'Balck Cat'
228
+ credit_card: 'Credit Card'
229
+
230
+ activerecord:
231
+ state_machines:
232
+ comable/order:
233
+ state:
234
+ states:
235
+ cart: 'Cart'
236
+ orderer: 'Billing address'
237
+ delivery: 'Shipping address'
238
+ shipment: 'Shipment method'
239
+ payment: 'Payment method'
240
+ confirm: 'Order confirmed'
241
+ completed: 'Order placed'
242
+ canceled: 'Canceled'
243
+ resumed: 'Resumed'
244
+ events:
245
+ cancel: 'Cancel'
246
+ resume: 'Resume'
247
+ comable/payment:
248
+ state:
249
+ states:
250
+ pending: 'Pending'
251
+ ready: 'Authorized'
252
+ completed: 'Completed'
253
+ canceled: 'Canceled'
254
+ resumed: 'Resumed'
255
+ comable/shipment:
256
+ state:
257
+ states:
258
+ pending: 'Pending'
259
+ ready: 'Ready'
260
+ completed: 'Completed'
261
+ canceled: 'Canceled'
262
+ resumed: 'Resumed'
263
+
264
+ models:
265
+ comable/order: 'Orders'
266
+ comable/order_items: 'Order items'
267
+
268
+ attributes:
269
+ comable/user:
270
+ id: 'ID'
271
+ email: 'Email address'
272
+ password: 'Password'
273
+ password_confirmation: 'Password (confirmation)'
274
+ current_password: 'Current password'
275
+ bill_address: 'Billing address'
276
+ ship_address: 'Shipping address'
277
+ bill_full_name: 'Full name of the billing address'
278
+ orders: 'Orders'
279
+ role: 'Role'
280
+ sign_in_count: 'Sign in count'
281
+ current_sign_in_at: 'Current sign in at'
282
+ last_sign_in_at: 'Last sign in at'
283
+ current_sign_in_ip: 'Current sign in ip'
284
+ last_sign_in_ip: 'Last sign in ip'
285
+ comable/order:
286
+ id: 'ID'
287
+ code: 'Order number'
288
+ email: 'Email address'
289
+ bill_address: 'Billing address'
290
+ ship_address: 'Shipping address'
291
+ payment_method: 'Payment method'
292
+ shipment_method: 'Shipment method'
293
+ payment_fee: 'Payment fee'
294
+ shipment_fee: 'Shipment fee'
295
+ item_total_price: 'Item total'
296
+ total_price: 'Total'
297
+ order_items: 'Order items'
298
+ completed_at: 'Completed at'
299
+ state: 'State'
300
+ bill_address: 'Billing address'
301
+ ship_address: 'Shipping adress'
302
+ bill_full_name: 'Full name of the billing address'
303
+ order_items: 'Order items'
304
+ user_id: 'User ID'
305
+ guest_token: 'Guest token'
306
+ payment_state: 'Payment state'
307
+ shipment_state: 'Shipment state'
308
+ comable/order_item: &comable_order_item
309
+ quantity: *quantity
310
+ price: *price
311
+ product: 'Product'
312
+ subtotal_price: 'Subtotal'
313
+ name: 'Product name'
314
+ code: 'SKU code'
315
+ sku_h_choice_name: 'SKU Horizontal item name'
316
+ sku_v_choice_name: 'SKU Vertical item name'
317
+ sku_h_choice_name: 'SKU Horizontal choice name'
318
+ sku_v_choice_name: 'SKU Vertical choice name'
319
+ order: 'Order'
320
+ comable/address: &comable_address
321
+ full_name: 'Full name'
322
+ family_name: 'Last name'
323
+ first_name: 'First name'
324
+ state_name: 'State name'
325
+ zip_code: 'Zip code'
326
+ city: 'City'
327
+ detail: 'Detail'
328
+ phone_number: 'Phone number'
329
+ comable/product:
330
+ id: 'ID'
331
+ code: 'Code'
332
+ name: 'Name'
333
+ price: 'Price'
334
+ caption: 'Caption'
335
+ categories: 'Categories'
336
+ sku_h_item_name: 'SKU Horizontal item name'
337
+ sku_v_item_name: 'SKU Vertical item name'
338
+ comable/stock:
339
+ id: 'ID'
340
+ code: 'SKU Code'
341
+ quantity: 'Quantity'
342
+ sku_h_choice_name: 'SKU Horizontal choice name'
343
+ sku_v_choice_name: 'SKU Vertical choice name'
344
+ product: 'Product'
345
+ product_code: 'Product code'
346
+ comable/store:
347
+ name: 'Name'
348
+ meta_keywords: 'Meta keywords'
349
+ meta_description: 'Meta description'
350
+ email: 'Email'
351
+ comable/shipment_method:
352
+ name: 'Name'
353
+ fee: 'Fee'
354
+ activated_flag: 'Activated'
355
+ traking_url: 'Tracking URL'
356
+ comable/payment_method:
357
+ name: 'Name'
358
+ payment_provider: 'Oayment provider'
359
+ fee: 'Fee'
360
+ enable_price: 'Enable price range'
361
+ comable/tracker:
362
+ activated_flag: 'Activated'
363
+ name: 'Name'
364
+ tracker_id: 'Tracker ID'
365
+ code: 'Code'
366
+ place: 'Place'
367
+ comable/order/order_items:
368
+ <<: *comable_order_item
369
+ comable/order/bill_address:
370
+ <<: *comable_address
371
+ comable/order/ship_address:
372
+ <<: *comable_address
373
+ comable/payment:
374
+ id: 'ID'
375
+ order_id: 'Order ID'
376
+ payment_method_id: 'Payment method ID'
377
+ fee: 'Fee'
378
+ state: 'Status'
379
+ completed_at: 'Completed at'
380
+ comable/shipment:
381
+ id: 'ID'
382
+ order_id: 'Order ID'
383
+ shipment_method_id: 'Shipment method ID'
384
+ fee: 'Fee'
385
+ state: 'Status'
386
+ tracking_number: 'Tracking number'
387
+ completed_at: 'Completed at'
388
+ comable/page:
389
+ id: 'ID'
390
+ title: 'Title'
391
+ content: 'Content'
392
+ seo: 'SEO'
393
+ page_title: 'PageTitle'
394
+ meta_description: 'Meta Description'
395
+ meta_keywords: 'Meta Keywords'
396
+ slug: 'Slug'
397
+ published_at: 'Published at'
398
+ created_at: 'Created at'
399
+ updated_at: 'Updated at'
400
+ enumerize:
401
+ comable/user:
402
+ role:
403
+ customer: 'Customer'
404
+ reporter: 'Reporter'
405
+ admin: 'Administrator'
406
+ comable/tracker:
407
+ place:
408
+ everywhere: 'Everywhere'
409
+ checkout: 'Checkout'
410
+
411
+ views:
412
+ pagination:
413
+ first: "&laquo; First"
414
+ last: "Last &raquo;"
415
+ next: "Next &rsaquo;"
416
+ previous: "&lsaquo; Previous"
417
+ truncate: "&hellip;"
418
+
419
+ ransack:
420
+ predicates:
421
+ gteq: 'Greater than or equal to'
422
+ lteq: 'Less than or equal to'
423
+ eq_any_splitted: 'Exact match'
424
+ cont_any_splitted: 'Partial match'