solidus_core 1.0.0.pre

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.
Files changed (610) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +26 -0
  3. data/app/assets/images/logo/solidus.png +0 -0
  4. data/app/assets/images/logo/solidus_logo.png +0 -0
  5. data/app/assets/images/noimage/large.png +0 -0
  6. data/app/assets/images/noimage/mini.png +0 -0
  7. data/app/assets/images/noimage/product.png +0 -0
  8. data/app/assets/images/noimage/small.png +0 -0
  9. data/app/assets/javascripts/spree.js.coffee.erb +61 -0
  10. data/app/controllers/spree/base_controller.rb +15 -0
  11. data/app/helpers/spree/base_helper.rb +210 -0
  12. data/app/helpers/spree/checkout_helper.rb +31 -0
  13. data/app/helpers/spree/orders_helper.rb +17 -0
  14. data/app/helpers/spree/products_helper.rb +82 -0
  15. data/app/helpers/spree/store_helper.rb +16 -0
  16. data/app/helpers/spree/taxons_helper.rb +19 -0
  17. data/app/mailers/spree/base_mailer.rb +23 -0
  18. data/app/mailers/spree/carton_mailer.rb +12 -0
  19. data/app/mailers/spree/order_mailer.rb +35 -0
  20. data/app/mailers/spree/reimbursement_mailer.rb +10 -0
  21. data/app/mailers/spree/test_mailer.rb +8 -0
  22. data/app/models/concerns/spree/adjustment_source.rb +24 -0
  23. data/app/models/concerns/spree/calculated_adjustments.rb +33 -0
  24. data/app/models/concerns/spree/default_price.rb +34 -0
  25. data/app/models/concerns/spree/display_money.rb +32 -0
  26. data/app/models/concerns/spree/named_type.rb +12 -0
  27. data/app/models/concerns/spree/user_address.rb +30 -0
  28. data/app/models/concerns/spree/user_api_authentication.rb +13 -0
  29. data/app/models/concerns/spree/user_payment_source.rb +19 -0
  30. data/app/models/concerns/spree/user_reporting.rb +22 -0
  31. data/app/models/spree/ability.rb +74 -0
  32. data/app/models/spree/address.rb +157 -0
  33. data/app/models/spree/adjustment.rb +143 -0
  34. data/app/models/spree/app_configuration.rb +253 -0
  35. data/app/models/spree/asset.rb +6 -0
  36. data/app/models/spree/base.rb +15 -0
  37. data/app/models/spree/billing_integration.rb +21 -0
  38. data/app/models/spree/calculator.rb +47 -0
  39. data/app/models/spree/calculator/default_tax.rb +67 -0
  40. data/app/models/spree/calculator/flat_percent_item_total.rb +22 -0
  41. data/app/models/spree/calculator/flat_rate.rb +20 -0
  42. data/app/models/spree/calculator/flexi_rate.rb +33 -0
  43. data/app/models/spree/calculator/free_shipping.rb +21 -0
  44. data/app/models/spree/calculator/percent_on_line_item.rb +15 -0
  45. data/app/models/spree/calculator/percent_per_item.rb +50 -0
  46. data/app/models/spree/calculator/price_sack.rb +29 -0
  47. data/app/models/spree/calculator/returns/default_refund_amount.rb +36 -0
  48. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +22 -0
  49. data/app/models/spree/calculator/shipping/flat_rate.rb +18 -0
  50. data/app/models/spree/calculator/shipping/flexi_rate.rb +35 -0
  51. data/app/models/spree/calculator/shipping/per_item.rb +22 -0
  52. data/app/models/spree/calculator/shipping/price_sack.rb +28 -0
  53. data/app/models/spree/calculator/tiered_flat_rate.rb +37 -0
  54. data/app/models/spree/calculator/tiered_percent.rb +44 -0
  55. data/app/models/spree/carton.rb +57 -0
  56. data/app/models/spree/classification.rb +11 -0
  57. data/app/models/spree/country.rb +23 -0
  58. data/app/models/spree/credit_card.rb +197 -0
  59. data/app/models/spree/customer_return.rb +73 -0
  60. data/app/models/spree/exchange.rb +46 -0
  61. data/app/models/spree/gateway.rb +79 -0
  62. data/app/models/spree/gateway/bogus.rb +91 -0
  63. data/app/models/spree/gateway/bogus_simple.rb +26 -0
  64. data/app/models/spree/image.rb +44 -0
  65. data/app/models/spree/inventory_unit.rb +154 -0
  66. data/app/models/spree/item_adjustments.rb +85 -0
  67. data/app/models/spree/item_adjustments.rb.orig +93 -0
  68. data/app/models/spree/legacy_user.rb +38 -0
  69. data/app/models/spree/line_item.rb +183 -0
  70. data/app/models/spree/line_item_action.rb +6 -0
  71. data/app/models/spree/log_entry.rb +20 -0
  72. data/app/models/spree/option_type.rb +30 -0
  73. data/app/models/spree/option_value.rb +26 -0
  74. data/app/models/spree/option_values_variant.rb +6 -0
  75. data/app/models/spree/order.rb +811 -0
  76. data/app/models/spree/order/checkout.rb +351 -0
  77. data/app/models/spree/order/currency_updater.rb +40 -0
  78. data/app/models/spree/order/payments.rb +66 -0
  79. data/app/models/spree/order_cancellations.rb +72 -0
  80. data/app/models/spree/order_capturing.rb +49 -0
  81. data/app/models/spree/order_contents.rb +125 -0
  82. data/app/models/spree/order_inventory.rb +108 -0
  83. data/app/models/spree/order_mutex.rb +35 -0
  84. data/app/models/spree/order_promotion.rb +23 -0
  85. data/app/models/spree/order_shipping.rb +99 -0
  86. data/app/models/spree/order_stock_location.rb +15 -0
  87. data/app/models/spree/order_updater.rb +178 -0
  88. data/app/models/spree/payment.rb +292 -0
  89. data/app/models/spree/payment/processing.rb +210 -0
  90. data/app/models/spree/payment_capture_event.rb +9 -0
  91. data/app/models/spree/payment_method.rb +79 -0
  92. data/app/models/spree/payment_method/check.rb +31 -0
  93. data/app/models/spree/payment_method/store_credit.rb +127 -0
  94. data/app/models/spree/preference.rb +5 -0
  95. data/app/models/spree/preferences/configuration.rb +78 -0
  96. data/app/models/spree/preferences/preferable.rb +128 -0
  97. data/app/models/spree/preferences/preferable_class_methods.rb +64 -0
  98. data/app/models/spree/preferences/scoped_store.rb +33 -0
  99. data/app/models/spree/preferences/store.rb +93 -0
  100. data/app/models/spree/price.rb +62 -0
  101. data/app/models/spree/product.rb +347 -0
  102. data/app/models/spree/product/scopes.rb +262 -0
  103. data/app/models/spree/product_option_type.rb +7 -0
  104. data/app/models/spree/product_property.rb +25 -0
  105. data/app/models/spree/product_scope/scopes.rb +47 -0
  106. data/app/models/spree/promotion.rb +229 -0
  107. data/app/models/spree/promotion/actions/create_adjustment.rb +63 -0
  108. data/app/models/spree/promotion/actions/create_item_adjustments.rb +80 -0
  109. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +129 -0
  110. data/app/models/spree/promotion/actions/free_shipping.rb +41 -0
  111. data/app/models/spree/promotion/rules/first_order.rb +37 -0
  112. data/app/models/spree/promotion/rules/item_total.rb +61 -0
  113. data/app/models/spree/promotion/rules/one_use_per_user.rb +24 -0
  114. data/app/models/spree/promotion/rules/option_value.rb +50 -0
  115. data/app/models/spree/promotion/rules/product.rb +64 -0
  116. data/app/models/spree/promotion/rules/taxon.rb +69 -0
  117. data/app/models/spree/promotion/rules/user.rb +30 -0
  118. data/app/models/spree/promotion/rules/user_logged_in.rb +18 -0
  119. data/app/models/spree/promotion_action.rb +23 -0
  120. data/app/models/spree/promotion_builder.rb +55 -0
  121. data/app/models/spree/promotion_category.rb +6 -0
  122. data/app/models/spree/promotion_chooser.rb +30 -0
  123. data/app/models/spree/promotion_code.rb +39 -0
  124. data/app/models/spree/promotion_code/code_builder.rb +62 -0
  125. data/app/models/spree/promotion_handler/cart.rb +65 -0
  126. data/app/models/spree/promotion_handler/coupon.rb +119 -0
  127. data/app/models/spree/promotion_handler/free_shipping.rb +43 -0
  128. data/app/models/spree/promotion_handler/page.rb +24 -0
  129. data/app/models/spree/promotion_rule.rb +44 -0
  130. data/app/models/spree/property.rb +20 -0
  131. data/app/models/spree/prototype.rb +9 -0
  132. data/app/models/spree/refund.rb +96 -0
  133. data/app/models/spree/refund_reason.rb +13 -0
  134. data/app/models/spree/reimbursement.rb +188 -0
  135. data/app/models/spree/reimbursement/credit.rb +25 -0
  136. data/app/models/spree/reimbursement/reimbursement_type_engine.rb +56 -0
  137. data/app/models/spree/reimbursement/reimbursement_type_validator.rb +15 -0
  138. data/app/models/spree/reimbursement_performer.rb +43 -0
  139. data/app/models/spree/reimbursement_tax_calculator.rb +38 -0
  140. data/app/models/spree/reimbursement_type.rb +16 -0
  141. data/app/models/spree/reimbursement_type/credit.rb +13 -0
  142. data/app/models/spree/reimbursement_type/exchange.rb +9 -0
  143. data/app/models/spree/reimbursement_type/original_payment.rb +13 -0
  144. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +70 -0
  145. data/app/models/spree/reimbursement_type/store_credit.rb +27 -0
  146. data/app/models/spree/return_authorization.rb +108 -0
  147. data/app/models/spree/return_authorization_reason.rb +7 -0
  148. data/app/models/spree/return_item.rb +311 -0
  149. data/app/models/spree/return_item/eligibility_validator/base_validator.rb +24 -0
  150. data/app/models/spree/return_item/eligibility_validator/default.rb +30 -0
  151. data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +16 -0
  152. data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +17 -0
  153. data/app/models/spree/return_item/eligibility_validator/order_completed.rb +16 -0
  154. data/app/models/spree/return_item/eligibility_validator/rma_required.rb +17 -0
  155. data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +16 -0
  156. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +34 -0
  157. data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +9 -0
  158. data/app/models/spree/returns_calculator.rb +8 -0
  159. data/app/models/spree/role.rb +10 -0
  160. data/app/models/spree/role_user.rb +17 -0
  161. data/app/models/spree/shipment.rb +427 -0
  162. data/app/models/spree/shipping_calculator.rb +22 -0
  163. data/app/models/spree/shipping_category.rb +8 -0
  164. data/app/models/spree/shipping_manifest.rb +23 -0
  165. data/app/models/spree/shipping_method.rb +69 -0
  166. data/app/models/spree/shipping_method_category.rb +6 -0
  167. data/app/models/spree/shipping_rate.rb +57 -0
  168. data/app/models/spree/state.rb +30 -0
  169. data/app/models/spree/state_change.rb +15 -0
  170. data/app/models/spree/static_model_preferences.rb +32 -0
  171. data/app/models/spree/stock/adjuster.rb +28 -0
  172. data/app/models/spree/stock/availability_validator.rb +35 -0
  173. data/app/models/spree/stock/content_item.rb +48 -0
  174. data/app/models/spree/stock/coordinator.rb +96 -0
  175. data/app/models/spree/stock/differentiator.rb +44 -0
  176. data/app/models/spree/stock/estimator.rb +70 -0
  177. data/app/models/spree/stock/inventory_unit_builder.rb +22 -0
  178. data/app/models/spree/stock/inventory_validator.rb +14 -0
  179. data/app/models/spree/stock/package.rb +131 -0
  180. data/app/models/spree/stock/packer.rb +49 -0
  181. data/app/models/spree/stock/prioritizer.rb +47 -0
  182. data/app/models/spree/stock/quantifier.rb +47 -0
  183. data/app/models/spree/stock/splitter/backordered.rb +23 -0
  184. data/app/models/spree/stock/splitter/base.rb +28 -0
  185. data/app/models/spree/stock/splitter/shipping_category.rb +32 -0
  186. data/app/models/spree/stock/splitter/weight.rb +32 -0
  187. data/app/models/spree/stock_item.rb +107 -0
  188. data/app/models/spree/stock_location.rb +128 -0
  189. data/app/models/spree/stock_movement.rb +26 -0
  190. data/app/models/spree/stock_transfer.rb +108 -0
  191. data/app/models/spree/store.rb +38 -0
  192. data/app/models/spree/store_credit.rb +267 -0
  193. data/app/models/spree/store_credit_category.rb +17 -0
  194. data/app/models/spree/store_credit_event.rb +52 -0
  195. data/app/models/spree/store_credit_type.rb +6 -0
  196. data/app/models/spree/tax_category.rb +19 -0
  197. data/app/models/spree/tax_rate.rb +199 -0
  198. data/app/models/spree/taxon.rb +103 -0
  199. data/app/models/spree/taxonomy.rb +27 -0
  200. data/app/models/spree/tracker.rb +8 -0
  201. data/app/models/spree/transfer_item.rb +58 -0
  202. data/app/models/spree/unit_cancel.rb +32 -0
  203. data/app/models/spree/user_stock_location.rb +6 -0
  204. data/app/models/spree/validations/db_maximum_length_validator.rb +22 -0
  205. data/app/models/spree/variant.rb +356 -0
  206. data/app/models/spree/variant/scopes.rb +40 -0
  207. data/app/models/spree/zone.rb +138 -0
  208. data/app/models/spree/zone_member.rb +11 -0
  209. data/app/views/layouts/spree/base_mailer.html.erb +784 -0
  210. data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +19 -0
  211. data/app/views/spree/carton_mailer/shipped_email.text.erb +16 -0
  212. data/app/views/spree/order_mailer/cancel_email.html.erb +45 -0
  213. data/app/views/spree/order_mailer/cancel_email.text.erb +16 -0
  214. data/app/views/spree/order_mailer/confirm_email.html.erb +84 -0
  215. data/app/views/spree/order_mailer/confirm_email.text.erb +38 -0
  216. data/app/views/spree/order_mailer/inventory_cancellation_email.text.erb +10 -0
  217. data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +22 -0
  218. data/app/views/spree/shared/_base_mailer_footer.html.erb +20 -0
  219. data/app/views/spree/shared/_base_mailer_header.html.erb +31 -0
  220. data/app/views/spree/shared/_error_messages.html.erb +11 -0
  221. data/app/views/spree/shipment_mailer/shipped_email.html.erb +34 -0
  222. data/app/views/spree/test_mailer/test_email.html.erb +40 -0
  223. data/app/views/spree/test_mailer/test_email.text.erb +4 -0
  224. data/config/initializers/friendly_id.rb +88 -0
  225. data/config/initializers/premailer_assets.rb +1 -0
  226. data/config/initializers/user_class_extensions.rb +42 -0
  227. data/config/locales/en.yml +1534 -0
  228. data/config/routes.rb +1 -0
  229. data/db/default/spree/countries.rb +19 -0
  230. data/db/default/spree/roles.rb +2 -0
  231. data/db/default/spree/states.rb +16 -0
  232. data/db/default/spree/store_credit.rb +16 -0
  233. data/db/default/spree/stores.rb +9 -0
  234. data/db/default/spree/zones.rb +17 -0
  235. data/db/migrate/20120831092320_spree_one_two.rb +481 -0
  236. data/db/migrate/20120831092359_spree_promo_one_two.rb +45 -0
  237. data/db/migrate/20120905145253_add_tax_rate_label.rb +5 -0
  238. data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +5 -0
  239. data/db/migrate/20120929093553_remove_unused_preference_columns.rb +8 -0
  240. data/db/migrate/20121009142519_add_lock_version_to_variant.rb +5 -0
  241. data/db/migrate/20121010142909_add_states_required_to_countries.rb +5 -0
  242. data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +6 -0
  243. data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +11 -0
  244. data/db/migrate/20121031162139_split_prices_from_variants.rb +31 -0
  245. data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +9 -0
  246. data/db/migrate/20121107184631_add_currency_to_line_items.rb +5 -0
  247. data/db/migrate/20121107194006_add_currency_to_orders.rb +5 -0
  248. data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +5 -0
  249. data/db/migrate/20121111231553_remove_display_on_from_payment_methods.rb +5 -0
  250. data/db/migrate/20121124203911_add_position_to_taxonomies.rb +5 -0
  251. data/db/migrate/20121126040517_add_last_ip_to_spree_orders.rb +5 -0
  252. data/db/migrate/20121213162028_add_state_to_spree_adjustments.rb +6 -0
  253. data/db/migrate/20130114053446_add_display_on_to_spree_payment_methods.rb +9 -0
  254. data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +6 -0
  255. data/db/migrate/20130203232234_add_identifier_to_spree_payments.rb +5 -0
  256. data/db/migrate/20130207155350_add_order_id_index_to_payments.rb +9 -0
  257. data/db/migrate/20130208032954_add_primary_to_spree_products_taxons.rb +5 -0
  258. data/db/migrate/20130211190146_create_spree_stock_items.rb +14 -0
  259. data/db/migrate/20130211191120_create_spree_stock_locations.rb +11 -0
  260. data/db/migrate/20130213191427_create_default_stock.rb +34 -0
  261. data/db/migrate/20130222032153_add_order_id_index_to_shipments.rb +5 -0
  262. data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +5 -0
  263. data/db/migrate/20130226191231_add_stock_location_id_to_spree_shipments.rb +5 -0
  264. data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +6 -0
  265. data/db/migrate/20130228164411_remove_on_demand_from_product_and_variant.rb +6 -0
  266. data/db/migrate/20130228210442_create_shipping_method_zone.rb +21 -0
  267. data/db/migrate/20130301162745_remove_shipping_category_id_from_shipping_method.rb +5 -0
  268. data/db/migrate/20130301162924_create_shipping_method_categories.rb +13 -0
  269. data/db/migrate/20130301205200_add_tracking_url_to_spree_shipping_methods.rb +5 -0
  270. data/db/migrate/20130304162240_create_spree_shipping_rates.rb +24 -0
  271. data/db/migrate/20130304192936_remove_category_match_attributes_from_shipping_method.rb +7 -0
  272. data/db/migrate/20130305143310_create_stock_movements.rb +12 -0
  273. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +22 -0
  274. data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +5 -0
  275. data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +5 -0
  276. data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +5 -0
  277. data/db/migrate/20130318151756_add_source_and_destination_to_stock_movements.rb +8 -0
  278. data/db/migrate/20130319062004_change_orders_total_precision.rb +8 -0
  279. data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +7 -0
  280. data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +7 -0
  281. data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +7 -0
  282. data/db/migrate/20130319183250_add_originator_to_stock_movement.rb +7 -0
  283. data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +15 -0
  284. data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +9 -0
  285. data/db/migrate/20130326175857_add_stock_location_to_rma.rb +5 -0
  286. data/db/migrate/20130328130308_update_shipment_state_for_canceled_orders.rb +15 -0
  287. data/db/migrate/20130328195253_add_seo_metas_to_taxons.rb +9 -0
  288. data/db/migrate/20130329134939_remove_stock_item_and_variant_lock.rb +14 -0
  289. data/db/migrate/20130413230529_add_name_to_spree_credit_cards.rb +5 -0
  290. data/db/migrate/20130414000512_update_name_fields_on_spree_credit_cards.rb +13 -0
  291. data/db/migrate/20130417120034_add_index_to_source_columns_on_adjustments.rb +5 -0
  292. data/db/migrate/20130417120035_update_adjustment_states.rb +16 -0
  293. data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +15 -0
  294. data/db/migrate/20130418125341_create_spree_stock_transfers.rb +14 -0
  295. data/db/migrate/20130423110707_drop_products_count_on_hand.rb +5 -0
  296. data/db/migrate/20130423223847_set_default_shipping_rate_cost.rb +5 -0
  297. data/db/migrate/20130509115210_add_number_to_stock_transfer.rb +23 -0
  298. data/db/migrate/20130514151929_add_sku_index_to_spree_variants.rb +5 -0
  299. data/db/migrate/20130515180736_add_backorderable_default_to_spree_stock_location.rb +5 -0
  300. data/db/migrate/20130516151222_add_propage_all_variants_to_spree_stock_location.rb +5 -0
  301. data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +5 -0
  302. data/db/migrate/20130611185927_add_user_id_index_to_spree_orders.rb +5 -0
  303. data/db/migrate/20130618041418_add_updated_at_to_spree_countries.rb +9 -0
  304. data/db/migrate/20130619012236_add_updated_at_to_spree_states.rb +9 -0
  305. data/db/migrate/20130626232741_add_cvv_result_code_and_cvv_result_message_to_spree_payments.rb +6 -0
  306. data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +5 -0
  307. data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +7 -0
  308. data/db/migrate/20130708052307_add_deleted_at_to_spree_tax_rates.rb +5 -0
  309. data/db/migrate/20130711200933_remove_lock_version_from_inventory_units.rb +6 -0
  310. data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +5 -0
  311. data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +6 -0
  312. data/db/migrate/20130725031716_add_created_by_id_to_spree_orders.rb +5 -0
  313. data/db/migrate/20130729214043_index_completed_at_on_spree_orders.rb +5 -0
  314. data/db/migrate/20130802014537_add_tax_category_id_to_spree_line_items.rb +5 -0
  315. data/db/migrate/20130802022321_migrate_tax_categories_to_line_items.rb +10 -0
  316. data/db/migrate/20130806022521_drop_spree_mail_methods.rb +12 -0
  317. data/db/migrate/20130806145853_set_default_stock_location_on_shipments.rb +8 -0
  318. data/db/migrate/20130807024301_upgrade_adjustments.rb +40 -0
  319. data/db/migrate/20130807024302_rename_adjustment_fields.rb +14 -0
  320. data/db/migrate/20130809164245_add_admin_name_column_to_spree_shipping_methods.rb +5 -0
  321. data/db/migrate/20130809164330_add_admin_name_column_to_spree_stock_locations.rb +5 -0
  322. data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +5 -0
  323. data/db/migrate/20130813140619_expand_order_number_size.rb +9 -0
  324. data/db/migrate/20130813232134_rename_activators_to_promotions.rb +5 -0
  325. data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +5 -0
  326. data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +5 -0
  327. data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +16 -0
  328. data/db/migrate/20130828234942_add_tax_total_to_line_items_shipments_and_orders.rb +8 -0
  329. data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +15 -0
  330. data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +19 -0
  331. data/db/migrate/20130903183026_add_code_to_spree_promotion_rules.rb +5 -0
  332. data/db/migrate/20130909115621_change_states_required_for_countries.rb +9 -0
  333. data/db/migrate/20130915032339_add_deleted_at_to_spree_stock_items.rb +5 -0
  334. data/db/migrate/20130917024658_remove_promotions_event_name_field.rb +5 -0
  335. data/db/migrate/20130924040529_add_promo_total_to_line_items_and_shipments_and_orders.rb +7 -0
  336. data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +16 -0
  337. data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +5 -0
  338. data/db/migrate/20131107132123_add_tax_category_to_variants.rb +6 -0
  339. data/db/migrate/20131113035136_add_channel_to_spree_orders.rb +5 -0
  340. data/db/migrate/20131118043959_add_included_to_adjustments.rb +5 -0
  341. data/db/migrate/20131118050234_rename_tax_total_fields.rb +11 -0
  342. data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +21 -0
  343. data/db/migrate/20131120234456_add_updated_at_to_variants.rb +5 -0
  344. data/db/migrate/20131127001002_add_position_to_classifications.rb +5 -0
  345. data/db/migrate/20131211112807_create_spree_orders_promotions.rb +8 -0
  346. data/db/migrate/20131211192741_unique_shipping_method_categories.rb +24 -0
  347. data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +5 -0
  348. data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +8 -0
  349. data/db/migrate/20140106224208_rename_permalink_to_slug_for_products.rb +5 -0
  350. data/db/migrate/20140120160805_add_index_to_variant_id_and_currency_on_prices.rb +5 -0
  351. data/db/migrate/20140124023232_rename_activator_id_in_rules_and_actions_to_promotion_id.rb +6 -0
  352. data/db/migrate/20140129024326_add_deleted_at_to_spree_prices.rb +5 -0
  353. data/db/migrate/20140203161722_add_approver_id_and_approved_at_to_orders.rb +6 -0
  354. data/db/migrate/20140204115338_add_confirmation_delivered_to_spree_orders.rb +5 -0
  355. data/db/migrate/20140204192230_add_auto_capture_to_payment_methods.rb +5 -0
  356. data/db/migrate/20140205120320_create_spree_payment_capture_events.rb +12 -0
  357. data/db/migrate/20140205144710_add_uncaptured_amount_to_payments.rb +5 -0
  358. data/db/migrate/20140205181631_default_variant_weight_to_zero.rb +11 -0
  359. data/db/migrate/20140207085910_add_tax_category_id_to_shipping_methods.rb +5 -0
  360. data/db/migrate/20140207093021_add_tax_rate_id_to_shipping_rates.rb +5 -0
  361. data/db/migrate/20140211040159_add_pre_tax_amount_to_line_items_and_shipments.rb +6 -0
  362. data/db/migrate/20140213184916_add_more_indexes.rb +13 -0
  363. data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +5 -0
  364. data/db/migrate/20140227112348_add_preference_store_to_everything.rb +8 -0
  365. data/db/migrate/20140307235515_add_user_id_to_spree_credit_cards.rb +13 -0
  366. data/db/migrate/20140309023735_migrate_old_preferences.rb +23 -0
  367. data/db/migrate/20140309024355_create_spree_stores.rb +25 -0
  368. data/db/migrate/20140309033438_create_store_from_preferences.rb +30 -0
  369. data/db/migrate/20140315053743_add_timestamps_to_spree_assets.rb +6 -0
  370. data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +8 -0
  371. data/db/migrate/20140331100557_add_additional_store_fields.rb +8 -0
  372. data/db/migrate/20140410141842_add_many_missing_indexes.rb +17 -0
  373. data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +66 -0
  374. data/db/migrate/20140415041315_add_user_id_created_by_id_index_to_order.rb +5 -0
  375. data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +8 -0
  376. data/db/migrate/20140518174634_add_token_to_spree_orders.rb +5 -0
  377. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +29 -0
  378. data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +10 -0
  379. data/db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb +6 -0
  380. data/db/migrate/20140609201656_add_deleted_at_to_spree_promotion_actions.rb +6 -0
  381. data/db/migrate/20140616202624_remove_uncaptured_amount_from_spree_payments.rb +5 -0
  382. data/db/migrate/20140625214618_create_spree_refunds.rb +12 -0
  383. data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +12 -0
  384. data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +5 -0
  385. data/db/migrate/20140708132019_create_order_mutex.rb +11 -0
  386. data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +10 -0
  387. data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +55 -0
  388. data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +7 -0
  389. data/db/migrate/20140710190048_drop_return_authorization_amount.rb +5 -0
  390. data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +28 -0
  391. data/db/migrate/20140713140527_create_spree_refund_reasons.rb +14 -0
  392. data/db/migrate/20140713142214_rename_return_authorization_reason.rb +5 -0
  393. data/db/migrate/20140715182625_create_spree_promotion_categories.rb +11 -0
  394. data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +9 -0
  395. data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +6 -0
  396. data/db/migrate/20140717155155_create_default_refund_reason.rb +9 -0
  397. data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +7 -0
  398. data/db/migrate/20140718133010_create_spree_customer_returns.rb +9 -0
  399. data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +6 -0
  400. data/db/migrate/20140718195325_create_friendly_id_slugs.rb +15 -0
  401. data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +5 -0
  402. data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +13 -0
  403. data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +15 -0
  404. data/db/migrate/20140725131539_create_spree_reimbursements.rb +21 -0
  405. data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +5 -0
  406. data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +7 -0
  407. data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +5 -0
  408. data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +20 -0
  409. data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +10 -0
  410. data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +5 -0
  411. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +10 -0
  412. data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +9 -0
  413. data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +10 -0
  414. data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +7 -0
  415. data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +5 -0
  416. data/db/migrate/20140927193717_default_pre_tax_amount_should_be_zero.rb +6 -0
  417. data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +5 -0
  418. data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +6 -0
  419. data/db/migrate/20141009204607_add_store_id_to_orders.rb +8 -0
  420. data/db/migrate/20141012083513_create_spree_taxons_prototypes.rb +8 -0
  421. data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +5 -0
  422. data/db/migrate/20141023005240_add_counter_cache_from_spree_variants_to_spree_stock_items.rb +8 -0
  423. data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +13 -0
  424. data/db/migrate/20141105213646_update_classifications_positions.rb +9 -0
  425. data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +5 -0
  426. data/db/migrate/20141231151320_add_default_column_to_price.rb +5 -0
  427. data/db/migrate/20150112194216_add_position_to_stock_location.rb +5 -0
  428. data/db/migrate/20150113002122_create_spree_promotion_codes.rb +13 -0
  429. data/db/migrate/20150113002123_create_adjustment_promotion_code_association.rb +6 -0
  430. data/db/migrate/20150121202544_add_restock_inventory_to_stock_location.rb +5 -0
  431. data/db/migrate/20150122202432_add_code_to_spree_promotion_categories.rb +5 -0
  432. data/db/migrate/20150127161843_create_order_stock_locations.rb +12 -0
  433. data/db/migrate/20150203151219_add_fulfillable_to_stock_location.rb +5 -0
  434. data/db/migrate/20150205210527_add_code_to_refund_reason.rb +5 -0
  435. data/db/migrate/20150213160148_add_promotion_code_id_to_orders_promotions.rb +7 -0
  436. data/db/migrate/20150213163612_add_approver_name_to_spree_orders.rb +5 -0
  437. data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +65 -0
  438. data/db/migrate/20150226195213_downcase_promotion_codes_values.rb +11 -0
  439. data/db/migrate/20150227161934_add_order_ids_to_adjustments_where_missing.rb +9 -0
  440. data/db/migrate/20150303212749_add_per_code_usage_limit_to_promotions.rb +5 -0
  441. data/db/migrate/20150303212826_remove_usage_limit_from_promotion_codes.rb +5 -0
  442. data/db/migrate/20150304211616_add_timestamps_to_order_promotions.rb +6 -0
  443. data/db/migrate/20150305043021_create_spree_cartons.rb +24 -0
  444. data/db/migrate/20150305210403_add_timestamps_to_spree_roles_users.rb +7 -0
  445. data/db/migrate/20150313140507_remove_considered_risky_from_spree_orders.rb +5 -0
  446. data/db/migrate/20150313192827_add_index_to_inventory_units_carton_id.rb +5 -0
  447. data/db/migrate/20150313201235_add_imported_from_shipment_id_to_cartons.rb +8 -0
  448. data/db/migrate/20150313201503_copy_shipped_shipments_to_cartons.rb +13 -0
  449. data/db/migrate/20150330144639_create_spree_user_stock_locations.rb +10 -0
  450. data/db/migrate/20150331134544_add_stock_location_code.rb +5 -0
  451. data/db/migrate/20150402210430_create_unit_cancels.rb +10 -0
  452. data/db/migrate/20150407173305_add_fields_to_stock_transfer.rb +12 -0
  453. data/db/migrate/20150407173531_create_transfer_items.rb +14 -0
  454. data/db/migrate/20150424143547_drop_stock_transfer_type.rb +10 -0
  455. data/db/migrate/20150424161102_add_stock_transfer_finalized_at.rb +8 -0
  456. data/db/migrate/20150429125822_rename_stock_transfer_reference.rb +5 -0
  457. data/db/migrate/20150430233803_create_line_item_actions.rb +10 -0
  458. data/db/migrate/20150506181159_create_spree_store_credit_categories.rb +10 -0
  459. data/db/migrate/20150506181244_create_spree_store_credits.rb +19 -0
  460. data/db/migrate/20150506181539_create_spree_store_credit_events.rb +17 -0
  461. data/db/migrate/20150506181611_create_spree_store_credit_payment_method.rb +13 -0
  462. data/db/migrate/20150506181715_create_store_credit_types.rb +17 -0
  463. data/db/migrate/20150506182045_create_store_credit_reimbursement_type.rb +5 -0
  464. data/db/migrate/20150508044622_add_resellable_to_return_items.rb +5 -0
  465. data/db/migrate/20150514185559_add_invalidated_at_to_spree_store_credits.rb +5 -0
  466. data/db/migrate/20150514201836_migrate_deleted_store_credits_to_invalidated.rb +13 -0
  467. data/db/migrate/20150515170322_add_check_stock_on_transfer.rb +5 -0
  468. data/db/migrate/20150528125647_delete_inventory_units_without_shipment.rb +25 -0
  469. data/db/migrate/20150601191251_add_deleted_at_to_stock_transfers.rb +5 -0
  470. data/db/migrate/20150601204148_add_deleted_at_to_transfer_items.rb +5 -0
  471. data/db/migrate/20150609193231_add_preferences_to_promotion_actions.rb +5 -0
  472. data/db/migrate/20150610182638_add_id_to_spree_option_values_variants.rb +5 -0
  473. data/db/migrate/20150611200247_add_frontend_viewable_to_spree_orders.rb +5 -0
  474. data/db/migrate/20150612205731_remove_spree_configurations.rb +15 -0
  475. data/db/migrate/20150618191713_remove_credit_card_address_id.rb +7 -0
  476. data/db/migrate/20150626214817_remove_counter_cache_from_spree_variants_to_spree_stock_items.rb +10 -0
  477. data/db/seeds.rb +5 -0
  478. data/lib/generators/spree/custom_user/custom_user_generator.rb +56 -0
  479. data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +36 -0
  480. data/lib/generators/spree/custom_user/templates/initializer.rb.tt +1 -0
  481. data/lib/generators/spree/custom_user/templates/migration.rb.tt +7 -0
  482. data/lib/generators/spree/dummy/dummy_generator.rb +140 -0
  483. data/lib/generators/spree/dummy/templates/initializers/custom_user.rb +1 -0
  484. data/lib/generators/spree/dummy/templates/initializers/devise.rb +3 -0
  485. data/lib/generators/spree/dummy/templates/rails/application.rb +10 -0
  486. data/lib/generators/spree/dummy/templates/rails/boot.rb +6 -0
  487. data/lib/generators/spree/dummy/templates/rails/database.yml +65 -0
  488. data/lib/generators/spree/dummy/templates/rails/routes.rb +2 -0
  489. data/lib/generators/spree/dummy/templates/rails/script/rails +6 -0
  490. data/lib/generators/spree/dummy/templates/rails/test.rb +34 -0
  491. data/lib/generators/spree/install/install_generator.rb +191 -0
  492. data/lib/generators/spree/install/templates/config/initializers/spree.rb +41 -0
  493. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +13 -0
  494. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +13 -0
  495. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +12 -0
  496. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +12 -0
  497. data/lib/solidus_core.rb +1 -0
  498. data/lib/spree/core.rb +95 -0
  499. data/lib/spree/core/controller_helpers/auth.rb +83 -0
  500. data/lib/spree/core/controller_helpers/common.rb +74 -0
  501. data/lib/spree/core/controller_helpers/order.rb +106 -0
  502. data/lib/spree/core/controller_helpers/respond_with.rb +65 -0
  503. data/lib/spree/core/controller_helpers/search.rb +14 -0
  504. data/lib/spree/core/controller_helpers/store.rb +19 -0
  505. data/lib/spree/core/controller_helpers/strong_parameters.rb +42 -0
  506. data/lib/spree/core/delegate_belongs_to.rb +95 -0
  507. data/lib/spree/core/engine.rb +114 -0
  508. data/lib/spree/core/environment.rb +15 -0
  509. data/lib/spree/core/environment/calculators.rb +12 -0
  510. data/lib/spree/core/environment_extension.rb +25 -0
  511. data/lib/spree/core/importer.rb +9 -0
  512. data/lib/spree/core/importer/order.rb +202 -0
  513. data/lib/spree/core/importer/product.rb +62 -0
  514. data/lib/spree/core/permalinks.rb +71 -0
  515. data/lib/spree/core/product_duplicator.rb +74 -0
  516. data/lib/spree/core/product_filters.rb +194 -0
  517. data/lib/spree/core/routes.rb +46 -0
  518. data/lib/spree/core/search/base.rb +97 -0
  519. data/lib/spree/core/search/variant.rb +46 -0
  520. data/lib/spree/core/unreturned_item_charger.rb +102 -0
  521. data/lib/spree/core/validators/email.rb +7 -0
  522. data/lib/spree/core/version.rb +5 -0
  523. data/lib/spree/i18n.rb +37 -0
  524. data/lib/spree/i18n/base.rb +17 -0
  525. data/lib/spree/i18n/initializer.rb +1 -0
  526. data/lib/spree/localized_number.rb +24 -0
  527. data/lib/spree/migrations.rb +76 -0
  528. data/lib/spree/money.rb +72 -0
  529. data/lib/spree/permitted_attributes.rb +114 -0
  530. data/lib/spree/promo/environment.rb +9 -0
  531. data/lib/spree/responder.rb +45 -0
  532. data/lib/spree/testing_support/ability_helpers.rb +105 -0
  533. data/lib/spree/testing_support/authorization_helpers.rb +63 -0
  534. data/lib/spree/testing_support/bar_ability.rb +14 -0
  535. data/lib/spree/testing_support/caching.rb +47 -0
  536. data/lib/spree/testing_support/capybara_ext.rb +163 -0
  537. data/lib/spree/testing_support/common_rake.rb +40 -0
  538. data/lib/spree/testing_support/controller_requests.rb +83 -0
  539. data/lib/spree/testing_support/extension_rake.rb +10 -0
  540. data/lib/spree/testing_support/factories.rb +20 -0
  541. data/lib/spree/testing_support/factories/address_factory.rb +22 -0
  542. data/lib/spree/testing_support/factories/adjustment_factory.rb +26 -0
  543. data/lib/spree/testing_support/factories/calculator_factory.rb +24 -0
  544. data/lib/spree/testing_support/factories/carton_factory.rb +21 -0
  545. data/lib/spree/testing_support/factories/country_factory.rb +9 -0
  546. data/lib/spree/testing_support/factories/credit_card_factory.rb +10 -0
  547. data/lib/spree/testing_support/factories/customer_return_factory.rb +31 -0
  548. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +10 -0
  549. data/lib/spree/testing_support/factories/line_item_factory.rb +14 -0
  550. data/lib/spree/testing_support/factories/options_factory.rb +13 -0
  551. data/lib/spree/testing_support/factories/order_factory.rb +100 -0
  552. data/lib/spree/testing_support/factories/order_promotion_factory.rb +6 -0
  553. data/lib/spree/testing_support/factories/payment_factory.rb +28 -0
  554. data/lib/spree/testing_support/factories/payment_method_factory.rb +27 -0
  555. data/lib/spree/testing_support/factories/price_factory.rb +7 -0
  556. data/lib/spree/testing_support/factories/product_factory.rb +36 -0
  557. data/lib/spree/testing_support/factories/product_option_type_factory.rb +6 -0
  558. data/lib/spree/testing_support/factories/product_property_factory.rb +6 -0
  559. data/lib/spree/testing_support/factories/promotion_category_factory.rb +6 -0
  560. data/lib/spree/testing_support/factories/promotion_code_factory.rb +6 -0
  561. data/lib/spree/testing_support/factories/promotion_factory.rb +62 -0
  562. data/lib/spree/testing_support/factories/property_factory.rb +6 -0
  563. data/lib/spree/testing_support/factories/prototype_factory.rb +6 -0
  564. data/lib/spree/testing_support/factories/refund_factory.rb +14 -0
  565. data/lib/spree/testing_support/factories/reimbursement_factory.rb +16 -0
  566. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +7 -0
  567. data/lib/spree/testing_support/factories/return_authorization_factory.rb +18 -0
  568. data/lib/spree/testing_support/factories/return_item_factory.rb +16 -0
  569. data/lib/spree/testing_support/factories/role_factory.rb +9 -0
  570. data/lib/spree/testing_support/factories/shipment_factory.rb +28 -0
  571. data/lib/spree/testing_support/factories/shipping_category_factory.rb +5 -0
  572. data/lib/spree/testing_support/factories/shipping_method_factory.rb +25 -0
  573. data/lib/spree/testing_support/factories/state_factory.rb +13 -0
  574. data/lib/spree/testing_support/factories/stock_factory.rb +31 -0
  575. data/lib/spree/testing_support/factories/stock_item_factory.rb +9 -0
  576. data/lib/spree/testing_support/factories/stock_location_factory.rb +28 -0
  577. data/lib/spree/testing_support/factories/stock_movement_factory.rb +11 -0
  578. data/lib/spree/testing_support/factories/stock_transfer_factory.rb +28 -0
  579. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +6 -0
  580. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +15 -0
  581. data/lib/spree/testing_support/factories/store_credit_factory.rb +10 -0
  582. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +13 -0
  583. data/lib/spree/testing_support/factories/store_factory.rb +8 -0
  584. data/lib/spree/testing_support/factories/tax_category_factory.rb +7 -0
  585. data/lib/spree/testing_support/factories/tax_rate_factory.rb +8 -0
  586. data/lib/spree/testing_support/factories/taxon_factory.rb +7 -0
  587. data/lib/spree/testing_support/factories/taxonomy_factory.rb +5 -0
  588. data/lib/spree/testing_support/factories/tracker_factory.rb +7 -0
  589. data/lib/spree/testing_support/factories/user_factory.rb +22 -0
  590. data/lib/spree/testing_support/factories/variant_factory.rb +39 -0
  591. data/lib/spree/testing_support/factories/zone_factory.rb +17 -0
  592. data/lib/spree/testing_support/flash.rb +27 -0
  593. data/lib/spree/testing_support/i18n.rb +98 -0
  594. data/lib/spree/testing_support/mail.rb +20 -0
  595. data/lib/spree/testing_support/order_walkthrough.rb +78 -0
  596. data/lib/spree/testing_support/preferences.rb +29 -0
  597. data/lib/spree/testing_support/rspec-activemodel-mocks_patch.rb +8 -0
  598. data/lib/spree/testing_support/url_helpers.rb +9 -0
  599. data/lib/spree_core.rb +1 -0
  600. data/lib/tasks/core.rake +101 -0
  601. data/lib/tasks/email.rake +7 -0
  602. data/lib/tasks/exchanges.rake +48 -0
  603. data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +180 -0
  604. data/lib/tasks/order_capturing.rake +23 -0
  605. data/vendor/assets/javascripts/jquery-migrate-1.0.0.js +498 -0
  606. data/vendor/assets/javascripts/jquery.payment.js +497 -0
  607. data/vendor/assets/javascripts/jsuri.js +2 -0
  608. data/vendor/assets/stylesheets/normalize.css +375 -0
  609. data/vendor/assets/stylesheets/skeleton.css +242 -0
  610. metadata +993 -0
@@ -0,0 +1,157 @@
1
+ module Spree
2
+ class Address < Spree::Base
3
+ require 'twitter_cldr'
4
+
5
+ belongs_to :country, class_name: "Spree::Country"
6
+ belongs_to :state, class_name: "Spree::State"
7
+
8
+ has_many :shipments, inverse_of: :address
9
+ has_many :cartons, inverse_of: :address
10
+
11
+ validates :firstname, :lastname, :address1, :city, :country, presence: true
12
+ validates :zipcode, presence: true, if: :require_zipcode?
13
+ validates :phone, presence: true, if: :require_phone?
14
+
15
+ validate :state_validate, :postal_code_validate
16
+
17
+ alias_attribute :first_name, :firstname
18
+ alias_attribute :last_name, :lastname
19
+
20
+ def self.build_default
21
+ country = Spree::Country.find(Spree::Config[:default_country_id]) rescue Spree::Country.first
22
+ new(country: country)
23
+ end
24
+
25
+ def self.default(user = nil, kind = "bill")
26
+ if user && user_address = user.send(:"#{kind}_address")
27
+ user_address.dup
28
+ else
29
+ build_default
30
+ end
31
+ end
32
+
33
+ # @return [String] the full name on this address
34
+ def full_name
35
+ "#{firstname} #{lastname}".strip
36
+ end
37
+
38
+ # @return [String] a string representation of this state
39
+ def state_text
40
+ state.try(:abbr) || state.try(:name) || state_name
41
+ end
42
+
43
+ # @param other [Spree::Address, nil] the address we are comparing with
44
+ # @return [Boolean] true if this fields on this address match the fields on
45
+ # the other address
46
+ def same_as?(other)
47
+ return false if other.nil?
48
+ attributes.except('id', 'updated_at', 'created_at') == other.attributes.except('id', 'updated_at', 'created_at')
49
+ end
50
+
51
+ alias same_as same_as?
52
+
53
+ # @return [String] the full name on the address followed by the first line
54
+ # of the address
55
+ def to_s
56
+ "#{full_name}: #{address1}"
57
+ end
58
+
59
+ # @return [Spree::Address] a new address that is the same_as? this address
60
+ def clone
61
+ ActiveSupport::Deprecation.warn "Spree::Address.clone is deprecated and may be removed from future releases, Use Spree::Address.dup instead", caller
62
+ self.dup
63
+ end
64
+
65
+ # @note This compares the addresses based on only the fields that make up
66
+ # the logical "address" and excludes their order IDs. Use #same_as? to
67
+ # include the order IDs in the comparison
68
+ # @return [Boolean] true if the two addresses have the same address fields
69
+ def ==(other_address)
70
+ self_attrs = self.attributes
71
+ other_attrs = other_address.respond_to?(:attributes) ? other_address.attributes : {}
72
+
73
+ [self_attrs, other_attrs].each { |attrs| attrs.except!('id', 'created_at', 'updated_at', 'order_id') }
74
+
75
+ self_attrs == other_attrs
76
+ end
77
+
78
+ # @return [Boolean] true if the order is missing all of the address fields
79
+ # are nil
80
+ def empty?
81
+ attributes.except('id', 'created_at', 'updated_at', 'order_id', 'country_id').all? { |_, v| v.nil? }
82
+ end
83
+
84
+ # @return [Hash] an ActiveMerchant compatible address hash
85
+ def active_merchant_hash
86
+ {
87
+ name: full_name,
88
+ address1: address1,
89
+ address2: address2,
90
+ city: city,
91
+ state: state_text,
92
+ zip: zipcode,
93
+ country: country.try(:iso),
94
+ phone: phone
95
+ }
96
+ end
97
+
98
+ # @todo Remove this from the public API if possible.
99
+ # @return [true] whether or not the address requires a phone number to be
100
+ # valid
101
+ def require_phone?
102
+ true
103
+ end
104
+
105
+ # @todo Remove this from the public API if possible.
106
+ # @return [true] whether or not the address requires a zipcode to be valid
107
+ def require_zipcode?
108
+ true
109
+ end
110
+
111
+ private
112
+ def state_validate
113
+ # Skip state validation without country (also required)
114
+ # or when disabled by preference
115
+ return if country.blank? || !Spree::Config[:address_requires_state]
116
+ return unless country.states_required
117
+
118
+ # ensure associated state belongs to country
119
+ if state.present?
120
+ if state.country == country
121
+ self.state_name = nil #not required as we have a valid state and country combo
122
+ else
123
+ if state_name.present?
124
+ self.state = nil
125
+ else
126
+ errors.add(:state, :invalid)
127
+ end
128
+ end
129
+ end
130
+
131
+ # ensure state_name belongs to country without states, or that it matches a predefined state name/abbr
132
+ if state_name.present?
133
+ if country.states.present?
134
+ states = country.states.find_all_by_name_or_abbr(state_name)
135
+
136
+ if states.size == 1
137
+ self.state = states.first
138
+ self.state_name = nil
139
+ else
140
+ errors.add(:state, :invalid)
141
+ end
142
+ end
143
+ end
144
+
145
+ # ensure at least one state field is populated
146
+ errors.add :state, :blank if state.blank? && state_name.blank?
147
+ end
148
+
149
+ def postal_code_validate
150
+ return if country.blank? || country.iso.blank? || !require_zipcode?
151
+ return if !TwitterCldr::Shared::PostalCodes.territories.include?(country.iso.downcase.to_sym)
152
+
153
+ postal_code = TwitterCldr::Shared::PostalCodes.for_territory(country.iso)
154
+ errors.add(:zipcode, :invalid) if !postal_code.valid?(zipcode.to_s)
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,143 @@
1
+ module Spree
2
+ # Adjustments represent a change to the +item_total+ of an Order. Each
3
+ # adjustment has an +amount+ that can be either positive or negative.
4
+ #
5
+ # Adjustments can be "opened" or "closed". Once an adjustment is closed, it
6
+ # will not be automatically updated.
7
+ #
8
+ # == Boolean attributes
9
+ #
10
+ # 1. *mandatory*
11
+ #
12
+ # If this flag is set to true then it means the the charge is required and
13
+ # will not be removed from the order, even if the amount is zero. In other
14
+ # words a record will be created even if the amount is zero. This is
15
+ # useful for representing things such as shipping and tax charges where
16
+ # you may want to make it explicitly clear that no charge was made for
17
+ # such things.
18
+ #
19
+ # 2. *eligible?*
20
+ #
21
+ # This boolean attributes stores whether this adjustment is currently
22
+ # eligible for its order. Only eligible adjustments count towards the
23
+ # order's adjustment total. This allows an adjustment to be preserved if
24
+ # it becomes ineligible so it might be reinstated.
25
+ class Adjustment < Spree::Base
26
+ belongs_to :adjustable, polymorphic: true, touch: true
27
+ belongs_to :source, polymorphic: true
28
+ belongs_to :order, class_name: "Spree::Order"
29
+ belongs_to :promotion_code, :class_name => 'Spree::PromotionCode'
30
+
31
+ validates :adjustable, presence: true
32
+ validates :order, presence: true
33
+ validates :label, presence: true
34
+ validates :amount, numericality: true
35
+ validates :promotion_code, presence: true, if: :require_promotion_code?
36
+
37
+ state_machine :state, initial: :open do
38
+ event :close do
39
+ transition from: :open, to: :closed
40
+ end
41
+
42
+ event :open do
43
+ transition from: :closed, to: :open
44
+ end
45
+ end
46
+
47
+ after_create :update_adjustable_adjustment_total
48
+ after_destroy :update_adjustable_adjustment_total
49
+
50
+ scope :open, -> { where(state: 'open') }
51
+ scope :closed, -> { where(state: 'closed') }
52
+ scope :cancellation, -> { where(source_type: 'Spree::UnitCancel') }
53
+ scope :tax, -> { where(source_type: 'Spree::TaxRate') }
54
+ scope :non_tax, -> do
55
+ source_type = arel_table[:source_type]
56
+ where(source_type.not_eq('Spree::TaxRate').or source_type.eq(nil))
57
+ end
58
+ scope :price, -> { where(adjustable_type: 'Spree::LineItem') }
59
+ scope :shipping, -> { where(adjustable_type: 'Spree::Shipment') }
60
+ scope :optional, -> { where(mandatory: false) }
61
+ scope :eligible, -> { where(eligible: true) }
62
+ scope :charge, -> { where("#{quoted_table_name}.amount >= 0") }
63
+ scope :credit, -> { where("#{quoted_table_name}.amount < 0") }
64
+ scope :nonzero, -> { where("#{quoted_table_name}.amount != 0") }
65
+ scope :promotion, -> { where(source_type: 'Spree::PromotionAction') }
66
+ scope :non_promotion, -> { where.not(source_type: 'Spree::PromotionAction') }
67
+ scope :return_authorization, -> { where(source_type: "Spree::ReturnAuthorization") }
68
+ scope :is_included, -> { where(included: true) }
69
+ scope :additional, -> { where(included: false) }
70
+
71
+ extend DisplayMoney
72
+ money_methods :amount
73
+
74
+ def closed?
75
+ state == "closed"
76
+ end
77
+
78
+ def currency
79
+ adjustable ? adjustable.currency : Spree::Config[:currency]
80
+ end
81
+
82
+ # @return [Boolean] true when this is a promotion adjustment (Promotion adjustments have a {PromotionAction} source)
83
+ def promotion?
84
+ source_type == 'Spree::PromotionAction'
85
+ end
86
+
87
+ # @return [Boolean] true when this is a tax adjustment (Tax adjustments have a {TaxRate} source)
88
+ def tax?
89
+ source_type == 'Spree::TaxRate'
90
+ end
91
+
92
+ # @return [Boolean] true when this is a cancellation adjustment (Cancellation adjustments have a {UnitCancel} source)
93
+ def cancellation?
94
+ source_type == 'Spree::UnitCancel'
95
+ end
96
+
97
+ # Recalculate and persist the amount from this adjustment's source based on
98
+ # the adjustable ({Order}, {Shipment}, or {LineItem})
99
+ #
100
+ # If the adjustment has no source (such as when created manually from the
101
+ # admin) or is closed, this is a noop.
102
+ #
103
+ # @param target [Spree::LineItem,Spree::Shipment,Spree::Order] Deprecated: the target to calculate against
104
+ # @return [BigDecimal] New amount of this adjustment
105
+ def update!(target = nil)
106
+ if target
107
+ ActiveSupport::Deprecation.warn("Passing a target to Adjustment#update! is deprecated. The adjustment will use the correct target from it's adjustable association.", caller)
108
+ end
109
+ return amount if closed?
110
+
111
+ # If the adjustment has no source, do not attempt to re-calculate the amount.
112
+ # Chances are likely that this was a manually created adjustment in the admin backend.
113
+ if source.present?
114
+ self.amount = source.compute_amount(target || adjustable)
115
+
116
+ if promotion?
117
+ self.eligible = source.promotion.eligible?(adjustable, promotion_code: promotion_code)
118
+ end
119
+
120
+ # Persist only if changed
121
+ # This is only not a save! to avoid the extra queries to load the order
122
+ # (for validations) and to touch the adjustment.
123
+ update_columns(eligible: eligible, amount: amount, updated_at: Time.now) if changed?
124
+ end
125
+ amount
126
+ end
127
+
128
+ def currency
129
+ adjustable ? adjustable.currency : Spree::Config[:currency]
130
+ end
131
+
132
+ private
133
+
134
+ def update_adjustable_adjustment_total
135
+ # Cause adjustable's total to be recalculated
136
+ ItemAdjustments.new(adjustable).update
137
+ end
138
+
139
+ def require_promotion_code?
140
+ promotion? && source.promotion.codes.any?
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,253 @@
1
+ # This is the primary location for defining spree preferences
2
+ #
3
+ # The expectation is that this is created once and stored in
4
+ # the spree environment
5
+ #
6
+ # setters:
7
+ # a.color = :blue
8
+ # a[:color] = :blue
9
+ # a.set :color = :blue
10
+ # a.preferred_color = :blue
11
+ #
12
+ # getters:
13
+ # a.color
14
+ # a[:color]
15
+ # a.get :color
16
+ # a.preferred_color
17
+ #
18
+ require "spree/core/search/base"
19
+ require "spree/core/search/variant"
20
+
21
+ module Spree
22
+ class AppConfiguration < Preferences::Configuration
23
+ # Alphabetized to more easily lookup particular preferences
24
+
25
+ # @!attribute [rw] address_requires_state
26
+ # @return [Boolean] should state/state_name be required
27
+ preference :address_requires_state, :boolean, default: true
28
+
29
+ # @!attribute [rw] admin_interface_logo
30
+ # @return [String] URL of logo used in admin (default: +'logo/solidus_logo.png'+)
31
+ preference :admin_interface_logo, :string, default: 'logo/solidus_logo.png'
32
+
33
+ # @!attribute [rw] admin_products_per_page
34
+ # @return [Integer] Number of products to display in admin (default: +10+)
35
+ preference :admin_products_per_page, :integer, default: 10
36
+
37
+ # @!attribute [rw] admin_variants_per_page
38
+ # @return [Integer] Number of variants to display in admin (default: +20+)
39
+ preference :admin_variants_per_page, :integer, default: 20
40
+
41
+ # @!attribute [rw] allow_checkout_on_gateway_error
42
+ # @return [Boolean] Allow checkout to complete after a failed payment (default: +false+)
43
+ preference :allow_checkout_on_gateway_error, :boolean, default: false
44
+
45
+ # @!attribute [rw] allow_guest_checkout
46
+ # @return [Boolean] When false, customers must create an account to complete an order (default: +true+)
47
+ preference :allow_guest_checkout, :boolean, default: true
48
+
49
+ # @!attribute [rw] allow_return_item_amount_editing
50
+ # @return [Boolean] Determines whether an admin is allowed to change a return item's pre-calculated amount (default: +false+)
51
+ preference :allow_return_item_amount_editing, :boolean, default: false
52
+
53
+ # @!attribute [rw] alternative_billing_phone
54
+ # @return [Boolean] Request an extra phone number for bill address (default: +false+)
55
+ preference :alternative_billing_phone, :boolean, default: false
56
+
57
+ # @!attribute [rw] alternative_shipping_phone
58
+ # @return [Boolean] Request an extra phone number for shipping address (default: +false+)
59
+ preference :alternative_shipping_phone, :boolean, default: false
60
+
61
+ # @!attribute [rw] always_put_site_name_in_title
62
+ # @return [Boolean] When true, site name is always appended to titles on the frontend (default: +true+)
63
+ preference :always_put_site_name_in_title, :boolean, default: true
64
+
65
+ # @!attribute [rw] auto_capture
66
+ # @note Setting this to true is not recommended. Performing an authorize
67
+ # and later capture has far superior error handing. VISA and MasterCard
68
+ # also require that shipments are sent within a certain time of the card
69
+ # being charged.
70
+ # @return [Boolean] Perform a sale/purchase transaction at checkout instead of a authorize and capture.
71
+ preference :auto_capture, :boolean, default: false
72
+
73
+ # @!attribute [rw] auto_capture_exchanges
74
+ # @return [Boolean] automatically capture the credit card (as opposed to just authorize and capture later) (default: +false+)
75
+ preference :auto_capture_exchanges, :boolean, default: false
76
+
77
+ # @!attribute [rw] binary_inventory_cache
78
+ # Only invalidate product caches when they change from in stock to out of
79
+ # stock. By default, caches are invalidated on any change of inventory
80
+ # quantity. Setting this to true should make operations on inventory
81
+ # faster.
82
+ # (default: +false+)
83
+ # @return [Boolean]
84
+ preference :binary_inventory_cache, :boolean, default: false
85
+
86
+ # @!attribute [rw] checkout_zone
87
+ # @return [String] Name of a {Zone}, which limits available countries to those included in that zone. (default: +nil+)
88
+ preference :checkout_zone, :string, default: nil
89
+
90
+ # @!attribute [rw] company
91
+ # @return [Boolean] Request company field for billing and shipping addresses. (default: +false+)
92
+ preference :company, :boolean, default: false
93
+
94
+ # @!attribute [rw] create_rma_for_unreturned_exchange
95
+ # @return [Boolean] allows rma to be created for items after unreturned exchange charge has been made (default: +false+)
96
+ preference :create_rma_for_unreturned_exchange, :boolean, default: false
97
+
98
+ # @!attribute [rw] currency
99
+ # Currency to use by default when not defined on the site (default: +"USD"+)
100
+ # @return [String] ISO 4217 Three letter currency code
101
+ preference :currency, :string, default: "USD"
102
+
103
+ # @!attribute [rw] default_country_id
104
+ # @deprecated
105
+ # @return [Integer,nil] id of {Country} to be selected by default in dropdowns (default: nil)
106
+ preference :default_country_id, :integer
107
+
108
+ # @!attribute [rw] expedited_exchanges
109
+ # Kicks off an exchange shipment upon return authorization save.
110
+ # charge customer if they do not return items within timely manner.
111
+ # @note this requires payment profiles to be supported on your gateway of
112
+ # choice as well as a delayed job handler to be configured with
113
+ # activejob.
114
+ # @return [Boolean] Use expidited exchanges (default: +false+)
115
+ preference :expedited_exchanges, :boolean, default: false
116
+
117
+ # @!attribute [rw] expedited_exchanges_days_window
118
+ # @return [Integer] Number of days the customer has to return their item
119
+ # after the expedited exchange is shipped in order to avoid being
120
+ # charged (default: +14+)
121
+ preference :expedited_exchanges_days_window, :integer, default: 14
122
+
123
+ # @!attribute [rw] layout
124
+ # @return [String] template to use for layout on the frontend (default: +"spree/layouts/spree_application"+)
125
+ preference :layout, :string, default: 'spree/layouts/spree_application'
126
+
127
+ # @!attribute [rw] logo
128
+ # @return [String] URL of logo used on frontend (default: +'logo/solidus_logo.png'+)
129
+ preference :logo, :string, default: 'logo/solidus_logo.png'
130
+
131
+ # @!attribute [rw] order_capturing_time_window
132
+ # @return [Integer] the number of days to look back for fully-shipped/cancelled orders in order to charge for them
133
+ preference :order_capturing_time_window, :integer, default: 14
134
+
135
+ # @!attribute [rw] max_level_in_taxons_menu
136
+ # @return [Integer] maximum nesting level in taxons menu (default: +1+)
137
+ preference :max_level_in_taxons_menu, :integer, default: 1
138
+
139
+ # @!attribute [rw] order_mutex_max_age
140
+ # @return [Integer] Max age of {OrderMutex} in seconds (default: 2 minutes)
141
+ preference :order_mutex_max_age, :integer, default: 2.minutes
142
+
143
+ # @!attribute [rw] orders_per_page
144
+ # @return [Integer] Orders to show per-page in the admin (default: +15+)
145
+ preference :orders_per_page, :integer, default: 15
146
+
147
+ # @!attribute [rw] properties_per_page
148
+ # @return [Integer] Properties to show per-page in the admin (default: +15+)
149
+ preference :properties_per_page, :integer, default: 15
150
+
151
+ # @!attribute [rw] products_per_page
152
+ # @return [Integer] Products to show per-page in the frontend (default: +12+)
153
+ preference :products_per_page, :integer, default: 12
154
+
155
+ # @!attribute [rw] promotions_per_page
156
+ # @return [Integer] Promotions to show per-page in the admin (default: +15+)
157
+ preference :promotions_per_page, :integer, default: 15
158
+
159
+ # @!attribute [rw] customer_returns_per_page
160
+ # @return [Integer] Customer returns to show per-page in the admin (default: +15+)
161
+ preference :customer_returns_per_page, :integer, default: 15
162
+
163
+ # @!attribute [rw] require_master_price
164
+ # @return [Boolean] Require a price on the master variant of a product (default: +true+)
165
+ preference :require_master_price, :boolean, default: true
166
+
167
+ # @!attribute [rw] require_payment_to_ship
168
+ # @return [Boolean] Allows shipments to be ready to ship regardless of the order being paid if false (default: +true+)
169
+ preference :require_payment_to_ship, :boolean, default: true # Allows shipments to be ready to ship regardless of the order being paid if false
170
+
171
+ # @!attribute [rw] return_eligibility_number_of_days
172
+ # @return [Integer] default: 365
173
+ preference :return_eligibility_number_of_days, :integer, default: 365
174
+
175
+ # @!attribute [rw] shipping_instructions
176
+ # @return [Boolean] Request instructions/info for shipping (default: +false+)
177
+ preference :shipping_instructions, :boolean, default: false
178
+
179
+ # @!attribute [rw] show_only_complete_orders_by_default
180
+ # @return [Boolean] Only show completed orders by default in the admin (default: +true+)
181
+ preference :show_only_complete_orders_by_default, :boolean, default: true
182
+
183
+ # @!attribute [rw] show_variant_full_price
184
+ # @return [Boolean] Displays variant full price or difference with product price. (default: +false+)
185
+ preference :show_variant_full_price, :boolean, default: false
186
+
187
+ # @!attribute [rw] show_products_without_price
188
+ # @return [Boolean] Whether products without a price are visible in the frontend (default: +false+)
189
+ preference :show_products_without_price, :boolean, default: false
190
+
191
+ # @!attribute [rw] show_raw_product_description
192
+ # @return [Boolean] Don't escape HTML of product descriptions. (default: +false+)
193
+ preference :show_raw_product_description, :boolean, :default => false
194
+
195
+ # @!attribute [rw] tax_using_ship_address
196
+ # @return [Boolean] Use the shipping address rather than the billing address to determine tax (default: +true+)
197
+ preference :tax_using_ship_address, :boolean, default: true
198
+
199
+ # @!attribute [rw] track_inventory_levels
200
+ # Determines whether to track on_hand values for variants / products. If
201
+ # you do not track inventory, or have effectively unlimited inventory for
202
+ # all products you can turn this on.
203
+ # @return [] Track on_hand values for variants / products. (default: true)
204
+ preference :track_inventory_levels, :boolean, default: true
205
+
206
+ # Default mail headers settings
207
+
208
+ # @!attribute [rw] send_core_emails
209
+ # @return [Boolean] Whether to send transactional emails (default: true)
210
+ preference :send_core_emails, :boolean, default: true
211
+
212
+ # @!attribute [rw] mails_from
213
+ # @return [String] Email address used as +From:+ field in transactional emails.
214
+ preference :mails_from, :string, :default => 'spree@example.com'
215
+
216
+ # Store credits configurations
217
+
218
+ # @!attribute [rw] credit_to_new_allocation
219
+ # @return [Boolean] Creates a new allocation anytime {StoreCredit#credit} is called
220
+ preference :credit_to_new_allocation, :boolean, default: false
221
+
222
+ # searcher_class allows spree extension writers to provide their own Search class
223
+ def searcher_class
224
+ @searcher_class ||= Spree::Core::Search::Base
225
+ end
226
+
227
+ def searcher_class=(sclass)
228
+ @searcher_class = sclass
229
+ end
230
+
231
+ # all the following can be deprecated when store prefs are no longer supported
232
+ # @private
233
+ DEPRECATED_STORE_PREFERENCES = {
234
+ site_name: :name,
235
+ site_url: :url,
236
+ default_meta_description: :meta_description,
237
+ default_meta_keywords: :meta_keywords,
238
+ default_seo_title: :seo_title,
239
+ }
240
+
241
+ DEPRECATED_STORE_PREFERENCES.each do |old_preference_name, store_method|
242
+ # Avoid warning about implementation details
243
+ bc = ActiveSupport::BacktraceCleaner.new
244
+ bc.add_silencer { |line| line =~ %r{spree/preferences} }
245
+
246
+ # support all the old preference methods with a warning
247
+ define_method "preferred_#{old_preference_name}" do
248
+ ActiveSupport::Deprecation.warn("#{old_preference_name} is no longer supported on Spree::Config, please access it through #{store_method} on Spree::Store", bc.clean(caller))
249
+ Store.default.send(store_method)
250
+ end
251
+ end
252
+ end
253
+ end