spree_core 3.0.9 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/{spree.js.coffee.erb → spree.js.coffee} +13 -4
  3. data/app/helpers/spree/base_helper.rb +5 -2
  4. data/app/helpers/spree/products_helper.rb +37 -12
  5. data/app/mailers/spree/base_mailer.rb +11 -2
  6. data/app/mailers/spree/reimbursement_mailer.rb +6 -6
  7. data/app/models/concerns/spree/acts_as_taggable.rb +11 -0
  8. data/app/models/concerns/spree/adjustment_source.rb +3 -10
  9. data/app/models/concerns/spree/default_price.rb +7 -1
  10. data/app/models/concerns/spree/named_type.rb +1 -1
  11. data/app/models/concerns/spree/ransackable_attributes.rb +6 -1
  12. data/app/models/concerns/spree/user_api_authentication.rb +7 -1
  13. data/app/models/concerns/spree/user_methods.rb +57 -0
  14. data/app/models/concerns/spree/user_reporting.rb +2 -2
  15. data/app/models/concerns/spree/vat_price_calculation.rb +47 -0
  16. data/app/models/spree/ability.rb +9 -1
  17. data/app/models/spree/address.rb +75 -45
  18. data/app/models/spree/adjustable/adjuster/base.rb +25 -0
  19. data/app/models/spree/adjustable/adjuster/promotion.rb +41 -0
  20. data/app/models/spree/adjustable/adjuster/tax.rb +26 -0
  21. data/app/models/spree/adjustable/adjustments_updater.rb +22 -45
  22. data/app/models/spree/adjustment.rb +8 -10
  23. data/app/models/spree/app_configuration.rb +14 -8
  24. data/app/models/spree/base.rb +5 -1
  25. data/app/models/spree/calculator/default_tax.rb +2 -10
  26. data/app/models/spree/calculator/free_shipping.rb +6 -5
  27. data/app/models/spree/calculator.rb +1 -6
  28. data/app/models/spree/classification.rb +7 -3
  29. data/app/models/spree/country.rb +15 -3
  30. data/app/models/spree/credit_card.rb +37 -38
  31. data/app/models/spree/customer_return.rb +7 -15
  32. data/app/models/spree/gateway/bogus.rb +12 -12
  33. data/app/models/spree/gateway/bogus_simple.rb +4 -4
  34. data/app/models/spree/gateway.rb +8 -7
  35. data/app/models/spree/image.rb +3 -3
  36. data/app/models/spree/inventory_unit.rb +13 -14
  37. data/app/models/spree/legacy_user.rb +1 -14
  38. data/app/models/spree/line_item.rb +79 -67
  39. data/app/models/spree/log_entry.rb +1 -4
  40. data/app/models/spree/option_type.rb +15 -6
  41. data/app/models/spree/option_type_prototype.rb +9 -0
  42. data/app/models/spree/option_value.rb +11 -3
  43. data/app/models/spree/option_value_variant.rb +6 -0
  44. data/app/models/spree/order/checkout.rb +10 -13
  45. data/app/models/spree/order/currency_updater.rb +1 -1
  46. data/app/models/spree/order/store_credit.rb +96 -0
  47. data/app/models/spree/order.rb +105 -68
  48. data/app/models/spree/order_contents.rb +13 -7
  49. data/app/models/spree/order_inventory.rb +16 -9
  50. data/app/models/spree/order_promotion.rb +6 -0
  51. data/app/models/spree/order_updater.rb +4 -8
  52. data/app/models/spree/payment/gateway_options.rb +8 -4
  53. data/app/models/spree/payment/processing.rb +1 -1
  54. data/app/models/spree/payment.rb +55 -29
  55. data/app/models/spree/payment_method/store_credit.rb +130 -0
  56. data/app/models/spree/payment_method.rb +18 -13
  57. data/app/models/spree/preference.rb +1 -1
  58. data/app/models/spree/preferences/store.rb +2 -2
  59. data/app/models/spree/price.rb +16 -6
  60. data/app/models/spree/product/scopes.rb +22 -13
  61. data/app/models/spree/product.rb +83 -52
  62. data/app/models/spree/product_option_type.rb +7 -2
  63. data/app/models/spree/product_promotion_rule.rb +9 -0
  64. data/app/models/spree/product_property.rb +9 -10
  65. data/app/models/spree/promotion/actions/create_adjustment.rb +1 -1
  66. data/app/models/spree/promotion/actions/create_line_items.rb +21 -3
  67. data/app/models/spree/promotion/rules/country.rb +23 -0
  68. data/app/models/spree/promotion/rules/option_value.rb +13 -10
  69. data/app/models/spree/promotion/rules/product.rb +3 -1
  70. data/app/models/spree/promotion/rules/taxon.rb +3 -2
  71. data/app/models/spree/promotion/rules/user.rb +4 -4
  72. data/app/models/spree/promotion.rb +55 -19
  73. data/app/models/spree/promotion_action.rb +3 -3
  74. data/app/models/spree/promotion_category.rb +1 -1
  75. data/app/models/spree/promotion_handler/cart.rb +3 -17
  76. data/app/models/spree/promotion_handler/coupon.rb +22 -22
  77. data/app/models/spree/promotion_handler/page.rb +2 -2
  78. data/app/models/spree/promotion_rule_taxon.rb +9 -0
  79. data/app/models/spree/promotion_rule_user.rb +9 -0
  80. data/app/models/spree/property.rb +2 -1
  81. data/app/models/spree/property_prototype.rb +9 -0
  82. data/app/models/spree/prototype.rb +8 -3
  83. data/app/models/spree/prototype_taxon.rb +9 -0
  84. data/app/models/spree/refund.rb +10 -7
  85. data/app/models/spree/refund_reason.rb +2 -2
  86. data/app/models/spree/reimbursement.rb +12 -16
  87. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +23 -6
  88. data/app/models/spree/reimbursement_type/store_credit.rb +28 -0
  89. data/app/models/spree/reimbursement_type.rb +5 -1
  90. data/app/models/spree/return_authorization.rb +8 -13
  91. data/app/models/spree/return_authorization_reason.rb +1 -1
  92. data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +1 -1
  93. data/app/models/spree/return_item.rb +14 -13
  94. data/app/models/spree/role.rb +3 -2
  95. data/app/models/spree/role_user.rb +6 -0
  96. data/app/models/spree/shipment.rb +23 -30
  97. data/app/models/spree/shipment_handler.rb +2 -2
  98. data/app/models/spree/shipping_category.rb +6 -3
  99. data/app/models/spree/shipping_method.rb +12 -11
  100. data/app/models/spree/shipping_method_zone.rb +6 -0
  101. data/app/models/spree/shipping_rate.rb +16 -29
  102. data/app/models/spree/state.rb +3 -2
  103. data/app/models/spree/state_change.rb +1 -1
  104. data/app/models/spree/stock/adjuster.rb +9 -2
  105. data/app/models/spree/stock/content_item.rb +10 -12
  106. data/app/models/spree/stock/coordinator.rb +21 -15
  107. data/app/models/spree/stock/estimator.rb +28 -30
  108. data/app/models/spree/stock/inventory_unit_builder.rb +2 -10
  109. data/app/models/spree/stock/package.rb +11 -3
  110. data/app/models/spree/stock/packer.rb +16 -6
  111. data/app/models/spree/stock/prioritizer.rb +25 -15
  112. data/app/models/spree/stock/quantifier.rb +5 -5
  113. data/app/models/spree/stock/splitter/backordered.rb +2 -2
  114. data/app/models/spree/stock/splitter/shipping_category.rb +6 -1
  115. data/app/models/spree/stock_item.rb +15 -18
  116. data/app/models/spree/stock_location.rb +4 -7
  117. data/app/models/spree/stock_movement.rb +16 -9
  118. data/app/models/spree/stock_transfer.rb +11 -12
  119. data/app/models/spree/store.rb +15 -6
  120. data/app/models/spree/store_credit.rb +252 -0
  121. data/app/models/spree/store_credit_category.rb +22 -0
  122. data/app/models/spree/store_credit_event.rb +38 -0
  123. data/app/models/spree/store_credit_type.rb +6 -0
  124. data/app/models/spree/tag.rb +4 -0
  125. data/app/models/spree/tax_category.rb +3 -8
  126. data/app/models/spree/tax_rate.rb +61 -121
  127. data/app/models/spree/taxon.rb +12 -6
  128. data/app/models/spree/tracker.rb +12 -1
  129. data/app/models/spree/validations/db_maximum_length_validator.rb +2 -1
  130. data/app/models/spree/variant.rb +94 -49
  131. data/app/models/spree/zone.rb +23 -19
  132. data/app/models/spree/zone_member.rb +6 -0
  133. data/app/validators/db_maximum_length_validator.rb +11 -0
  134. data/app/views/layouts/spree/base_mailer.html.erb +38 -781
  135. data/app/views/spree/order_mailer/_adjustment.html.erb +8 -0
  136. data/app/views/spree/order_mailer/_subtotal.html.erb +8 -0
  137. data/app/views/spree/order_mailer/_total.html.erb +8 -0
  138. data/app/views/spree/order_mailer/cancel_email.html.erb +13 -28
  139. data/app/views/spree/order_mailer/cancel_email.text.erb +1 -1
  140. data/app/views/spree/order_mailer/confirm_email.html.erb +49 -63
  141. data/app/views/spree/order_mailer/confirm_email.text.erb +1 -1
  142. data/app/views/spree/shared/_base_mailer_header.html.erb +5 -7
  143. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +777 -0
  144. data/app/views/spree/shared/_error_messages.html.erb +1 -1
  145. data/app/views/spree/shared/_mailer_line_item.html.erb +12 -0
  146. data/app/views/spree/shared/_paths.html.erb +8 -0
  147. data/app/views/spree/shipment_mailer/shipped_email.html.erb +21 -14
  148. data/app/views/spree/shipment_mailer/shipped_email.text.erb +3 -3
  149. data/config/initializers/acts_as_taggable_on.rb +9 -0
  150. data/config/initializers/friendly_id.rb +0 -81
  151. data/config/initializers/user_class_extensions.rb +7 -38
  152. data/config/locales/en.yml +137 -12
  153. data/config/routes.rb +7 -0
  154. data/db/default/spree/countries.rb +5 -1
  155. data/db/default/spree/default_reimbursement_type.rb +1 -1
  156. data/db/default/spree/roles.rb +2 -2
  157. data/db/default/spree/states.rb +1 -1
  158. data/db/default/spree/zones.rb +4 -5
  159. data/db/migrate/20120831092320_spree_one_two.rb +101 -101
  160. data/db/migrate/20120831092359_spree_promo_one_two.rb +14 -14
  161. data/db/migrate/20120905145253_add_tax_rate_label.rb +1 -1
  162. data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +2 -2
  163. data/db/migrate/20120929093553_remove_unused_preference_columns.rb +4 -4
  164. data/db/migrate/20121009142519_add_lock_version_to_variant.rb +2 -2
  165. data/db/migrate/20121010142909_add_states_required_to_countries.rb +2 -2
  166. data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +3 -3
  167. data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +5 -5
  168. data/db/migrate/20121031162139_split_prices_from_variants.rb +10 -10
  169. data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +3 -3
  170. data/db/migrate/20121107184631_add_currency_to_line_items.rb +1 -1
  171. data/db/migrate/20121107194006_add_currency_to_orders.rb +1 -1
  172. data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +2 -2
  173. data/db/migrate/20121111231553_remove_display_on_from_payment_methods.rb +1 -1
  174. data/db/migrate/20121124203911_add_position_to_taxonomies.rb +2 -2
  175. data/db/migrate/20121126040517_add_last_ip_to_spree_orders.rb +1 -1
  176. data/db/migrate/20121213162028_add_state_to_spree_adjustments.rb +1 -1
  177. data/db/migrate/20130114053446_add_display_on_to_spree_payment_methods.rb +1 -1
  178. data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +2 -2
  179. data/db/migrate/20130203232234_add_identifier_to_spree_payments.rb +1 -1
  180. data/db/migrate/20130207155350_add_order_id_index_to_payments.rb +1 -1
  181. data/db/migrate/20130208032954_add_primary_to_spree_products_taxons.rb +1 -1
  182. data/db/migrate/20130211190146_create_spree_stock_items.rb +2 -2
  183. data/db/migrate/20130211191120_create_spree_stock_locations.rb +1 -1
  184. data/db/migrate/20130213191427_create_default_stock.rb +1 -2
  185. data/db/migrate/20130222032153_add_order_id_index_to_shipments.rb +1 -1
  186. data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +2 -2
  187. data/db/migrate/20130226191231_add_stock_location_id_to_spree_shipments.rb +1 -1
  188. data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +3 -3
  189. data/db/migrate/20130228164411_remove_on_demand_from_product_and_variant.rb +1 -1
  190. data/db/migrate/20130228210442_create_shipping_method_zone.rb +3 -3
  191. data/db/migrate/20130301162745_remove_shipping_category_id_from_shipping_method.rb +1 -1
  192. data/db/migrate/20130301162924_create_shipping_method_categories.rb +3 -3
  193. data/db/migrate/20130301205200_add_tracking_url_to_spree_shipping_methods.rb +1 -1
  194. data/db/migrate/20130304162240_create_spree_shipping_rates.rb +5 -5
  195. data/db/migrate/20130304192936_remove_category_match_attributes_from_shipping_method.rb +1 -1
  196. data/db/migrate/20130305143310_create_stock_movements.rb +1 -1
  197. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +3 -3
  198. data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +2 -2
  199. data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +2 -2
  200. data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +2 -2
  201. data/db/migrate/20130318151756_add_source_and_destination_to_stock_movements.rb +1 -1
  202. data/db/migrate/20130319062004_change_orders_total_precision.rb +5 -5
  203. data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +2 -2
  204. data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +2 -2
  205. data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +2 -2
  206. data/db/migrate/20130319183250_add_originator_to_stock_movement.rb +1 -1
  207. data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +3 -3
  208. data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +3 -3
  209. data/db/migrate/20130326175857_add_stock_location_to_rma.rb +1 -1
  210. data/db/migrate/20130328130308_update_shipment_state_for_canceled_orders.rb +1 -1
  211. data/db/migrate/20130328195253_add_seo_metas_to_taxons.rb +1 -1
  212. data/db/migrate/20130329134939_remove_stock_item_and_variant_lock.rb +1 -1
  213. data/db/migrate/20130413230529_add_name_to_spree_credit_cards.rb +1 -1
  214. data/db/migrate/20130414000512_update_name_fields_on_spree_credit_cards.rb +2 -2
  215. data/db/migrate/20130417120034_add_index_to_source_columns_on_adjustments.rb +1 -1
  216. data/db/migrate/20130417120035_update_adjustment_states.rb +3 -3
  217. data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +4 -4
  218. data/db/migrate/20130418125341_create_spree_stock_transfers.rb +1 -1
  219. data/db/migrate/20130423110707_drop_products_count_on_hand.rb +1 -1
  220. data/db/migrate/20130423223847_set_default_shipping_rate_cost.rb +1 -1
  221. data/db/migrate/20130509115210_add_number_to_stock_transfer.rb +1 -1
  222. data/db/migrate/20130514151929_add_sku_index_to_spree_variants.rb +1 -1
  223. data/db/migrate/20130515180736_add_backorderable_default_to_spree_stock_location.rb +1 -1
  224. data/db/migrate/20130516151222_add_propage_all_variants_to_spree_stock_location.rb +1 -1
  225. data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +1 -1
  226. data/db/migrate/20130611185927_add_user_id_index_to_spree_orders.rb +1 -1
  227. data/db/migrate/20130618041418_add_updated_at_to_spree_countries.rb +1 -1
  228. data/db/migrate/20130619012236_add_updated_at_to_spree_states.rb +1 -1
  229. data/db/migrate/20130626232741_add_cvv_result_code_and_cvv_result_message_to_spree_payments.rb +1 -1
  230. data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +2 -2
  231. data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +4 -4
  232. data/db/migrate/20130708052307_add_deleted_at_to_spree_tax_rates.rb +1 -1
  233. data/db/migrate/20130711200933_remove_lock_version_from_inventory_units.rb +1 -1
  234. data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +2 -2
  235. data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +3 -3
  236. data/db/migrate/20130725031716_add_created_by_id_to_spree_orders.rb +1 -1
  237. data/db/migrate/20130729214043_index_completed_at_on_spree_orders.rb +1 -1
  238. data/db/migrate/20130802014537_add_tax_category_id_to_spree_line_items.rb +1 -1
  239. data/db/migrate/20130802022321_migrate_tax_categories_to_line_items.rb +1 -1
  240. data/db/migrate/20130806022521_drop_spree_mail_methods.rb +1 -1
  241. data/db/migrate/20130806145853_set_default_stock_location_on_shipments.rb +1 -1
  242. data/db/migrate/20130807024301_upgrade_adjustments.rb +4 -4
  243. data/db/migrate/20130807024302_rename_adjustment_fields.rb +1 -1
  244. data/db/migrate/20130809164245_add_admin_name_column_to_spree_shipping_methods.rb +1 -1
  245. data/db/migrate/20130809164330_add_admin_name_column_to_spree_stock_locations.rb +1 -1
  246. data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +2 -2
  247. data/db/migrate/20130813140619_expand_order_number_size.rb +3 -3
  248. data/db/migrate/20130813232134_rename_activators_to_promotions.rb +1 -1
  249. data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +2 -2
  250. data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +2 -2
  251. data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +1 -1
  252. data/db/migrate/20130828234942_add_tax_total_to_line_items_shipments_and_orders.rb +2 -2
  253. data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +2 -2
  254. data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +1 -1
  255. data/db/migrate/20130903183026_add_code_to_spree_promotion_rules.rb +1 -1
  256. data/db/migrate/20130909115621_change_states_required_for_countries.rb +1 -1
  257. data/db/migrate/20130915032339_add_deleted_at_to_spree_stock_items.rb +1 -1
  258. data/db/migrate/20130917024658_remove_promotions_event_name_field.rb +2 -2
  259. data/db/migrate/20130924040529_add_promo_total_to_line_items_and_shipments_and_orders.rb +1 -1
  260. data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +2 -2
  261. data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +2 -2
  262. data/db/migrate/20131107132123_add_tax_category_to_variants.rb +1 -1
  263. data/db/migrate/20131113035136_add_channel_to_spree_orders.rb +1 -1
  264. data/db/migrate/20131118043959_add_included_to_adjustments.rb +2 -2
  265. data/db/migrate/20131118050234_rename_tax_total_fields.rb +1 -1
  266. data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +1 -1
  267. data/db/migrate/20131120234456_add_updated_at_to_variants.rb +1 -1
  268. data/db/migrate/20131127001002_add_position_to_classifications.rb +1 -1
  269. data/db/migrate/20131211112807_create_spree_orders_promotions.rb +2 -2
  270. data/db/migrate/20131211192741_unique_shipping_method_categories.rb +1 -1
  271. data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +2 -2
  272. data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +1 -1
  273. data/db/migrate/20140106224208_rename_permalink_to_slug_for_products.rb +1 -1
  274. data/db/migrate/20140120160805_add_index_to_variant_id_and_currency_on_prices.rb +1 -1
  275. data/db/migrate/20140124023232_rename_activator_id_in_rules_and_actions_to_promotion_id.rb +1 -1
  276. data/db/migrate/20140129024326_add_deleted_at_to_spree_prices.rb +1 -1
  277. data/db/migrate/20140203161722_add_approver_id_and_approved_at_to_orders.rb +1 -1
  278. data/db/migrate/20140204115338_add_confirmation_delivered_to_spree_orders.rb +1 -1
  279. data/db/migrate/20140204192230_add_auto_capture_to_payment_methods.rb +1 -1
  280. data/db/migrate/20140205120320_create_spree_payment_capture_events.rb +1 -1
  281. data/db/migrate/20140205144710_add_uncaptured_amount_to_payments.rb +1 -1
  282. data/db/migrate/20140205181631_default_variant_weight_to_zero.rb +1 -1
  283. data/db/migrate/20140207085910_add_tax_category_id_to_shipping_methods.rb +1 -1
  284. data/db/migrate/20140207093021_add_tax_rate_id_to_shipping_rates.rb +1 -1
  285. data/db/migrate/20140211040159_add_pre_tax_amount_to_line_items_and_shipments.rb +1 -1
  286. data/db/migrate/20140213184916_add_more_indexes.rb +1 -1
  287. data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +2 -2
  288. data/db/migrate/20140227112348_add_preference_store_to_everything.rb +1 -1
  289. data/db/migrate/20140307235515_add_user_id_to_spree_credit_cards.rb +1 -1
  290. data/db/migrate/20140309023735_migrate_old_preferences.rb +1 -1
  291. data/db/migrate/20140309024355_create_spree_stores.rb +2 -2
  292. data/db/migrate/20140309033438_create_store_from_preferences.rb +2 -2
  293. data/db/migrate/20140315053743_add_timestamps_to_spree_assets.rb +1 -1
  294. data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +1 -1
  295. data/db/migrate/20140331100557_add_additional_store_fields.rb +1 -1
  296. data/db/migrate/20140410141842_add_many_missing_indexes.rb +1 -1
  297. data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +1 -1
  298. data/db/migrate/20140415041315_add_user_id_created_by_id_index_to_order.rb +1 -1
  299. data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +5 -5
  300. data/db/migrate/20140518174634_add_token_to_spree_orders.rb +1 -1
  301. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +2 -2
  302. data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +1 -1
  303. data/db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb +1 -1
  304. data/db/migrate/20140609201656_add_deleted_at_to_spree_promotion_actions.rb +1 -1
  305. data/db/migrate/20140616202624_remove_uncaptured_amount_from_spree_payments.rb +1 -1
  306. data/db/migrate/20140625214618_create_spree_refunds.rb +1 -1
  307. data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +1 -1
  308. data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +1 -1
  309. data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +1 -1
  310. data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +2 -2
  311. data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +1 -1
  312. data/db/migrate/20140710190048_drop_return_authorization_amount.rb +1 -1
  313. data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +1 -1
  314. data/db/migrate/20140713140527_create_spree_refund_reasons.rb +1 -1
  315. data/db/migrate/20140713142214_rename_return_authorization_reason.rb +1 -1
  316. data/db/migrate/20140715182625_create_spree_promotion_categories.rb +1 -1
  317. data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +1 -1
  318. data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +1 -1
  319. data/db/migrate/20140717155155_create_default_refund_reason.rb +1 -1
  320. data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +1 -1
  321. data/db/migrate/20140718133010_create_spree_customer_returns.rb +1 -1
  322. data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +1 -1
  323. data/db/migrate/20140718195325_create_friendly_id_slugs.rb +5 -5
  324. data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +1 -1
  325. data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +1 -1
  326. data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +2 -2
  327. data/db/migrate/20140725131539_create_spree_reimbursements.rb +1 -1
  328. data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +1 -1
  329. data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +1 -1
  330. data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +1 -1
  331. data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +1 -1
  332. data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +1 -1
  333. data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +1 -1
  334. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +1 -1
  335. data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +1 -1
  336. data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +1 -1
  337. data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +1 -1
  338. data/db/migrate/20140911173301_add_kind_to_zone.rb +1 -1
  339. data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +1 -1
  340. data/db/migrate/20140927193717_default_pre_tax_amount_should_be_zero.rb +1 -1
  341. data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +1 -1
  342. data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +1 -1
  343. data/db/migrate/20141009204607_add_store_id_to_orders.rb +1 -1
  344. data/db/migrate/20141012083513_create_spree_taxons_prototypes.rb +1 -1
  345. data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +1 -1
  346. data/db/migrate/20141023005240_add_counter_cache_from_spree_variants_to_spree_stock_items.rb +2 -7
  347. data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +1 -1
  348. data/db/migrate/20141105213646_update_classifications_positions.rb +1 -1
  349. data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +1 -1
  350. data/db/migrate/20141215232040_remove_token_permissions_table.rb +1 -1
  351. data/db/migrate/20141215235502_remove_extra_products_slug_index.rb +1 -1
  352. data/db/migrate/20141217215630_update_product_slug_index.rb +1 -1
  353. data/db/migrate/20141218025915_rename_identifier_to_number_for_payment.rb +1 -1
  354. data/db/migrate/20150118210639_create_spree_store_credits.rb +24 -0
  355. data/db/migrate/20150118211500_create_spree_store_credit_categories.rb +8 -0
  356. data/db/migrate/20150118212051_create_spree_store_credit_events.rb +17 -0
  357. data/db/migrate/20150118212101_create_spree_store_credit_types.rb +10 -0
  358. data/db/migrate/20150121022521_remove_environment_from_payment_method.rb +1 -1
  359. data/db/migrate/20150122145607_add_resellable_to_return_items.rb +1 -1
  360. data/db/migrate/20150122202432_add_code_to_spree_promotion_categories.rb +1 -1
  361. data/db/migrate/20150128032538_remove_environment_from_tracker.rb +1 -1
  362. data/db/migrate/20150128060325_remove_spree_configurations.rb +1 -1
  363. data/db/migrate/20150216173445_add_index_to_spree_stock_items_variant_id.rb +1 -1
  364. data/db/migrate/20150309161154_ensure_payments_have_numbers.rb +1 -1
  365. data/db/migrate/20150314013438_add_missing_indexes_on_spree_tables.rb +67 -0
  366. data/db/migrate/20150317174308_remove_duplicated_indexes_from_multi_columns.rb +18 -0
  367. data/db/migrate/20150324104002_remove_user_index_from_spree_state_changes.rb +14 -0
  368. data/db/migrate/20150515211137_fix_adjustment_order_id.rb +1 -1
  369. data/db/migrate/20150522071831_add_position_to_spree_payment_methods.rb +5 -0
  370. data/db/migrate/20150522181728_add_deleted_at_to_friendly_id_slugs.rb +1 -1
  371. data/db/migrate/20150609093816_increase_scale_on_pre_tax_amounts.rb +1 -1
  372. data/db/migrate/20150626181949_add_taxable_adjustment_total_to_line_item.rb +19 -0
  373. data/db/migrate/20150627090949_migrate_payment_methods_display.rb +12 -0
  374. data/db/migrate/20150707204155_enable_acts_as_paranoid_on_calculators.rb +1 -1
  375. data/db/migrate/20150714154102_spree_payment_method_store_credits.rb +12 -0
  376. data/db/migrate/20150726141425_rename_has_and_belongs_to_associations_to_model_names.rb +18 -0
  377. data/db/migrate/20150727191614_spree_store_credit_types.rb +11 -0
  378. data/db/migrate/20150819154308_add_discontinued_to_products_and_variants.rb +68 -0
  379. data/db/migrate/20151220072838_remove_shipping_method_id_from_spree_orders.rb +13 -0
  380. data/db/migrate/20160207191757_add_id_column_to_earlier_habtm_tables.rb +16 -0
  381. data/db/migrate/20160219165458_add_indexes.rb +14 -0
  382. data/db/migrate/20160509064646_remove_counter_cache_from_spree_variants_to_spree_stock_items.rb +10 -0
  383. data/db/migrate/20160511071954_acts_as_taggable_on_spree_migration.rb +40 -0
  384. data/db/migrate/20160511072249_change_collation_for_spree_tag_names.rb +9 -0
  385. data/db/migrate/20160511072335_add_missing_indexes_to_spree_taggings.rb +14 -0
  386. data/db/migrate/20160608090604_add_zipcode_required_to_spree_countries.rb +7 -0
  387. data/db/migrate/20161014145148_add_created_at_to_variant.rb +8 -0
  388. data/db/migrate/20161014152814_add_null_false_to_spree_variants_timestamps.rb +6 -0
  389. data/lib/generators/spree/custom_user/custom_user_generator.rb +1 -1
  390. data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +3 -3
  391. data/lib/generators/spree/custom_user/templates/migration.rb.tt +2 -2
  392. data/lib/generators/spree/dummy/dummy_generator.rb +11 -11
  393. data/lib/generators/spree/dummy/templates/rails/application.rb +1 -1
  394. data/lib/generators/spree/dummy/templates/rails/database.yml +38 -28
  395. data/lib/generators/spree/dummy/templates/rails/test.rb +4 -3
  396. data/lib/generators/spree/install/install_generator.rb +37 -13
  397. data/lib/spree/core/controller_helpers/auth.rb +1 -1
  398. data/lib/spree/core/controller_helpers/common.rb +6 -6
  399. data/lib/spree/core/controller_helpers/order.rb +9 -10
  400. data/lib/spree/core/controller_helpers/respond_with.rb +1 -1
  401. data/lib/spree/core/controller_helpers/search.rb +1 -1
  402. data/lib/spree/core/controller_helpers/store.rb +29 -0
  403. data/lib/spree/core/delegate_belongs_to.rb +4 -4
  404. data/lib/spree/core/engine.rb +39 -20
  405. data/lib/spree/core/environment.rb +1 -1
  406. data/lib/spree/core/importer/order.rb +37 -40
  407. data/lib/spree/core/importer/product.rb +2 -2
  408. data/lib/spree/core/number_generator.rb +52 -0
  409. data/lib/spree/core/product_duplicator.rb +1 -1
  410. data/lib/spree/core/product_filters.rb +2 -2
  411. data/lib/spree/core/search/base.rb +4 -3
  412. data/lib/spree/core/version.rb +1 -1
  413. data/lib/spree/core.rb +16 -0
  414. data/lib/spree/i18n/initializer.rb +1 -1
  415. data/lib/spree/localized_number.rb +3 -1
  416. data/lib/spree/permitted_attributes.rb +6 -3
  417. data/lib/spree/testing_support/caching.rb +3 -3
  418. data/lib/spree/testing_support/common_rake.rb +3 -3
  419. data/lib/spree/testing_support/controller_requests.rb +4 -4
  420. data/lib/spree/testing_support/factories/address_factory.rb +1 -1
  421. data/lib/spree/testing_support/factories/country_factory.rb +2 -2
  422. data/lib/spree/testing_support/factories/line_item_factory.rb +0 -1
  423. data/lib/spree/testing_support/factories/order_factory.rb +3 -2
  424. data/lib/spree/testing_support/factories/payment_factory.rb +5 -0
  425. data/lib/spree/testing_support/factories/payment_method_factory.rb +8 -0
  426. data/lib/spree/testing_support/factories/promotion_rule_factory.rb +5 -0
  427. data/lib/spree/testing_support/factories/refund_factory.rb +9 -1
  428. data/lib/spree/testing_support/factories/return_authorization_factory.rb +2 -0
  429. data/lib/spree/testing_support/factories/state_factory.rb +2 -2
  430. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +9 -0
  431. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -0
  432. data/lib/spree/testing_support/factories/store_credit_factory.rb +17 -0
  433. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +11 -0
  434. data/lib/spree/testing_support/factories/tag_factory.rb +5 -0
  435. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  436. data/lib/spree/testing_support/factories/zone_member_factory.rb +6 -0
  437. data/lib/spree/testing_support/factories.rb +3 -3
  438. data/lib/spree/testing_support/kernel.rb +18 -0
  439. data/lib/spree/testing_support/microdata.rb +189 -0
  440. data/lib/spree/testing_support/order_walkthrough.rb +4 -4
  441. data/lib/tasks/core.rake +69 -1
  442. data/lib/tasks/exchanges.rake +2 -2
  443. data/spec/fixtures/microdata.html +22 -0
  444. data/spec/fixtures/microdata_itemref.html +15 -0
  445. data/spec/fixtures/microdata_no_itemscope.html +20 -0
  446. data/spec/helpers/base_helper_spec.rb +74 -11
  447. data/spec/helpers/products_helper_spec.rb +80 -15
  448. data/spec/lib/i18n_spec.rb +13 -13
  449. data/spec/lib/search/base_spec.rb +18 -18
  450. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +6 -4
  451. data/spec/lib/spree/core/controller_helpers/order_spec.rb +15 -0
  452. data/spec/lib/spree/core/controller_helpers/store_spec.rb +56 -0
  453. data/spec/lib/spree/core/importer/order_spec.rb +227 -124
  454. data/spec/lib/spree/core/number_generator_spec.rb +175 -0
  455. data/spec/lib/spree/core_spec.rb +23 -0
  456. data/spec/lib/spree/localized_number_spec.rb +11 -1
  457. data/spec/lib/spree/money_spec.rb +6 -6
  458. data/spec/mailers/order_mailer_spec.rb +11 -13
  459. data/spec/mailers/reimbursement_mailer_spec.rb +2 -2
  460. data/spec/mailers/shipment_mailer_spec.rb +26 -8
  461. data/spec/mailers/test_mailer_spec.rb +16 -2
  462. data/spec/models/option_type_prototype_spec.rb +9 -0
  463. data/spec/models/spree/ability_spec.rb +20 -15
  464. data/spec/models/spree/address_spec.rb +144 -33
  465. data/spec/models/spree/adjustable/adjuster/base_spec.rb +10 -0
  466. data/spec/models/spree/adjustable/adjuster/promotion_spec.rb +211 -0
  467. data/spec/models/spree/adjustable/adjuster/tax_spec.rb +86 -0
  468. data/spec/models/spree/adjustable/adjustments_updater_spec.rb +2 -262
  469. data/spec/models/spree/adjustment_spec.rb +28 -2
  470. data/spec/models/spree/app_configuration_spec.rb +6 -3
  471. data/spec/models/spree/asset_spec.rb +9 -6
  472. data/spec/models/spree/calculator/default_tax_spec.rb +39 -14
  473. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +1 -1
  474. data/spec/models/spree/calculator/flexi_rate_spec.rb +6 -6
  475. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +1 -1
  476. data/spec/models/spree/calculator/price_sack_spec.rb +2 -2
  477. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +4 -8
  478. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +4 -4
  479. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +2 -2
  480. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +6 -6
  481. data/spec/models/spree/calculator/shipping/per_item_spec.rb +2 -2
  482. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +1 -1
  483. data/spec/models/spree/calculator/tiered_percent_spec.rb +1 -1
  484. data/spec/models/spree/calculator_spec.rb +3 -3
  485. data/spec/models/spree/classification_spec.rb +1 -1
  486. data/spec/models/spree/concerns/user_methods_spec.rb +82 -0
  487. data/spec/models/spree/concerns/vat_price_calculation_spec.rb +66 -0
  488. data/spec/models/spree/country_spec.rb +45 -8
  489. data/spec/models/spree/credit_card_spec.rb +13 -9
  490. data/spec/models/spree/customer_return_spec.rb +4 -26
  491. data/spec/models/spree/exchange_spec.rb +1 -1
  492. data/spec/models/spree/gateway/bogus_simple.rb +1 -1
  493. data/spec/models/spree/gateway/bogus_spec.rb +1 -1
  494. data/spec/models/spree/gateway_spec.rb +8 -1
  495. data/spec/models/spree/image_spec.rb +4 -1
  496. data/spec/models/spree/inventory_unit_spec.rb +35 -21
  497. data/spec/models/spree/line_item_spec.rb +100 -21
  498. data/spec/models/spree/option_type_spec.rb +3 -3
  499. data/spec/models/spree/option_value_spec.rb +8 -3
  500. data/spec/models/spree/order/address_spec.rb +1 -1
  501. data/spec/models/spree/order/adjustments_spec.rb +1 -1
  502. data/spec/models/spree/order/callbacks_spec.rb +3 -3
  503. data/spec/models/spree/order/checkout_spec.rb +99 -93
  504. data/spec/models/spree/order/currency_updater_spec.rb +4 -4
  505. data/spec/models/spree/order/finalizing_spec.rb +5 -8
  506. data/spec/models/spree/order/helpers_spec.rb +1 -1
  507. data/spec/models/spree/order/payment_spec.rb +21 -21
  508. data/spec/models/spree/order/risk_assessment_spec.rb +1 -1
  509. data/spec/models/spree/order/state_machine_spec.rb +4 -8
  510. data/spec/models/spree/order/store_credit_spec.rb +426 -0
  511. data/spec/models/spree/order/tax_spec.rb +13 -13
  512. data/spec/models/spree/order/totals_spec.rb +2 -2
  513. data/spec/models/spree/order/updating_spec.rb +4 -4
  514. data/spec/models/spree/order/validations_spec.rb +2 -2
  515. data/spec/models/spree/order_contents_spec.rb +45 -4
  516. data/spec/models/spree/order_inventory_spec.rb +28 -17
  517. data/spec/models/spree/order_merger_spec.rb +3 -1
  518. data/spec/models/spree/order_spec.rb +188 -96
  519. data/spec/models/spree/order_updater_spec.rb +43 -32
  520. data/spec/models/spree/payment/gateway_options_spec.rb +10 -2
  521. data/spec/models/spree/payment/store_credit_spec.rb +60 -0
  522. data/spec/models/spree/payment_method/store_credit_spec.rb +291 -0
  523. data/spec/models/spree/payment_method_spec.rb +22 -14
  524. data/spec/models/spree/payment_spec.rb +75 -82
  525. data/spec/models/spree/preference_spec.rb +1 -1
  526. data/spec/models/spree/preferences/configuration_spec.rb +2 -2
  527. data/spec/models/spree/preferences/preferable_spec.rb +15 -19
  528. data/spec/models/spree/preferences/scoped_store_spec.rb +1 -1
  529. data/spec/models/spree/preferences/store_spec.rb +3 -3
  530. data/spec/models/spree/price_spec.rb +87 -1
  531. data/spec/models/spree/product/scopes_spec.rb +39 -4
  532. data/spec/models/spree/product_duplicator_spec.rb +2 -2
  533. data/spec/models/spree/product_filter_spec.rb +2 -2
  534. data/spec/models/spree/product_option_type_spec.rb +6 -2
  535. data/spec/models/spree/product_promotion_rule_spec.rb +9 -0
  536. data/spec/models/spree/product_property_spec.rb +16 -1
  537. data/spec/models/spree/product_spec.rb +196 -41
  538. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +63 -0
  539. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +6 -6
  540. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +1 -1
  541. data/spec/models/spree/promotion/rules/country_spec.rb +36 -0
  542. data/spec/models/spree/promotion/rules/first_order_spec.rb +11 -11
  543. data/spec/models/spree/promotion/rules/item_total_spec.rb +1 -1
  544. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +1 -1
  545. data/spec/models/spree/promotion/rules/product_spec.rb +8 -8
  546. data/spec/models/spree/promotion/rules/taxon_spec.rb +1 -1
  547. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +3 -3
  548. data/spec/models/spree/promotion/rules/user_spec.rb +15 -7
  549. data/spec/models/spree/promotion_action_spec.rb +2 -2
  550. data/spec/models/spree/promotion_category_spec.rb +1 -1
  551. data/spec/models/spree/promotion_handler/cart_spec.rb +1 -1
  552. data/spec/models/spree/promotion_handler/coupon_spec.rb +28 -28
  553. data/spec/models/spree/promotion_handler/page_spec.rb +6 -6
  554. data/spec/models/spree/promotion_rule_spec.rb +2 -2
  555. data/spec/models/spree/promotion_rule_taxon_spec.rb +9 -0
  556. data/spec/models/spree/promotion_rule_user_spec.rb +9 -0
  557. data/spec/models/spree/promotion_spec.rb +141 -65
  558. data/spec/models/spree/property_prototype_spec.rb +9 -0
  559. data/spec/models/spree/property_spec.rb +1 -1
  560. data/spec/models/spree/prototype_spec.rb +1 -1
  561. data/spec/models/spree/prototype_taxon_spec.rb +9 -0
  562. data/spec/models/spree/refund_reason_spec.rb +20 -0
  563. data/spec/models/spree/refund_spec.rb +1 -1
  564. data/spec/models/spree/reimbursement/credit_spec.rb +1 -1
  565. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +1 -1
  566. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +1 -1
  567. data/spec/models/spree/reimbursement_performer_spec.rb +1 -1
  568. data/spec/models/spree/reimbursement_spec.rb +3 -30
  569. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +18 -6
  570. data/spec/models/spree/reimbursement_type/credit_spec.rb +1 -1
  571. data/spec/models/spree/reimbursement_type/exchange_spec.rb +1 -1
  572. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +1 -1
  573. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +101 -0
  574. data/spec/models/spree/return_authorization_reason_spec.rb +7 -0
  575. data/spec/models/spree/return_authorization_spec.rb +3 -23
  576. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +1 -1
  577. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +1 -1
  578. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +1 -1
  579. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +1 -1
  580. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +1 -1
  581. data/spec/models/spree/return_item_spec.rb +51 -2
  582. data/spec/models/spree/returns_calculator_spec.rb +2 -2
  583. data/spec/models/spree/role_spec.rb +7 -0
  584. data/spec/models/spree/shipment_spec.rb +24 -22
  585. data/spec/models/spree/shipping_calculator_spec.rb +5 -5
  586. data/spec/models/spree/shipping_category_spec.rb +15 -1
  587. data/spec/models/spree/shipping_method_spec.rb +11 -4
  588. data/spec/models/spree/shipping_rate_spec.rb +40 -41
  589. data/spec/models/spree/state_spec.rb +13 -2
  590. data/spec/models/spree/stock/availability_validator_spec.rb +1 -1
  591. data/spec/models/spree/stock/content_item_spec.rb +9 -0
  592. data/spec/models/spree/stock/coordinator_spec.rb +13 -3
  593. data/spec/models/spree/stock/differentiator_spec.rb +1 -1
  594. data/spec/models/spree/stock/estimator_spec.rb +60 -12
  595. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +1 -1
  596. data/spec/models/spree/stock/package_spec.rb +6 -18
  597. data/spec/models/spree/stock/packer_spec.rb +1 -1
  598. data/spec/models/spree/stock/prioritizer_spec.rb +7 -7
  599. data/spec/models/spree/stock/quantifier_spec.rb +61 -32
  600. data/spec/models/spree/stock/splitter/backordered_spec.rb +1 -1
  601. data/spec/models/spree/stock/splitter/base_spec.rb +1 -1
  602. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +3 -3
  603. data/spec/models/spree/stock_item_spec.rb +30 -8
  604. data/spec/models/spree/stock_location_spec.rb +5 -5
  605. data/spec/models/spree/stock_movement_spec.rb +101 -37
  606. data/spec/models/spree/stock_transfer_spec.rb +1 -1
  607. data/spec/models/spree/store_credit_event_spec.rb +101 -0
  608. data/spec/models/spree/store_credit_spec.rb +786 -0
  609. data/spec/models/spree/store_spec.rb +40 -12
  610. data/spec/models/spree/tax_category_spec.rb +7 -2
  611. data/spec/models/spree/tax_rate_spec.rb +288 -109
  612. data/spec/models/spree/taxon_spec.rb +15 -4
  613. data/spec/models/spree/taxonomy_spec.rb +2 -2
  614. data/spec/models/spree/tracker_spec.rb +1 -1
  615. data/spec/models/spree/user_spec.rb +114 -41
  616. data/spec/models/spree/variant_spec.rb +310 -15
  617. data/spec/models/spree/zone_member_spec.rb +38 -0
  618. data/spec/models/spree/zone_spec.rb +38 -10
  619. data/spec/spec_helper.rb +5 -0
  620. data/spec/support/concerns/{adjustment_source_spec.rb → adjustment_source.rb} +0 -0
  621. data/spec/support/concerns/{default_price_spec.rb → default_price.rb} +9 -0
  622. data/spree_core.gemspec +12 -13
  623. data/vendor/assets/javascripts/jquery.payment.js +239 -84
  624. metadata +136 -65
  625. data/CHANGELOG.md +0 -4
  626. data/app/models/concerns/spree/number_generator.rb +0 -39
  627. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -24
@@ -1,6 +1,6 @@
1
1
  <% if target && target.errors.any? %>
2
2
  <div id="errorExplanation" class="errorExplanation" data-hook>
3
- <h2><%= Spree.t(:errors_prohibited_this_record_from_being_saved, :count => target.errors.count) %>:</h2>
3
+ <h2><%= Spree.t(:errors_prohibited_this_record_from_being_saved, count: target.errors.size) %>:</h2>
4
4
  <p><%= Spree.t(:there_were_problems_with_the_following_fields) %>:</p>
5
5
  <ul>
6
6
  <% target.errors.full_messages.each do |msg| %>
@@ -0,0 +1,12 @@
1
+ <tr>
2
+ <td class="six sub-columns">
3
+ <strong>
4
+ <%= link_to raw(line_item.variant.product.name), spree.product_url(line_item.variant.product) %>
5
+ </strong>
6
+ <%= raw(line_item.variant.options_text) -%>
7
+ (<%= line_item.variant.sku %>)
8
+ </td>
9
+ <td class="six sub-columns last right">
10
+ <%= line_item.quantity %> x <%= line_item.single_money %> = <%= line_item.display_amount %>
11
+ </td>
12
+ </tr>
@@ -0,0 +1,8 @@
1
+ <script>
2
+ SpreePaths = <%==
3
+ {
4
+ mounted_at: Rails.application.routes.url_helpers.spree_path(trailing_slash: true),
5
+ admin: Spree.admin_path.gsub(/\A(\/)?(.*[^\/])(\/)?\z/, '\\2/')
6
+ }.to_json
7
+ %>
8
+ </script>
@@ -1,30 +1,37 @@
1
- <table>
1
+ <table class="row header">
2
2
  <tr>
3
3
  <td>
4
4
  <p class="lede">
5
5
  <%= Spree.t('shipment_mailer.shipped_email.dear_customer') %>
6
6
  </p>
7
7
  <p>
8
- <%= Spree.t('shipment_mailer.shipped_email.instructions') %>
8
+ <%= Spree.t('shipment_mailer.shipped_email.instructions', number: @shipment.order.number) %>
9
9
  </p>
10
10
  <p>
11
11
  <%= Spree.t('shipment_mailer.shipped_email.shipment_summary') %>
12
12
  </p>
13
- <table>
14
- <% @shipment.manifest.each do |item| %>
15
- <tr>
16
- <td><%= item.variant.sku %></td>
17
- <td><%= item.variant.product.name %></td>
18
- <td><%= item.variant.options_text %></td>
19
- </tr>
20
- <% end %>
13
+ <table class="container">
14
+ <tr>
15
+ <td class="wrapper last">
16
+ <table class="twelve columns">
17
+ <%= render collection: @shipment.manifest.map(&:line_item), partial: 'spree/shared/mailer_line_item', as: :line_item %>
18
+ </table>
19
+ </td>
20
+ </tr>
21
21
  </table>
22
22
  <p>
23
- <%= Spree.t('shipment_mailer.shipped_email.track_information', :tracking => @shipment.tracking) if @shipment.tracking %>
24
- </p>
25
- <p>
26
- <%= Spree.t('shipment_mailer.shipped_email.track_link', :url => @shipment.tracking_url) if @shipment.tracking_url %>
23
+ <%= Spree.t('shipment_mailer.shipped_email.shipping_method', shipping_method: @shipment.shipping_method.name) %>
27
24
  </p>
25
+ <% if @shipment.tracking %>
26
+ <p>
27
+ <%= Spree.t('shipment_mailer.shipped_email.track_information', tracking: @shipment.tracking) %>
28
+ </p>
29
+ <% end %>
30
+ <% if @shipment.tracking_url %>
31
+ <p>
32
+ <%= Spree.t('shipment_mailer.shipped_email.track_link', url: link_to(@shipment.tracking_url, @shipment.tracking_url)).html_safe %>
33
+ </p>
34
+ <% end %>
28
35
  <p>
29
36
  <%= Spree.t('shipment_mailer.shipped_email.thanks') %>
30
37
  </p>
@@ -1,6 +1,6 @@
1
1
  <%= Spree.t('shipment_mailer.shipped_email.dear_customer') %>
2
2
 
3
- <%= Spree.t('shipment_mailer.shipped_email.instructions') %>
3
+ <%= Spree.t('shipment_mailer.shipped_email.instructions', number: @shipment.order.number) %>
4
4
 
5
5
  ============================================================
6
6
  <%= Spree.t('shipment_mailer.shipped_email.shipment_summary') %>
@@ -10,7 +10,7 @@
10
10
  <% end %>
11
11
  ============================================================
12
12
 
13
- <%= Spree.t('shipment_mailer.shipped_email.track_information', :tracking => @shipment.tracking) if @shipment.tracking %>
14
- <%= Spree.t('shipment_mailer.shipped_email.track_link', :url => @shipment.tracking_url) if @shipment.tracking_url %>
13
+ <%= Spree.t('shipment_mailer.shipped_email.track_information', tracking: @shipment.tracking) if @shipment.tracking %>
14
+ <%= Spree.t('shipment_mailer.shipped_email.track_link', url: @shipment.tracking_url) if @shipment.tracking_url %>
15
15
 
16
16
  <%= Spree.t('shipment_mailer.shipped_email.thanks') %>
@@ -0,0 +1,9 @@
1
+ require "acts-as-taggable-on"
2
+
3
+ ActsAsTaggableOn::Tag.class_eval do
4
+ self.table_name_prefix = "spree_"
5
+ end
6
+
7
+ ActsAsTaggableOn::Tagging.class_eval do
8
+ self.table_name_prefix = "spree_"
9
+ end
@@ -1,88 +1,7 @@
1
- # FriendlyId Global Configuration
2
- #
3
- # Use this to set up shared configuration options for your entire application.
4
- # Any of the configuration options shown here can also be applied to single
5
- # models by passing arguments to the `friendly_id` class method or defining
6
- # methods in your model.
7
- #
8
1
  # To learn more, check out the guide:
9
- #
10
2
  # http://norman.github.io/friendly_id/file.Guide.html
11
-
12
3
  FriendlyId.defaults do |config|
13
- # ## Reserved Words
14
- #
15
- # Some words could conflict with Rails's routes when used as slugs, or are
16
- # undesirable to allow as slugs. Edit this list as needed for your app.
17
4
  config.use :reserved
18
-
19
5
  config.reserved_words = %w(new edit index session login logout users admin
20
6
  stylesheets assets javascripts images)
21
-
22
- # ## Friendly Finders
23
- #
24
- # Uncomment this to use friendly finders in all models. By default, if
25
- # you wish to find a record by its friendly id, you must do:
26
- #
27
- # MyModel.friendly.find('foo')
28
- #
29
- # If you uncomment this, you can do:
30
- #
31
- # MyModel.find('foo')
32
- #
33
- # This is significantly more convenient but may not be appropriate for
34
- # all applications, so you must explicity opt-in to this behavior. You can
35
- # always also configure it on a per-model basis if you prefer.
36
- #
37
- # Something else to consider is that using the :finders addon boosts
38
- # performance because it will avoid Rails-internal code that makes runtime
39
- # calls to `Module.extend`.
40
- #
41
- # config.use :finders
42
- #
43
- # ## Slugs
44
- #
45
- # Most applications will use the :slugged module everywhere. If you wish
46
- # to do so, uncomment the following line.
47
- #
48
- # config.use :slugged
49
- #
50
- # By default, FriendlyId's :slugged addon expects the slug column to be named
51
- # 'slug', but you can change it if you wish.
52
- #
53
- # config.slug_column = 'slug'
54
- #
55
- # When FriendlyId can not generate a unique ID from your base method, it appends
56
- # a UUID, separated by a single dash. You can configure the character used as the
57
- # separator. If you're upgrading from FriendlyId 4, you may wish to replace this
58
- # with two dashes.
59
- #
60
- # config.sequence_separator = '-'
61
- #
62
- # ## Tips and Tricks
63
- #
64
- # ### Controlling when slugs are generated
65
- #
66
- # As of FriendlyId 5.0, new slugs are generated only when the slug field is
67
- # nil, but if you're using a column as your base method can change this
68
- # behavior by overriding the `should_generate_new_friendly_id` method that
69
- # FriendlyId adds to your model. The change below makes FriendlyId 5.0 behave
70
- # more like 4.0.
71
- #
72
- # config.use Module.new {
73
- # def should_generate_new_friendly_id?
74
- # slug.blank? || <your_column_name_here>_changed?
75
- # end
76
- # }
77
- #
78
- # FriendlyId uses Rails's `parameterize` method to generate slugs, but for
79
- # languages that don't use the Roman alphabet, that's not usually suffient. Here
80
- # we use the Babosa library to transliterate Russian Cyrillic slugs to ASCII. If
81
- # you use this, don't forget to add "babosa" to your Gemfile.
82
- #
83
- # config.use Module.new {
84
- # def normalize_friendly_id(text)
85
- # text.to_slug.normalize! :transliterations => [:russian, :latin]
86
- # end
87
- # }
88
7
  end
@@ -1,41 +1,10 @@
1
- Spree::Core::Engine.config.to_prepare do
2
- if Spree.user_class
3
- Spree.user_class.class_eval do
4
-
5
- include Spree::UserApiAuthentication
6
- include Spree::UserPaymentSource
7
- include Spree::UserReporting
8
-
9
- has_and_belongs_to_many :spree_roles,
10
- join_table: 'spree_roles_users',
11
- foreign_key: "user_id",
12
- class_name: "Spree::Role"
13
-
14
- has_many :orders, foreign_key: :user_id, class_name: "Spree::Order"
15
-
16
- belongs_to :ship_address, class_name: 'Spree::Address'
17
- belongs_to :bill_address, class_name: 'Spree::Address'
1
+ # Ensure that Spree.user_class includes the UserMethods concern
2
+ # Previously these methods were injected automatically onto the class, which we
3
+ # are still doing for compatability, but with a warning.
18
4
 
19
- def self.ransackable_associations(auth_object=nil)
20
- %w[bill_address ship_address]
21
- end
22
-
23
- def self.ransackable_attributes(auth_object=nil)
24
- %w[id email]
25
- end
26
-
27
- # has_spree_role? simply needs to return true or false whether a user has a role or not.
28
- def has_spree_role?(role_in_question)
29
- spree_roles.where(name: role_in_question.to_s).any?
30
- end
31
-
32
- def last_incomplete_spree_order
33
- orders.incomplete.order('created_at DESC').first
34
- end
35
-
36
- def analytics_id
37
- id
38
- end
39
- end
5
+ Spree::Core::Engine.config.to_prepare do
6
+ if Spree.user_class && !Spree.user_class.included_modules.include?(Spree::UserMethods)
7
+ ActiveSupport::Deprecation.warn "#{Spree.user_class} must include Spree::UserMethods"
8
+ Spree.user_class.include Spree::UserMethods
40
9
  end
41
10
  end
@@ -77,6 +77,7 @@ en:
77
77
  name: Name
78
78
  spree/product:
79
79
  available_on: Available On
80
+ discontinue_on: Discontinue On
80
81
  cost_currency: Cost Currency
81
82
  cost_price: Cost Price
82
83
  description: Description
@@ -126,6 +127,10 @@ en:
126
127
  seo_title: Seo Title
127
128
  name: Site Name
128
129
  mail_from_address: Mail From Address
130
+ spree/store_credit:
131
+ amount_used: "Amount used"
132
+ spree/store_credit_category:
133
+ name: Name
129
134
  spree/tax_category:
130
135
  description: Description
131
136
  name: Name
@@ -246,6 +251,12 @@ en:
246
251
  spree/stock_transfer:
247
252
  one: Stock Transfer
248
253
  other: Stock Transfers
254
+ spree/store_credit:
255
+ one: Store Credit
256
+ other: Store Credits
257
+ spree/store_credit_category:
258
+ one: Store Credit Category
259
+ other: Store Credit Categories
249
260
  spree/tax_category:
250
261
  one: Tax Category
251
262
  other: Tax Categories
@@ -298,6 +309,16 @@ en:
298
309
  attributes:
299
310
  currency:
300
311
  must_match_order_currency: "Must match order currency"
312
+ spree/promotion:
313
+ attributes:
314
+ expires_at:
315
+ invalid_date_range: must be later than start date
316
+ spree/product:
317
+ attributes:
318
+ discontinue_on:
319
+ invalid_date_range: must be later than available date
320
+ base:
321
+ cannot_destroy_if_attached_to_line_items: Cannot delete products once they are attached to line items.
301
322
  spree/refund:
302
323
  attributes:
303
324
  amount:
@@ -312,11 +333,25 @@ en:
312
333
  cannot_be_associated_unless_accepted: cannot be associated to a return item that is not accepted.
313
334
  inventory_unit:
314
335
  other_completed_return_item_exists: "%{inventory_unit_id} has already been taken by return item %{return_item_id}"
336
+ spree/shipping_method:
337
+ attributes:
338
+ base:
339
+ required_shipping_category: "You must select at least one shipping category"
315
340
  spree/store:
316
341
  attributes:
317
342
  base:
318
343
  cannot_destroy_default_store: Cannot destroy the default Store.
319
-
344
+ spree/store_credit:
345
+ attributes:
346
+ amount_used:
347
+ cannot_be_greater_than_amount: Cannot be greater than amount.
348
+ greater_than_zero_restrict_delete: is greater than zero. Can not delete store credit.
349
+ amount_authorized:
350
+ exceeds_total_credits: Exceeds total credits.
351
+ spree/variant:
352
+ attributes:
353
+ base:
354
+ cannot_destroy_if_attached_to_line_items: Cannot delete variants once they are attached to line items.
320
355
 
321
356
  devise:
322
357
  confirmations:
@@ -356,6 +391,7 @@ en:
356
391
  user_sessions:
357
392
  signed_in: Signed in successfully.
358
393
  signed_out: Signed out successfully.
394
+
359
395
  errors:
360
396
  messages:
361
397
  already_confirmed: was already confirmed
@@ -364,6 +400,12 @@ en:
364
400
  not_saved:
365
401
  one: ! '1 error prohibited this %{resource} from being saved:'
366
402
  other: ! '%{count} errors prohibited this %{resource} from being saved:'
403
+
404
+ number:
405
+ percentage:
406
+ format:
407
+ precision: 1
408
+
367
409
  spree:
368
410
  abbreviation: Abbreviation
369
411
  accept: Accept
@@ -402,13 +444,19 @@ en:
402
444
  add_stock: Add Stock
403
445
  add_to_cart: Add To Cart
404
446
  add_variant: Add Variant
447
+ add_store_credit: Add Store Credit
405
448
  additional_item: Additional Item
406
449
  address: Address
407
450
  address1: Address
408
451
  address2: Address (contd.)
452
+ addresses: Addresses
409
453
  adjustable: Adjustable
410
454
  adjustment: Adjustment
411
455
  adjustment_amount: Amount
456
+ adjustment_labels:
457
+ tax_rates:
458
+ including_tax: '%{name}%{amount} (Included in Price)'
459
+ excluding_tax: '%{name}%{amount}'
412
460
  adjustment_successfully_closed: Adjustment has been successfully closed!
413
461
  adjustment_successfully_opened: Adjustment has been successfully opened!
414
462
  adjustment_total: Adjustment Total
@@ -428,6 +476,12 @@ en:
428
476
  taxonomies: Taxonomies
429
477
  taxons: Taxons
430
478
  users: Users
479
+ order:
480
+ events:
481
+ approve: approve
482
+ cancel: cancel
483
+ resume: resume
484
+ resend: Resend
431
485
  user:
432
486
  account: Account
433
487
  addresses: Addresses
@@ -437,6 +491,9 @@ en:
437
491
  order_num: "Order #"
438
492
  orders: Orders
439
493
  user_information: User Information
494
+ store_credits: Store Credits
495
+ no_store_credit: User has no Store Credit available.
496
+ available_store_credit: User has %{amount} in Store Credit available.
440
497
  administration: Administration
441
498
  advertise: Advertise
442
499
  agree_to_privacy_policy: Agree to Privacy Policy
@@ -469,6 +526,7 @@ en:
469
526
  authorized: Authorized
470
527
  auto_capture: Auto Capture
471
528
  available_on: Available On
529
+ available: Available
472
530
  average_order_value: Average Order Value
473
531
  avs_response: AVS Response
474
532
  back: Back
@@ -493,8 +551,10 @@ en:
493
551
  calculator: Calculator
494
552
  calculator_settings_warning: If you are changing the calculator type, you must save first before you can edit the calculator settings
495
553
  cancel: cancel
554
+ canceled: Canceled
496
555
  canceler: Canceler
497
556
  canceled_at: Canceled at
557
+ cannot_empty_completed_order: Order has already been processed so it cannot be emptied
498
558
  cannot_create_payment_without_payment_methods: You cannot create a payment for an order without any payment methods defined.
499
559
  cannot_create_customer_returns: Cannot create customer returns as this order has no shipped units.
500
560
  cannot_create_returns: Cannot create returns as this order has no shipped units.
@@ -552,8 +612,11 @@ en:
552
612
  FRA: France
553
613
  ITA: Italy
554
614
  US: United States of America
615
+ country_rule:
616
+ label: Choose must be shipped to this country
555
617
  coupon: Coupon
556
618
  coupon_code: Coupon code
619
+ coupon_code_apply: Apply
557
620
  coupon_code_already_applied: The coupon code has already been applied to this order
558
621
  coupon_code_applied: The coupon code was successfully applied to your order.
559
622
  coupon_code_better_exists: The previously applied coupon code results in a better deal
@@ -567,11 +630,13 @@ en:
567
630
  create_new_order: Create new order
568
631
  create_reimbursement: Create reimbursement
569
632
  created_at: Created At
633
+ created_by: Created By
570
634
  credit: Credit
571
- credits: Credits
572
635
  credit_card: Credit Card
573
636
  credit_cards: Credit Cards
574
637
  credit_owed: Credit Owed
638
+ credited: Credited
639
+ credits: Credits
575
640
  currency: Currency
576
641
  currency_settings: Currency Settings
577
642
  current: Current
@@ -602,12 +667,14 @@ en:
602
667
  js_format: yy/mm/dd
603
668
  date_range: Date Range
604
669
  default: Default
670
+ default_country_cannot_be_deleted: Default country cannot be deleted
605
671
  default_refund_amount: Default Refund Amount
606
672
  default_tax: Default Tax
607
673
  default_tax_zone: Default Tax Zone
608
674
  delete: Delete
675
+ deleted: Deleted
609
676
  delete_from_taxon: Delete From Taxon
610
- deleted_variants_present: Some line items in this order have products that are no longer available.
677
+ discontinued_variants_present: Some line items in this order have products that are no longer available.
611
678
  delivery: Delivery
612
679
  depth: Depth
613
680
  details: Details
@@ -616,6 +683,7 @@ en:
616
683
  destroy: Destroy
617
684
  discount_amount: Discount Amount
618
685
  discontinue_on: Discontinue On
686
+ discontinued: Discontinued
619
687
  dismiss_banner: No. Thanks! I'm not interested, do not display this message again
620
688
  display: Display
621
689
  doesnt_track_inventory: It doesn't track inventory
@@ -746,6 +814,7 @@ en:
746
814
  inventory_state: Inventory State
747
815
  is_not_available_to_shipment_address: is not available to shipment address
748
816
  iso_name: Iso Name
817
+ issued_on: Issued On
749
818
  item: Item
750
819
  item_description: Item Description
751
820
  item_total: Item Total
@@ -800,6 +869,7 @@ en:
800
869
  meta_keywords: Meta Keywords
801
870
  meta_title: Meta Title
802
871
  metadata: Metadata
872
+ mutable: Mutable
803
873
  minimal_amount: Minimal Amount
804
874
  missing_return_authorization: ! 'Missing Return Authorization for %{item_name}.'
805
875
  month: Month
@@ -828,6 +898,7 @@ en:
828
898
  new_prototype: New Prototype
829
899
  new_refund: New Refund
830
900
  new_refund_reason: New Refund Reason
901
+ new_reimbursement_type: New Reimbursement Type
831
902
  new_rma_reason: New RMA Reason
832
903
  new_return_authorization: New Return Authorization
833
904
  new_role: New Role
@@ -838,6 +909,8 @@ en:
838
909
  new_stock_location: New Stock Location
839
910
  new_stock_movement: New Stock Movement
840
911
  new_stock_transfer: New Stock Transfer
912
+ new_store_credit: New Store Credit
913
+ new_store_credit_category: New Store Credit Category
841
914
  new_tax_category: New Tax Category
842
915
  new_tax_rate: New Tax Rate
843
916
  new_taxon: New Taxon
@@ -848,6 +921,7 @@ en:
848
921
  new_zone: New Zone
849
922
  next: Next
850
923
  no_actions_added: No actions added
924
+ no_available_date_set: No available date set
851
925
  no_payment_found: No payment found
852
926
  no_pending_payments: No pending payments
853
927
  no_products_found: No products found
@@ -858,6 +932,7 @@ en:
858
932
  no_shipping_method_selected: No shipping method selected.
859
933
  no_state_changes: No state changes yet.
860
934
  no_tracking_present: No tracking details provided.
935
+ user_not_found: User not found
861
936
  none: None
862
937
  none_selected: None Selected
863
938
  normal_amount: Normal Amount
@@ -874,6 +949,7 @@ en:
874
949
  variant_deleted: Variant has been deleted
875
950
  variant_not_deleted: Variant could not be deleted
876
951
  num_orders: "# Orders"
952
+ number: Number
877
953
  on_hand: On Hand
878
954
  open: Open
879
955
  open_all_adjustments: Open All Adjustments
@@ -896,21 +972,19 @@ en:
896
972
  order_information: Order Information
897
973
  order_line_items: Order Line Items
898
974
  order_mailer:
975
+ subtotal: ! 'Subtotal:'
976
+ total: ! 'Order Total:'
899
977
  cancel_email:
900
978
  dear_customer: Dear Customer,
901
979
  instructions: Your order has been CANCELED. Please retain this cancellation information for your records.
902
- order_summary_canceled: Order Summary [CANCELED]
980
+ order_summary_canceled: Order %{number} Summary [CANCELED]
903
981
  subject: Cancellation of Order
904
- subtotal: ! 'Subtotal:'
905
- total: ! 'Order Total:'
906
982
  confirm_email:
907
983
  dear_customer: Dear Customer,
908
984
  instructions: Please review and retain the following order information for your records.
909
- order_summary: Order Summary
985
+ order_summary: Order %{number} Summary
910
986
  subject: Order Confirmation
911
- subtotal: ! 'Subtotal:'
912
987
  thanks: Thank you for your business.
913
- total: ! 'Order Total:'
914
988
  order_not_found: We couldn't find your order. Please try that action again.
915
989
  order_number: Order %{number}
916
990
  order_processed_successfully: Your order has been processed successfully
@@ -969,6 +1043,7 @@ en:
969
1043
  percent_per_item: Percent Per Item
970
1044
  permalink: Permalink
971
1045
  pending: Pending
1046
+ pending_sale: Pending Sale
972
1047
  phone: Phone
973
1048
  place_order: Place Order
974
1049
  please_define_payment_methods: Please define some payment methods first.
@@ -1023,8 +1098,12 @@ en:
1023
1098
  match_policies:
1024
1099
  all: Match all of these rules
1025
1100
  any: Match any of these rules
1101
+ promotion_label: 'Promotion (%{name})'
1026
1102
  promotion_rule: Promotion Rule
1027
1103
  promotion_rule_types:
1104
+ country:
1105
+ description: Order is shipped to proper (or default) country
1106
+ name: Country
1028
1107
  first_order:
1029
1108
  description: Must be the customer's first order
1030
1109
  name: First order
@@ -1105,8 +1184,12 @@ en:
1105
1184
  resume: resume
1106
1185
  resumed: Resumed
1107
1186
  return: return
1187
+ returns: Returns
1108
1188
  return_authorization: Return Authorization
1109
1189
  return_authorization_reasons: Return Authorization Reasons
1190
+ return_authorization_states:
1191
+ authorized: Authorized
1192
+ canceled: Canceled
1110
1193
  return_authorization_updated: Return authorization updated
1111
1194
  return_authorizations: Return Authorizations
1112
1195
  return_item_inventory_unit_ineligible: Return item's inventory unit must be shipped
@@ -1145,6 +1228,7 @@ en:
1145
1228
  sales_totals: Sales Totals
1146
1229
  save_and_continue: Save and Continue
1147
1230
  save_my_address: Save my address
1231
+ saving: Saving
1148
1232
  say_no: 'No'
1149
1233
  say_yes: 'Yes'
1150
1234
  scope: Scope
@@ -1157,6 +1241,7 @@ en:
1157
1241
  select_from_prototype: Select From Prototype
1158
1242
  select_a_return_authorization_reason: Select a reason for the return authorization
1159
1243
  select_a_stock_location: Select a stock location
1244
+ select_a_store_credit_reason: Select a reason for the store credit
1160
1245
  select_stock: Select stock
1161
1246
  selected_quantity_not_available: ! 'selected of %{item} is not available.'
1162
1247
  send_copy_of_all_mails_to: Send Copy of All Mails To
@@ -1173,12 +1258,13 @@ en:
1173
1258
  shipment_mailer:
1174
1259
  shipped_email:
1175
1260
  dear_customer: Dear Customer,
1176
- instructions: Your order has been shipped
1177
- shipment_summary: Shipment Summary
1261
+ instructions: Your order %{number} has been shipped
1262
+ shipment_summary: Shipment Summary for order
1263
+ shipping_method: "Shipping method: %{shipping_method}"
1178
1264
  subject: Shipment Notification
1179
1265
  thanks: Thank you for your business.
1180
1266
  track_information: ! 'Tracking Information: %{tracking}'
1181
- track_link: ! 'Tracking Link: %{url}'
1267
+ track_link: "Tracking Link: %{url}"
1182
1268
  shipment_state: Shipment State
1183
1269
  shipment_states:
1184
1270
  backorder: backorder
@@ -1202,12 +1288,17 @@ en:
1202
1288
  shipping_method: Shipping Method
1203
1289
  shipping_methods: Shipping Methods
1204
1290
  shipping_price_sack: Price sack
1291
+ shipping_rates:
1292
+ display_price:
1293
+ including_tax: "%{price} (incl. %{tax_amount} %{tax_rate_name})"
1294
+ excluding_tax: "%{price} (+ %{tax_amount} %{tax_rate_name})"
1205
1295
  shipping_total: Shipping total
1206
1296
  shop_by_taxonomy: Shop by %{taxonomy}
1207
1297
  shopping_cart: Shopping Cart
1208
1298
  show: Show
1209
1299
  show_active: Show Active
1210
1300
  show_deleted: Show Deleted
1301
+ show_discontinued: Show Discontinued
1211
1302
  show_only_complete_orders: Only show complete orders
1212
1303
  show_only_considered_risky: Only show risky orders
1213
1304
  show_rate_in_label: Show rate in label
@@ -1272,6 +1363,35 @@ en:
1272
1363
  stock_transfers: Stock Transfers
1273
1364
  stop: Stop
1274
1365
  store: Store
1366
+ store_credit_name: Store Credit
1367
+ store_credit:
1368
+ credit: "Credit"
1369
+ authorized: "Authorized"
1370
+ captured: "Used"
1371
+ allocated: "Added"
1372
+ apply: Apply Store Credit
1373
+ applicable_amount: "%{amount} in store credit will be applied to this order."
1374
+ available_amount: "You have %{amount} in Store Credit available!"
1375
+ remaining_amount: "You have %{amount} remaining in your account's Store Credit."
1376
+ additional_payment_needed: Select another payment method for the remaining %{amount}.
1377
+ errors:
1378
+ cannot_change_used_store_credit: You cannot change a store credit that has already been used
1379
+ unable_to_create: Unable to create store credit
1380
+ unable_to_delete: Unable to delete store credit
1381
+ unable_to_fund: Unable to pay for order using store credits
1382
+ unable_to_update: Unable to update store credit
1383
+ store_credit_categories: Store Credit Categories
1384
+ store_credit_payment_method:
1385
+ unable_to_void: "Unable to void code: %{auth_code}"
1386
+ unable_to_credit: "Unable to credit code: %{auth_code}"
1387
+ successful_action: "Successful store credit %{action}"
1388
+ unable_to_find: "Could not find store credit"
1389
+ insufficient_funds: "Store credit amount remaining is not sufficient"
1390
+ currency_mismatch: "Store credit currency does not match order currency"
1391
+ insufficient_authorized_amount: "Unable to capture more than authorized amount"
1392
+ unable_to_find_for_action: "Could not find store credit for auth code: %{auth_code} for action: %{action}"
1393
+ user_has_no_store_credits: "User does not have any available store credit"
1394
+ select_one_store_credit: "Select store credit to go towards remaining balance"
1275
1395
  street_address: Street Address
1276
1396
  street_address_2: Street Address (cont'd)
1277
1397
  subtotal: Subtotal
@@ -1293,6 +1413,8 @@ en:
1293
1413
  taxon: Taxon
1294
1414
  taxon_edit: Edit Taxon
1295
1415
  taxon_placeholder: Add a Taxon
1416
+ tags: Tags
1417
+ tags_placeholder: Add Tags
1296
1418
  taxon_rule:
1297
1419
  choose_taxons: Choose taxons
1298
1420
  label: Order must contain x amount of these taxons
@@ -1300,6 +1422,8 @@ en:
1300
1422
  match_any: at least one
1301
1423
  taxonomies: Taxonomies
1302
1424
  taxonomy: Taxonomy
1425
+ taxonomy_brands_name: Brands
1426
+ taxonomy_categories_name: Categories
1303
1427
  taxonomy_edit: Edit taxonomy
1304
1428
  taxonomy_tree_error: The requested change has not been accepted and the tree has been returned to its previous state, please try again.
1305
1429
  taxonomy_tree_instruction: ! '* Right click a child in the tree to access the menu for adding, deleting or sorting a child.'
@@ -1353,6 +1477,7 @@ en:
1353
1477
  use_new_cc: Use a new card
1354
1478
  use_new_cc_or_payment_method: Use a new card / payment method
1355
1479
  use_s3: Use Amazon S3 For Images
1480
+ used: Used
1356
1481
  user: User
1357
1482
  user_rule:
1358
1483
  choose_users: Choose users