caboose-store 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/javascripts/caboose/main.js +8 -0
  3. data/app/assets/javascripts/caboose_store/admin.js +0 -19
  4. data/app/assets/javascripts/caboose_store/admin_products.js +3 -4
  5. data/app/assets/javascripts/caboose_store/application.js +6 -5
  6. data/app/assets/javascripts/caboose_store/cart.js.bak +258 -0
  7. data/app/assets/javascripts/caboose_store/checkout.js +151 -0
  8. data/app/assets/javascripts/caboose_store/config.js +83 -0
  9. data/app/assets/javascripts/caboose_store/jquery-ui-multisortable.js +254 -0
  10. data/app/assets/javascripts/caboose_store/jquery-ui.js +3572 -0
  11. data/app/assets/javascripts/caboose_store/main.js +20 -0
  12. data/app/assets/javascripts/caboose_store/modules/cart.js +167 -0
  13. data/app/assets/javascripts/caboose_store/modules/checkout.js +313 -0
  14. data/app/assets/javascripts/caboose_store/modules/product.js +282 -0
  15. data/app/assets/stylesheets/caboose_store/admin.css +3 -3
  16. data/app/assets/stylesheets/caboose_store/application.css +2 -2
  17. data/app/assets/stylesheets/caboose_store/modal.css +1 -0
  18. data/app/assets/templates/caboose_store/cart/add_to_cart.jst.ejs +7 -0
  19. data/app/assets/templates/caboose_store/cart/line_items.jst.ejs +41 -0
  20. data/app/assets/templates/caboose_store/checkout/address.jst.ejs +53 -0
  21. data/app/assets/templates/caboose_store/checkout/forms/guest.jst.ejs +8 -0
  22. data/app/assets/templates/caboose_store/checkout/forms/register.jst.ejs +11 -0
  23. data/app/assets/templates/caboose_store/checkout/forms/signin.jst.ejs +7 -0
  24. data/app/assets/templates/caboose_store/checkout/line_items.jst.ejs +32 -0
  25. data/app/assets/templates/caboose_store/checkout/login.jst.ejs +21 -0
  26. data/app/assets/templates/caboose_store/checkout/payment.jst.ejs +5 -0
  27. data/app/assets/templates/caboose_store/checkout/shipping.jst.ejs +18 -0
  28. data/app/assets/templates/caboose_store/product/images.jst.ejs +8 -0
  29. data/app/assets/templates/caboose_store/product/options.jst.ejs +19 -0
  30. data/app/controllers/caboose_store/application_controller.rb +1 -11
  31. data/app/controllers/caboose_store/cart_controller.rb +36 -44
  32. data/app/controllers/caboose_store/cart_controller.rb.bak +169 -0
  33. data/app/controllers/caboose_store/categories_controller.rb +72 -92
  34. data/app/controllers/caboose_store/checkout_controller.rb +231 -151
  35. data/app/controllers/caboose_store/orders_controller.rb +235 -95
  36. data/app/controllers/caboose_store/product_images_controller.rb +1 -1
  37. data/app/controllers/caboose_store/products_controller.rb +275 -84
  38. data/app/controllers/caboose_store/reviews_controller.rb +1 -1
  39. data/app/controllers/caboose_store/variants_controller.rb +86 -20
  40. data/app/controllers/caboose_store/vendors_controller.rb +73 -0
  41. data/app/helpers/caboose_store/application_helper.rb +3 -41
  42. data/app/helpers/caboose_store/cart_helper.rb +0 -24
  43. data/app/helpers/caboose_store/categories_helper.rb +69 -25
  44. data/app/helpers/caboose_store/checkout_helper.rb +31 -0
  45. data/app/helpers/caboose_store/products_helper.rb +4 -80
  46. data/app/mailers/caboose_store/orders_mailer.rb +6 -13
  47. data/app/models/caboose_store/address.rb +5 -9
  48. data/app/models/caboose_store/caboose_store_plugin.rb +18 -7
  49. data/app/models/caboose_store/category.rb +66 -41
  50. data/app/models/caboose_store/category_membership.rb +1 -2
  51. data/app/models/caboose_store/customization_membership.rb +10 -0
  52. data/app/models/caboose_store/discount.rb +4 -2
  53. data/app/models/caboose_store/line_item.rb +77 -0
  54. data/app/models/caboose_store/message.rb +3 -5
  55. data/app/models/caboose_store/order.rb +153 -63
  56. data/app/models/caboose_store/order_discount.rb +1 -2
  57. data/app/models/caboose_store/order_pdf.rb +2 -4
  58. data/app/models/caboose_store/payment_processors/authorizenet.rb +20 -2
  59. data/app/models/caboose_store/payment_processors/base.rb +0 -2
  60. data/app/models/caboose_store/payment_processors/payscape.rb +91 -1
  61. data/app/models/caboose_store/product.rb +86 -30
  62. data/app/models/caboose_store/product_image.rb +50 -15
  63. data/app/models/caboose_store/product_image_variant.rb +3 -3
  64. data/app/models/caboose_store/review.rb +8 -8
  65. data/app/models/caboose_store/schema.rb +174 -119
  66. data/app/models/caboose_store/search_filter.rb +110 -115
  67. data/app/models/caboose_store/shipping_calculator.rb +51 -49
  68. data/app/models/caboose_store/tax_calculator.rb +2 -6
  69. data/app/models/caboose_store/tax_line.rb +1 -4
  70. data/app/models/caboose_store/variant.rb +77 -21
  71. data/app/models/caboose_store/vendor.rb +17 -2
  72. data/app/views/caboose_store/cart/index.html.erb +3 -18
  73. data/app/views/caboose_store/categories/admin_edit.html.erb +64 -67
  74. data/app/views/caboose_store/categories/admin_index.html.erb +7 -9
  75. data/app/views/caboose_store/categories/admin_new.html.erb +56 -39
  76. data/app/views/caboose_store/checkout/_address_form.html.erb +111 -0
  77. data/app/views/caboose_store/checkout/_billing_form.html.erb +47 -0
  78. data/app/views/caboose_store/checkout/_cart.html.erb +52 -0
  79. data/app/views/caboose_store/checkout/_order_discount.html.erb +40 -0
  80. data/app/views/caboose_store/checkout/_shipping_address.html.erb +10 -0
  81. data/app/views/caboose_store/checkout/_shipping_method.html.erb +2 -0
  82. data/app/views/caboose_store/checkout/_shipping_method_form.html.erb +21 -0
  83. data/app/views/caboose_store/checkout/billing.html.erb +4 -161
  84. data/app/views/caboose_store/checkout/discount.html.erb +5 -160
  85. data/app/views/caboose_store/checkout/empty.html.erb +2 -0
  86. data/app/views/caboose_store/checkout/error.html.erb +2 -0
  87. data/app/views/caboose_store/checkout/index.html.erb +30 -100
  88. data/app/views/caboose_store/checkout/login.html.erb +2 -0
  89. data/app/views/caboose_store/checkout/payment.html.erb +79 -0
  90. data/app/views/caboose_store/checkout/relay.html.erb +12 -0
  91. data/app/views/caboose_store/checkout/relay_postMessage.html.erb +19 -0
  92. data/app/views/caboose_store/checkout/shipping.html.erb +8 -83
  93. data/app/views/caboose_store/checkout/step_one.html.erb +15 -0
  94. data/app/views/caboose_store/checkout/step_two.html.erb +15 -0
  95. data/app/views/caboose_store/checkout/thanks.html.erb +5 -0
  96. data/app/views/caboose_store/layouts/_footer.html.erb +1 -1
  97. data/app/views/caboose_store/orders/admin_edit.html.erb +101 -7
  98. data/app/views/caboose_store/orders/admin_index.html.erb +8 -8
  99. data/app/views/caboose_store/orders_mailer/customer_new_order.html.erb +0 -46
  100. data/app/views/caboose_store/orders_mailer/customer_status_updated.html.erb +0 -48
  101. data/app/views/caboose_store/orders_mailer/fulfillment_new_order.html.erb +0 -42
  102. data/app/views/caboose_store/orders_mailer/shipping_order_ready.html.erb +0 -45
  103. data/app/views/caboose_store/products/_admin_header.html.erb +7 -6
  104. data/app/views/caboose_store/products/_sort_options.html.erb +19 -0
  105. data/app/views/caboose_store/products/admin_add_upcs.html.erb +58 -0
  106. data/app/views/caboose_store/products/admin_edit_categories.html.erb +1 -1
  107. data/app/views/caboose_store/products/admin_edit_description.html.erb +2 -5
  108. data/app/views/caboose_store/products/admin_edit_general.html.erb +58 -1
  109. data/app/views/caboose_store/products/admin_edit_images.html.erb +3 -1
  110. data/app/views/caboose_store/products/admin_edit_variants.html.erb +13 -2
  111. data/app/views/caboose_store/products/admin_edit_variants_single.html.erb +14 -14
  112. data/app/views/caboose_store/products/admin_group_variants.html.erb +433 -0
  113. data/app/views/caboose_store/products/admin_index.html.erb +87 -39
  114. data/app/views/caboose_store/products/admin_sort.html copy.erb +155 -0
  115. data/app/views/caboose_store/products/admin_sort.html.erb +254 -0
  116. data/app/views/caboose_store/products/details.html.erb +1 -2
  117. data/app/views/caboose_store/variants/admin_edit.html.erb +18 -16
  118. data/app/views/caboose_store/variants/admin_group.html.erb +184 -0
  119. data/app/views/caboose_store/vendors/admin_edit.html.erb +24 -0
  120. data/app/views/caboose_store/vendors/admin_index.html.erb +30 -0
  121. data/app/views/caboose_store/vendors/admin_new.html.erb +34 -0
  122. data/config/routes.rb +65 -27
  123. data/lib/caboose-store/caboose_store_helper.rb +29 -30
  124. data/lib/caboose-store/engine.rb +73 -28
  125. data/lib/caboose-store/version.rb +1 -1
  126. data/lib/caboose-store.rb +16 -7
  127. data/lib/tasks/caboose-store.rake +0 -2
  128. metadata +54 -17
  129. data/app/assets/javascripts/caboose_store/modal.js +0 -52
  130. data/app/assets/javascripts/caboose_store/modal_integration.js +0 -25
  131. data/app/assets/javascripts/caboose_store/model.form.page.js +0 -30
  132. data/app/assets/javascripts/caboose_store/model.form.user.js +0 -36
  133. data/app/assets/javascripts/caboose_store/payment_processors/authorizenet.js +0 -21
  134. data/app/assets/javascripts/caboose_store/payment_processors/base.js +0 -21
  135. data/app/assets/javascripts/caboose_store/payment_processors/payscape.js +0 -21
  136. data/app/assets/javascripts/caboose_store/shortcut.js +0 -11
  137. data/app/assets/javascripts/caboose_store/station.js +0 -60
  138. data/app/models/caboose_store/order_line_item.rb +0 -13
  139. data/app/models/caboose_store/states.rb +0 -60
  140. data/app/views/caboose_store/application/_category_thumb.html.erb +0 -6
  141. data/app/views/caboose_store/application/_product_thumb.html.erb +0 -13
  142. data/app/views/caboose_store/checkout/quantity_box.html.erb +0 -39
  143. data/app/views/caboose_store/checkout/thank_you.html.erb +0 -36
@@ -1,27 +1,62 @@
1
1
  module CabooseStore
2
2
  class ProductImage < ActiveRecord::Base
3
- self.table_name = "store_product_images"
3
+ self.table_name = 'store_product_images'
4
4
 
5
5
  belongs_to :product
6
6
  has_many :product_image_variants
7
- has_many :variants, :through => :product_image_variants
7
+ has_many :variants, :through => :product_image_variants
8
+
9
+
10
+ attr_accessible :id,
11
+ :product_id,
12
+ :title,
13
+ :position,
14
+ :image_file_name,
15
+ :image_content_type,
16
+ :image_file_size,
17
+ :image_updated_at,
18
+ :square_offset_x,
19
+ :square_offset_y,
20
+ :square_scale_factor
8
21
 
9
- attr_accessible :id, :title
10
22
  has_attached_file :image,
11
- #:path => "#{Rails.root}/public/products/:product_id_:id_:style.:extension",
12
- :path => "products/:product_id_:id_:style.:extension",
23
+ :path => "products/:product_id_:id_:style.:extension",
13
24
  :default_url => '/products/:id_:style.:extension',
14
- :styles => {
15
- :tiny => '100x100>',
16
- :thumb => '250x250>',
17
- :medium => '400x400>',
18
- :large => '800x800>',
19
- :huge => '1200x1200>'
20
- }
21
-
25
+ :s3_protocol => :https,
26
+ :styles => {
27
+ tiny: '100x100>',
28
+ thumb: '250x250>',
29
+ medium: '400x400>',
30
+ large: '800x800>',
31
+ huge: '1200x1200>'
32
+ }
33
+
34
+ default_scope order('position ASC')
35
+
36
+ validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png"]
37
+
38
+ def process
39
+ config = AssetSync.config
40
+ bucket = config.fog_directory
41
+ uri = "http://#{bucket}.s3.amazonaws.com/media-images/#{self.id}#{File.extname(self.title.downcase)}"
42
+ self.image = URI.parse(uri)
43
+ self.save
44
+ end
45
+
22
46
  def url(size) # 'tiny', 'thumb', 'medium', 'large', 'huge'
23
47
  self.image.url(size)
24
- #"https://s3.amazonaws.com/tuskwear/products/#{self.product_id}_#{self.id}_#{size}.jpg"
48
+ end
49
+
50
+ def as_json(options={})
51
+ self.attributes.merge({
52
+ :urls => {
53
+ :tiny => self.url(:tiny),
54
+ :thumb => self.url(:thumb),
55
+ :medium => self.url(:medium),
56
+ :large => self.url(:large),
57
+ :huge => self.url(:huge)
58
+ }
59
+ })
25
60
  end
26
61
  end
27
- end
62
+ end
@@ -1,10 +1,10 @@
1
-
2
1
  module CabooseStore
3
2
  class ProductImageVariant < ActiveRecord::Base
4
- self.table_name = "store_product_image_variants"
3
+ self.table_name = 'store_product_image_variants'
5
4
 
6
5
  belongs_to :product_image
7
6
  belongs_to :variant
8
-
7
+
8
+ attr_accessible :product_image_id, :variant_id
9
9
  end
10
10
  end
@@ -1,13 +1,13 @@
1
1
  module CabooseStore
2
2
  class Review < ActiveRecord::Base
3
- self.table_name = "store_reviews"
3
+ self.table_name = 'store_reviews'
4
4
 
5
- belongs_to :product
6
-
7
- attr_accessible :id,
8
- :product_id,
9
- :name,
10
- :rating,
11
- :content
5
+ belongs_to :product
6
+
7
+ attr_accessible :id,
8
+ :product_id,
9
+ :name,
10
+ :rating,
11
+ :content
12
12
  end
13
13
  end
@@ -3,121 +3,165 @@ class CabooseStore::Schema < Caboose::Utilities::Schema
3
3
 
4
4
  def self.schema
5
5
  {
6
+ CabooseStore::Address => [
7
+ [ :name , :string ],
8
+ [ :first_name , :string ],
9
+ [ :last_name , :string ],
10
+ [ :street , :string ],
11
+ [ :address1 , :string ],
12
+ [ :address2 , :string ],
13
+ [ :company , :string ],
14
+ [ :city , :string ],
15
+ [ :state , :string ],
16
+ [ :province , :string ],
17
+ [ :province_code , :string ],
18
+ [ :zip , :string ],
19
+ [ :country , :string ],
20
+ [ :country_code , :string ],
21
+ [ :phone , :string ]
22
+ ],
23
+
6
24
  CabooseStore::Category => [
7
- [ :parent_id , :integer ],
8
- [ :name , :string ],
9
- [ :url , :string ],
10
- [ :slug , :string ],
11
- [ :image_file_name , :string ],
12
- [ :image_content_type , :string ],
13
- [ :image_file_size , :integer ],
14
- [ :image_updated_at , :datetime ],
15
- [ :square_offset_x , :integer ],
16
- [ :square_offset_y , :integer ],
17
- [ :square_scale_factor , :numeric ],
18
- [ :sort , :integer ]
25
+ [ :parent_id , :integer ],
26
+ [ :name , :string ],
27
+ [ :url , :string ],
28
+ [ :slug , :string ],
29
+ [ :status , :string ],
30
+ [ :image_file_name , :string ],
31
+ [ :image_content_type , :string ],
32
+ [ :image_file_size , :integer ],
33
+ [ :image_updated_at , :datetime ],
34
+ [ :square_offset_x , :integer ],
35
+ [ :square_offset_y , :integer ],
36
+ [ :square_scale_factor , :numeric ],
37
+ [ :sort_order , :integer ]
19
38
  ],
39
+
20
40
  CabooseStore::CategoryMembership => [
21
- [ :category_id , :integer ],
22
- [ :product_id , :integer ]
41
+ [ :category_id , :integer ],
42
+ [ :product_id , :integer ]
23
43
  ],
44
+
24
45
  CabooseStore::Discount => [
25
- [ :id , :integer ],
26
- [ :name , :string ],
27
- [ :code , :string ],
28
- [ :amount_flat , :numeric ],
29
- [ :amount_percentage , :numeric ],
30
- [ :no_shipping , :boolean ],
31
- [ :no_tax , :boolean ]
46
+ [ :name , :string ],
47
+ [ :code , :string ],
48
+ [ :amount_current , :numeric ],
49
+ [ :amount_total , :numeric ],
50
+ [ :amount_flat , :numeric ],
51
+ [ :amount_percentage , :numeric ],
52
+ [ :no_shipping , :boolean ],
53
+ [ :no_tax , :boolean ]
32
54
  ],
55
+
33
56
  CabooseStore::OrderDiscount => [
34
- [ :order_id , :integer ],
35
- [ :discount_id , :integer ]
57
+ [ :order_id , :integer ],
58
+ [ :discount_id , :integer ]
36
59
  ],
37
- CabooseStore::OrderLineItem => [
38
- [ :order_id , :integer ],
39
- [ :variant_id , :integer ],
40
- [ :quantity , :integer ],
41
- [ :status , :string ],
42
- [ :tracking_number , :string ],
43
- [ :quantity_shipped , :integer ],
44
- [ :unit_price , :numeric ],
45
- [ :variant_sku , :string ]
60
+
61
+ CabooseStore::LineItem => [
62
+ [ :order_id , :integer ],
63
+ [ :variant_id , :integer ],
64
+ [ :parent_id , :integer ],
65
+ [ :quantity , :integer , :default => 0 ],
66
+ [ :status , :string ],
67
+ [ :tracking_number , :string ],
68
+ #[ :unit_price , :numeric ],
69
+ [ :price , :numeric , :default => 0 ],
70
+ [ :notes , :text ],
71
+ [ :custom1 , :string ],
72
+ [ :custom2 , :string ],
73
+ [ :custom3 , :string ]
46
74
  ],
75
+
47
76
  CabooseStore::Order => [
48
- [ :email , :string ],
49
- [ :order_number , :string ],
50
- [ :subtotal , :numeric ],
51
- [ :tax , :numeric ],
52
- [ :shipping , :numeric ],
53
- [ :discount , :numeric ],
54
- [ :total , :numeric ],
55
- [ :customer_id , :integer ],
56
- [ :payment_id , :integer ],
57
- [ :gateway_id , :integer ],
58
- [ :financial_status , :string ],
59
- [ :shipping_address_id , :integer ],
60
- [ :billing_address_id , :integer ],
61
- [ :notes , :text ],
62
- [ :status , :string ],
63
- [ :date_created , :datetime ],
64
- [ :date_authorized , :datetime ],
65
- [ :date_captured , :datetime ],
66
- [ :date_cancelled , :datetime ],
67
- [ :referring_site , :text ],
68
- [ :landing_page , :string ],
69
- [ :landing_page_ref , :string ],
70
- [ :shipping_method_code , :string ],
71
- [ :shipping_method , :string ],
72
- [ :handling , :numeric ],
73
- [ :transaction_id , :string ],
74
- [ :auth_code , :string ],
75
- [ :alternate_id , :integer ],
76
- [ :auth_amount , :numeric ],
77
- [ :date_shipped , :datetime ]
77
+ [ :email , :string ],
78
+ [ :order_number , :string ],
79
+ [ :subtotal , :numeric , :default => 0 ],
80
+ [ :tax , :numeric , :default => 0 ],
81
+ [ :shipping , :numeric , :default => 0 ],
82
+ [ :handling , :numeric , :default => 0 ],
83
+ [ :discount , :numeric , :default => 0 ],
84
+ [ :total , :numeric , :default => 0 ],
85
+ [ :customer_id , :integer ],
86
+ [ :payment_id , :integer ],
87
+ [ :gateway_id , :integer ],
88
+ [ :financial_status , :string ],
89
+ [ :shipping_address_id , :integer ],
90
+ [ :billing_address_id , :integer ],
91
+ [ :notes , :text ],
92
+ [ :status , :string ],
93
+ [ :date_created , :datetime ],
94
+ [ :date_authorized , :datetime ],
95
+ [ :date_captured , :datetime ],
96
+ [ :date_cancelled , :datetime ],
97
+ [ :referring_site , :text ],
98
+ [ :landing_page , :string ],
99
+ [ :landing_page_ref , :string ],
100
+ [ :shipping_code , :string ],
101
+ [ :transaction_id , :string ],
102
+ [ :auth_code , :string ],
103
+ [ :alternate_id , :integer ],
104
+ [ :auth_amount , :numeric ],
105
+ [ :date_shipped , :datetime ],
106
+ [ :transaction_id , :string ],
107
+ [ :transaction_service , :string ],
108
+ [ :amount_discounted , :numeric ],
109
+ [ :decremented , :boolean ]
78
110
  ],
111
+
79
112
  CabooseStore::ProductImage => [
80
- [ :product_id , :integer ],
81
- [ :title , :string ],
82
- [ :image_file_name , :string ],
83
- [ :image_content_type , :string ],
84
- [ :image_file_size , :integer ],
85
- [ :image_updated_at , :datetime ],
86
- [ :square_offset_x , :integer ],
87
- [ :square_offset_y , :integer ],
88
- [ :square_scale_factor , :numeric ]
113
+ [ :product_id , :integer ],
114
+ [ :title , :string ],
115
+ [ :position , :integer ],
116
+ [ :image_file_name , :string ],
117
+ [ :image_content_type , :string ],
118
+ [ :image_file_size , :integer ],
119
+ [ :image_updated_at , :datetime ],
120
+ [ :square_offset_x , :integer ],
121
+ [ :square_offset_y , :integer ],
122
+ [ :square_scale_factor , :numeric ]
89
123
  ],
124
+
90
125
  CabooseStore::ProductImageVariant => [
91
- [ :product_image_id , :integer ],
92
- [ :variant_id , :integer ]
126
+ [ :product_image_id , :integer ],
127
+ [ :variant_id , :integer ]
93
128
  ],
129
+
94
130
  CabooseStore::Product => [
95
- [ :title , :string ],
96
- [ :description , :text ],
97
- [ :handle , :string ],
98
- [ :vendor_id , :integer ],
99
- [ :option1 , :string ],
100
- [ :option2 , :string ],
101
- [ :option3 , :string ],
102
- [ :category_id , :integer ],
103
- [ :status , :string ],
104
- [ :default1 , :string ],
105
- [ :default2 , :string ],
106
- [ :default3 , :string ],
107
- [ :seo_title , :string ],
108
- [ :seo_description , :string ],
109
- [ :alternate_id , :integer ],
110
- [ :date_available , :datetime ]
131
+ [ :alternate_id , :string ],
132
+ [ :title , :string ],
133
+ [ :caption , :string ],
134
+ [ :description , :text ],
135
+ [ :handle , :string ],
136
+ [ :vendor_id , :integer ],
137
+ [ :option1 , :string ],
138
+ [ :option2 , :string ],
139
+ [ :option3 , :string ],
140
+ [ :category_id , :integer ],
141
+ [ :status , :string ],
142
+ [ :default1 , :string ],
143
+ [ :default2 , :string ],
144
+ [ :default3 , :string ],
145
+ [ :seo_title , :string ],
146
+ [ :seo_description , :string ],
147
+ [ :alternate_id , :string ],
148
+ [ :date_available , :datetime ],
149
+ [ :custom_input , :text ],
150
+ [ :sort_order , :integer ],
151
+ [ :featured , :boolean , :default => false ]
111
152
  ],
153
+
112
154
  CabooseStore::Review => [
113
- [ :product_id , :integer ],
114
- [ :content , :string ],
115
- [ :name , :string ],
116
- [ :rating , :decimal ]
155
+ [ :product_id , :integer ],
156
+ [ :content , :string ],
157
+ [ :name , :string ],
158
+ [ :rating , :decimal ]
117
159
  ],
160
+
118
161
  CabooseStore::SearchFilter => [
119
162
  [ :url , :string ],
120
163
  [ :title_like , :string ],
164
+ [ :search_like , :string ],
121
165
  [ :category_id , :integer ],
122
166
  [ :category , :text ],
123
167
  [ :vendors , :text ],
@@ -126,41 +170,52 @@ class CabooseStore::Schema < Caboose::Utilities::Schema
126
170
  [ :option3 , :text ],
127
171
  [ :prices , :text ]
128
172
  ],
173
+
129
174
  CabooseStore::Variant => [
130
- [ :sku , :string ],
131
- [ :barcode , :string ],
132
- [ :price , :numeric ],
133
- [ :available , :boolean ],
134
- [ :quantity_in_stock , :integer ],
135
- [ :allow_backorder , :boolean ],
136
- [ :weight , :decimal ],
137
- [ :length , :decimal ],
138
- [ :width , :decimal ],
139
- [ :height , :decimal ],
140
- [ :cylinder , :boolean ],
141
- [ :option1 , :string ],
142
- [ :option2 , :string ],
143
- [ :option3 , :string ],
144
- [ :requires_shipping , :boolean ],
145
- [ :taxable , :boolean ],
146
- [ :product_id , :integer ],
147
- [ :shipping_unit_value , :numeric ],
148
- [ :alternate_id , :integer ],
149
- [ :status , :string ]
175
+ [ :sku , :string ],
176
+ [ :barcode , :string ],
177
+ [ :price , :numeric , :default => 0 ],
178
+ [ :available , :boolean ],
179
+ #[ :quantity_in_stock , :integer ],
180
+ [ :quantity , :integer , :default => 0 ],
181
+ [ :ignore_quantity , :boolean ],
182
+ [ :allow_backorder , :boolean ],
183
+ [ :weight , :decimal ],
184
+ [ :length , :decimal ],
185
+ [ :width , :decimal ],
186
+ [ :height , :decimal ],
187
+ [ :cylinder , :boolean ],
188
+ [ :option1 , :string ],
189
+ [ :option2 , :string ],
190
+ [ :option3 , :string ],
191
+ [ :requires_shipping , :boolean ],
192
+ [ :taxable , :boolean ],
193
+ [ :product_id , :integer ],
194
+ [ :shipping_unit_value , :numeric ],
195
+ [ :alternate_id , :string ],
196
+ [ :status , :string ]
150
197
  ],
198
+
151
199
  CabooseStore::Vendor => [
152
- [ :name , :string ]
200
+ [ :name , :string ],
201
+ [ :status , :string, { default: 'Active' } ]
202
+ ],
203
+
204
+ CabooseStore::CustomizationMembership => [
205
+ [ :product_id , :integer ],
206
+ [ :customization_id , :integer ]
153
207
  ]
154
208
  }
155
209
  end
156
210
 
157
211
  def self.load_data
158
212
  if !CabooseStore::Category.exists?(1)
159
- CabooseStore::Category.create({ :id => 1, :name => 'All Products', :url => '/products', :slug => 'products' })
213
+ CabooseStore::Category.create({
214
+ id: 1,
215
+ name: 'All Products',
216
+ url: '/products',
217
+ slug: 'products'
218
+ })
160
219
  end
161
- if !CabooseStore::Vendor.exists?(1)
162
- CabooseStore::Vendor.create({ :id => 1, :name => 'Unknown' })
163
- end
164
220
  end
165
-
166
221
  end