I noticed that /admin was quite slow (~9 seconds) on prod and *really* slow in development (~45 seconds!).
I think two things have happened:
1. We have a lot more orders now
2. We have a *lot* more promos as of today (over 50,000 total now)
Regarding #1 - for whatever reason postgres really doesn't like "distinct" modifier when querying orders like this.
Before the changes to orders_controller:
Spree::Order Load (2190.6ms) SELECT DISTINCT "spree_orders".* FROM "spree_orders" WHERE "spree_orders"."deleted_at" IS NULL AND ('t'='t') AND ("spree_orders"."completed_at" IS NOT NULL) ORDER BY "spree_orders"."completed_at" DESC LIMIT 15 OFFSET 0
Spree::Order Load ( 1.4ms) SELECT "spree_orders".* FROM "spree_orders" WHERE "spree_orders"."deleted_at" IS NULL AND ('t'='t') AND ("spree_orders"."completed_at" IS NOT NULL) ORDER BY "spree_orders"."completed_at" DESC LIMIT 15 OFFSET 0
Regarding #2 - the current code for the Orders#index page queries *all* promotions (i.e. `SELECT "spree_promotions".* FROM "spree_promotions"`) and loads all 50,000 into ActiveRecord objects (that was the part that really takes a long time) and then renders them into 50,000 `<option>` tags in the html page.
HMTL page size before update to orders/index.html: 5.4 MB (_mega_)
HTML page size after: 37.1 KB (_kilo_)
8d25afa Merge branch 'master' of ssh://github.com/vergeman/spree_min_test
84d31fe Merge pull request #1 from vergeman/test
7ab8215 Merge pull request #1 from vergeman/test
4f10e6b Merge remote-tracking branch 'upstream/master'
6575871 Merge remote-tracking branch 'upstream/master'
6a661ae sprockets-rails 2.2.4 fixes 2.2.3 issue.
b086ff8 Update asset initializers. Fixes #5923
52254c2 add hello
e7bd766 Remove a few more references to environment and update syntax.
a92e1ab refactor w/ table fix.
42d3a8b refactored cart
e71e3c4 Removing locals option didnt work properly.
80ac066 Removing locals option didnt work properly.
2e17965 Should be called on order.
61e3ad1 Should be called on order.
4f02ac6 Fix checkout_steps reference.
7c522b7 Fix checkout_steps reference.
c7e4404 Start release notes rather than maintain changelog.
b3a1c2a Should render ga inside top of body to prevent turbolinks issues.
559435d Should render ga inside top of body to prevent turbolinks issues.
96d6b40 Use Google Analytics Enchanced Ecommerce. Supports purchase and checkout step.
056b3b0 Use Google Analytics Enchanced Ecommerce. Supports purchase and checkout step.
09260f3 Strip out ssl options from settings / codebase
10af3a1 Strip out ssl options from settings / codebase
f86cc02 translate hardcoded strings on cc payment form fixes #5884
aa9f8d2 translate hardcoded strings on cc payment form fixes #5884
01958ab Revert "Introduces accumulator and selector classes to handle multi-action promotions"
4c4b7a0 Revert "Improve store performance for orders with total quantity > 1000"
9756291 Revert "Improve store performance for orders with total quantity > 1000"
19c9dc9 jiggle fix + gutter
29e619b move subtotals to left
c8f07fc add order, subtotal, adjustment styling
15574e2 work in prog
aee078f Replace Permalinks concern w/Number Generator & FriendlyID. Fixes #5529
74cbcfe remove test css
71e4b34 add generator to hide default frontend css
61203c6 initial commit
cba6af8 Revert "Google analytics stored in js file."
831aa92 Google analytics stored in js file.
968d053 Fix issue on checkouts controller.
8e5f99a Fix for failure of one of multiple payments.
2a77a6f Use old cc image until we get the new one.
6e18257 * Updated colors with bootstrap variables * Added _variables.scss that overrides bootstrap defaults * Fix :focus styles on header links * Vertically center tables * Fix footer link color (powered by Spree) * Update Credit Cards gif with modern alternative * Fix wrong layout structure for header that broke grid padding a bit
7c43ef5 Merge branch 'master' into master_on_bootstrap
6f97ea7 Fix merge conflict.
cbe24d7 Merge branch 'master' into frontend_on_bootstrap
4aa3d6e Let sprockets handle icon path.
c74867a Move to spree_auth_devise.
bda1905 Update syntax.
8fad1e7 Fix cart specs.
55fb69f Fix link.
9fd1f3e Fix _order_details template.
0c8df99 Need sprockets for new assets.
af4fb04 Cleanup frontend assets.
80db507 Bring in kaminari templates.
a9e5cc3 Product helpers needed in backend, and remove auth devise templates.
e59db08 ProductsHelper is also used by backend.
21c2601 Update _order_details.html.erb
7811f42 Move the base helpers back to core as several are used in backend.
da0586e Remove deprecated warnings, and move core helpers to frontend.
34770b8 Some cleanup and spec fixes.
2ebf117 Merge branch 'spree_master_with_bootstrap_fork' of https://github.com/MattFenelon/spree into frontend_on_bootstrap
84da76f Merge branch 'master_on_bootstrap' of https://github.com/reinaris/spree into bb
8f93294 Add custom_params to completion_route Fixes #5661
c9f307d Added new sidebar and removed all back_to page actions
1cdeb4b Merge branch 'temp' into paradise
56d2ea6 Backend on Bootstrap
e961cc1 Skipping the set_current_order before filter on the cart link action as this should use the simple_current_order helper only
b4691ac Validate authenticity token on all actions but populate
7ef11f3 Switch back to respond_with it should just render edit not redirect back.
fbd2829 Redirect to cart on failure. Fixes #5570
82cec9b Fix the cookie domain used for google analytics
e7aa1fd Fix #5530: checkout form error messages not translated in production
4253d89 Fix optimistic lock to not revert incremented version.
133492d Use variant_id to avoid loading variant.
69da00e Fallback to variant.id if sku is not provided.
adfd73e Refactor the duplicate request prevention code ( order.with_lock ) - break the lock code out into a seperate callback - ensure it only operates on an update - add specs
03f63c3 Implement a state lock version to prevent race conditions in checkout controller. refs #4190
1e94604 Fix displaying product & taxon names when meta_title present.
f088888 Search for guest order first before running Order.new
77f3070 Standardizing use of colons in checkout summary Fixes #5413
e5466ae Reduce queries whenever _products are rendered. Fixes #5352
004ef85 corrects fetch_cart urls Fixes #5325
3763484 Fixes regressions in sprockets >= 2.1.4
ca6288c add meta title to products
2245cd3 Fallback to a default route. Fixes #5261
c8e8197 Rename *_filter callbacks to *_action callbacks
edf75c9 Set promo adjustment to 0 when not actionable
73af919 Use string for key. Fixes #5243
fe390c8 Change product_url to product_path.
249fed2 Use full path to line_item partial Fixes #5214
aa053bf Remove cache on cart page.
80088d9 Associate default user address in pre-transition callback
f18dfd6 Nest existing_param input under order
c370be1 Refactor ensure_updated_shipments call to be within the OrderContents and OrderPopulator classes to ensure consistency. Fixes #5082
592e7d7 Merge commit '5ba54eb8faf545fe1e66fc1927bb4fd381347435' into spree_master_with_bootstrap_fork
86ff3ec Merge pull request #5053 from jschwertfeger/fix/show_order_shipping_charges_after_delivery_step
52985a0 Merge pull request #5058 from owainlewis/master
d5a1034 Merge pull request #5056 from jschwertfeger/fix/show-cart-adjustments-if-there-are-shipments
d8e97d1 Order summary view checks if delivery step has been passed in the checkout flow before displaying any shipping charges.
233538f Update edit.html.erb
7dabf01 Make sure cart adjustments partial gets rendered if there are shipments.
6155208 refactor the variant price for product.js.coffee. Thanks @gmacdougall
bc688d3 fix failing specs with variant price
3eddd40 use the variant_full_price on the product show page so the correct currency settings are used. Fixes #4995
0339f46 Merge branch 'master' of https://github.com/200Creative/spree_bootstrap_frontend into spree_master_with_bootstrap_fork
dd293bb Merge the 200Creative/spree_bootstrap_frontend gem into Spree.
8e92004 Update Google Analytics
d80ad3d Fix analytics check to run only when there is an order. Fixes #4929
e93ab89 Initial work on how to extend spree to support extensions that customize line items.
a7d71b9 Merge pull request #4942 from callumacrae/address-selector-fix
49d7ff9 Merge pull request #4946 from dmarsupastar/thumbnail-selection
d95488a change selected class onclick rather than onmouseout
24947ec Fixed bad selector in address.js.coffee
435d298 Merge pull request #4506 from MattFenelon/address_checkout_bug
d6230f8 [frontend] Make thank_you_for_your_order message much smaller
a41c0b7 Fix pagination for taxons
92ba0af Downcasing locale for jquery.validate i18n messages
94d15b5 Don't assume default variant in JS. Let this be controlled by HTML markup.
7ee0724 Adding data-hooks to search results header
7b4900f Refer to selected shipping rates directly
e9fd986 Removing order token behavior for a reusable guest_token.
f67197e Update hash syntax.
8296ed5 check_authorization should use params token first
a1b154a Use current_store.url for Google Analytics.
e7d05a8 Changing currency variable according to google analytics docs
ac8e77b Always pass currency to Spree::Money for multi-currency.
0d4e914 session[:order_id] => cookies.signed[:order_id]
e04f7db add order.total_tax method to encapsulate the included and additional tax
49f785e updated ga snippet
0f63f98 Add I18n.locale for views cache [Fixes #4673] [Fixes #4678]
bf41e15 Assign request headers to Payment on checkout
c7a806b No longer use insufficient_stock_lines in view
2e9eb23 [frontend] Load taxon if params[:taxon] exists in ProductsController
66e5f02 Use font-awesome-rails for the icons
ae08b6f Remove useless return in the show action from the products controller
e8190a3 Wave goodbye to Spree.routes
1687c62 Fix thank you message on order completion
9bf98bf Improve code indentation. It was hard to read before.
b6cb7f4 Make label tag for equal to radio button id
c08f885 Add depend_on_asset calls
ef6f503 Remove api key from dom in backend and frontend since the api now authenticates via the session as well
ba3547e Dont show out of stock for master product
e4b53b2 Allowed for client side validation of phone number and zip code to be turned off.
1106a7e Move current_store to controller_helpers/common
42bc691 current_store for controllers/views on frontend
19340e9 Show tax adjustments after shipment adjustments in order details
7ec38d4 Use Spree.t(:out_of_stock) in frontend products/show
b31ba2d Show SOLD OUT if a variant is out of stock
035f0b0 Fix DEPRECATION WARNING: Calling #sum with a block is deprecated and will be removed in Rails 4.1.
8d77409 Show original shipping rate + shipment adjustments in checkout summary
11ca1f1 Move billing to left of shipping in order_details
fdad623 Provide interface to list and disable user payment sources
9b9748f Remember customer credit cards on checkout
958f886 Only offer to save address if a user is logged in.
ef691cf Fix case where 'Free Shipping' was incorrectly displaying
51b4e75 don't access Spree::Config[:site_url] at startup
c7be157 Update to support new Universal Analytics
f5dc084 fix _taxonomies.html.erb cache key
9748def Show deleted shipping methods for shipping rates
a03bdef Use can_supply in stead of deprecated in_stock in frontend
6ae46e1 Remove double looping over tax adjustments in checkout/summary
f577675 Cache keys based upon current_currency & only fragment cache products#show.
0249330 Ensure prices with currencies displayed do not break variant radio buttons on cart form
5db3b60 Remove public key from fresh_when call in StoreController
420da66 Touch a product on save to trigger touch callbacks
be2288b Remove taxon cache wrapping around products in taxons/show, as they are cached on their own
96014b9 Do not cache li in shared/_products
32ee773 Fix up references to cache keys within caching specs
94fd60d Add and use simple_current_order method for link_to_cart helper
28921bb fetch_cart is an AJAX request called before the page has finished loading
e4b1488 Revert "EXPERIMENTAL: Use local font rather than google font"
dde76df Skip verification of authenticity token
0f9a21b Cache each taxonomy individually
8215701 Remove cache(current_order) from main_nav_bar
cd49013 Fragment cache Taxons#show
2235215 No longer cache Spree::ProductsController#show based on current user
20ff4c9 Whole-page cache OrdersController#edit
7afd1ca Add AJAX /cart_link
088af18 EXPERIMENTAL: Use local font rather than google font
d561a41 Set taxon_id in URL, rather than relying on http referrer
952c0d9 Add and use simple_current_order method for link_to_cart helper
6e9e985 fresh_when from products show
a9675ea Disable caching on home controller
d46ffef Add Cache-Control headers for product show action using fresh_when
fca52de Render cart link directly to the page
87eec7c Correct link to cart.png in screen.css
24c169b Add and use simple_current_order method for link_to_cart helper
39ddcc0 Add expires_in caching to HomeController#index
ef4b581 Add caching for products, taxonomies and taxons lists on frontend
e9bb869 Cache entire products/show page
5f79171 [frontend] Cache product 'boxes' in shared/_products
14c56fc Make order-update concurrency safe
a2029ec Fix asset URL for cart.png
50fa142 Ensure that a deleted product can still be viewed in the admin backend
2c7ce68 Switch to using friendly_id for product permalink generation
a611611 Added FreeShipping Promotion Handler
a537265 Only show line item adjustments in cart view
90c813d Show line item adjustments only underneath item total in checkout/summary
8b74012 Simplify OrderPopulator
1876d2e Import variables using full-path, so that an overridden file in the application will be loaded
828cb6e Check if payment is required before checking if there are any payments in ensure_valid_state
eca1e6d Standardizing 'Order #' display
7222442 Removing align attribute from orders#show template
71c8ac3 Added Deface Hook for Payment Method fields
1b55052 Use passed in order local to spree/checkout/_summary
f71a9f6 Append omega to content classes
dfcfb31 Don't use hard coded assets prefix
38c3931 Only create an order when adding a product to cart
5471422 make sure we do the line_item adjustment check before rendering the adjustment
3e0875d adds div data-hook='cart_container' as a containing element to the cart view to make it easier to interact with via deface
c6d4252 Fix issue where checkout failing on confirm step would redirect back to address step
fa55108 Make sure checkout payment only flow works
33a8570 Only require email when past cart or address
355b31a Leave comment as to why we need to do next_transition.run_callbacks in OrdersController
c7857f9 Remove object_params in favor of a callback system
5ffb1a2 Change confirm step label to uniform it with other steps
994970b Remove unnecessary frontend/backend query scoping on ShippingRate
1309b18 Move spree frontend image assets to spree/frontend 'namespace' too
93d1ea9 Place Spree assets at vendor/assets so that 'require_tree .' in application's assets does not load Spree's assets
8549690 [frontend] Use flash.now for coupon application error in OrdersController
ab32c2c [frontend] Set flash.now for gateway errors in CheckoutController
f43313f Validate presence of name in CreditCard
ec6c6c0 Move payment partial from core to frontend
50c64a9 Display a "Name on card" input on payment step
6d4377e use .try on @differentiator into delivery step
0db4314 use the new Spree logo [Fixes #3975]
2b7da56 Replace spree_current_user for try_spree_current_user
ed29b7e Allow users to choose whether they want to save their addresses
6edfa75 Introduce `persist_order_address` message for user
6b954f9 Change input padding to allow more horizontal room for number fields
560b876 fix comment to refer to checkout_step?
f73069e Correct indentaiton of jQuery.payment code in checkout/payment code
a96e870 [frontend] Display just the shipping total in checkout/_summary, rather than each shipment
83e6ae3 Remove /checkout/summary route
d08b696 [frontend] Show tax adjustments + grouped shipments (@ discounted rates) on orders/show
aca7afe Correctly send shipments data to google analytics
4e75598 Correctly display adjustments on the order summary page
af788dd Tidied up styling of shipment information on order details page
cd75f6f Make font-awesome available in the frontend as well
eaed2e1 Tidy up checkout/_summary displaying of adjustments
840b0f0 Show a type next to adjustments in cart summary
019d0dc Only show subtotal if adjustments exist
4bfd95a Display cart summary in a much neater fashion
e2b6c3a Allow frontend address js methods to be called anywhere
37a669d Reference address html elements by id only
ee40d17 Make product variants thumbnails selection more specific in JS
3bbbc2b Added Kaminari call to add rel next/prev to head
9688134 Fix fieldset not resizing on some @media sizes.
67f483c Fixed jquery.payment formatting not applying to more than one set of gateway fields on the payments page
08cac07 checkout/registration view should live in auth component, not frontend
6b264b6 Include exception message from Spree::Core::GatewayErrors
b0a8719 [frontend] Stop people encountering uninitialized Taxon errors when they override ProductsController#show
3065f88 changed to use display_price whenever possible to allow extension and to simplify code
66bc38d Move spree/shared/address partial into frontend
bdac749 Include jquery.validate localization messages when the locale is not :en
4551342 Support .name and .description on line items
499b3c1 [frontend] Remove defunkt orders/new.html.erb
8c346e5 Add PromotionHandler::Page to handle static content page promotions
01f23b6 Render all adjustments on the cart page
4d0c7dc Arrange order totals on order_details in a sensible fashion
f303554 Apply coupon codes using API endpoint
51eb274 Ensure coupon code discounts are shown on the cart page
070fbf9 Ensure updated order total when coupon code applies
8b65a24 Refactor previously CouponApplicator
6eb7b88 [frontend] Group adjustments by their labels in checkout/_summary
80cae86 Only show shipping total on an order if the total is > 0
3792a20 Order checkout/_summary information in a sensible manner
b3a450e Introduce OrderContents `update_cart`
66caf85 Display shipping cost in order summary
d9c0874 Include Order shipment_adjustments associations
6c1dfb6 Fix order_summary and order_details partials
9db8cbb Remove Activator events
039ef31 Add /checkout/summary which gives a clearer breakdown on how an order's total comes into being
1b735f2 Fix accessibility errors in search input.
9ef535b Introduce Order shipping_eq_billing_address method
0189cfe remove unnecessary semicolon in screen.css.scss
1905934 Fix error message to include all errors in Spree::Order instance
d438747 Fix trailing whitespace
b174ff4 Only build ship_address if order has delivery step
259de5d Adding data-hook for line_item_description
d61219f [frontend] Fix translation for 'Expiration' in checkout/payment/_gateway
ce4ac39 Use jquery.payment for frontend + backend checkout form
0b2a867 Added missing internationalization for table headers (using same table headers as in shared/_order_details)
a17ffb9 Remove promo related deprecated code
cc582be Introduce better approach for regenerating shipments
c7e5c1d Improve cart page rendering: - Render line_items collection in partial rather than looping over line_items and rendering the partial multiple times
ae1a08c Fix deprecation warnings by using line_item_adjustment_totals.
ef2f394 Fix frontend controllers spec build
7e8b9ea Fix orders controller specs [frontend]
ecaacfc Capybara 2 updates.
7db371a Remove items with quantity 0 on cart page
2164fa3 Recreate shipments in frontend when necessary
5719575 Check if `image` is defined on product image partial
50201b1 Remove `caches_page` from Spree::ContentController
efbbd49 Add dependency on strong_parameters and remove attr_accessible from models and move them to controllers
594d684 Use new Google Analytics analytics.js instead of ga.js SDK.
143080c Fix IE8 compatibility issues with checkout.js and products.js
357131f Remove frontend's version of admin/plugin/fontawesome
f6e1c47 Allow unshippable items on the order
5594ac0 extract searcher_class instantiation into module
4d4b04f Bump caypbara to 2.1.0:
0ba2fc3 Capybara 2 updates.
59e3497 Bump caypbara to 2.1.0:
d304b25 Display right price when product has variants
758f436 Apply coupon before payments are created and processed
be46585 Use canonical-rails for SEO.
5be42b7 Remove items with quantity 0 on cart page
bd17df0 Recreate shipments in frontend when necessary
28018df Use Order#errors to convey useful error messages when an order fails to transition, displaying those errors appropriately in the checkout
9134c0f Revert "[frontend] Cache OrdersController#show using ConditionalGet"
95c62fd Revert "[frontend] Cache CheckoutController#edit using ConditionalGet"
091ca1c [frontend] Shipping rates should use Spree::Money, not number_to_currency, to display correct amounts on delivery screen
cbdd6e3 Don't update shipping addr if use billing addr is checked
cdfdfd6 [frontend] Cache OrdersController#show using ConditionalGet
8f2ee93 [frontend] Cache CheckoutController#edit using ConditionalGet
7de20c6 Add currency to itemprop.
c1e1f90 Add in stock notification. [Fixes #3200]
a5efe01 No need to call `order.create_proposed_shipments` twice [Fixes #3181]
5730975 [api] Skip set_expiry before_filter for states controller.
da6a41e Fix variant thumbnails not showing on frontend
4f9b2c0 Add spot in spree application where JS templates can be yielded to
29ff908 Ensure correct classes on stateSelect, stateInput elements in address spec
357c2a9 pass country_id as data to jQuery.get
1c60a3d Scope shipping rates as per display_on [Fixes #3124]
3f1061a Use change method to trigger use_billing_address
2733ab3 Put variables back where it was.
de06c4e Fix scss import.
cecf30e Add missing locale entries and Spree.t()
fb39742 Fix some translations in frontend
2551b59 Fix translations across api, core and frontend
093e1d5 Make translations in backend controllers, helpers, and views now use Spree.t
3cd03bf Use Spree.t within frontend views
701a666 G Analytics apparently not using protocol specific subdomain now.
de049ff Only run transition callbacks if order state is cart
0687586 Fix issue when adding products without option values
516fbc0 Enforce usage of in screen.css.scss and add a new variable to the variables.css.scss file to allow for an easier customization
daa733e Check if order has payment step before checking for @order.payment?
bf376af Generate an API key for all users
14b8913 Check for existance of payment? method on Order instances before calling it
709697d Makes mail method a single resource
f660688 Account for current_order returning 'nil' in OrdersController#update
07220a2 Ensure item total in checkout uses correct currency
65f171d Identation fix
5be0bbe Revert use of display_price in data-price attribute for _cart_form
9ec3159 Don't show coupon code field if there are no promos with coupon codes
ecacb34 When using Russian Rubles, display the full currency symbol rather than just '.'
a5e83b3 Remove vtmb- class attribute from products/_thumbnails that isn't being used
711c7d1 Remove apply button as it duplicates update buttons behavior. Discussed in issue #2720
6ccb569 Fix incorrect syntax in products/_thumbnails for @product.variant_images
feab955 Fixes styling issue where email is pulled left out of the info area.
d2c1323 Add line breaks after each shipment and payment.
36da71a Use taxon name on taxons/show rather than its accurate_title
559e894 Don't check for variant availibility before determining which thumbnails to show
faea664 Change redundant 'Shipping Method' text on delivery step of checkout
21db212 Don't check for variant availibility before determining which thumbnails to show
5c061eb Remove rate_hash reference.
16cb40a Fix shipping instructions style.
7566b5c Fix unshippable items table color in checkout/delivery
dffce0a Remove invalid duplicate line-items id in shared/_order_details.html.erb
70120e6 Default frontend+backend locales to Rails.application.config.i18n.default_locale, rather than 'en'
23c36f6 Fix issue where all payment method fields were shown on payment screen
0e2fbfd Fixes orders#show title for i18n cases
7be101d feature : taxons meta tags and title
82b56a0 Fix stock locations ui on both frontend and backend
f5130a3 rough delivery checkout step to show possible shipments and with shipping_methods
ddb9471 Changed line items to display cost-per-unit using the single_money method instead of display_amount from the associated variant
f1883ba Remove call to Order#remove_variant, deprecate method
13326aa display unshippable items during delivery and remove them before payment
23e505e Remove Remnants of allow_backorders
faaaac3 Fix stock locations ui on both frontend and backend
1a001af checkout delivery now shows all packages and lets you chooose shipping rates for each of them
234f4f6 rough delivery checkout step to show possible shipments and with shipping_methods
e1795b0 Remove mentions of variant#in_stock?
47b1ccf Remove show_zero_stock_products preferences
333355d Modify the look of the coupon code.
13d5206 Correct filename for diners club credit card icon
609481c Add a check to prevent skipping checkout steps
9ba1405 Refactored frontend JS CamelCased
c1b89d0 Namespaced JS-functions to easily customize them
cb7cff2 Update controller check to have spree namespace.
cf0f0cd Display multiple payment information on the order confirmation/complete page
4e6e30a Adds tracking_url field to shipping methods
f92c71e Insert non-breaking space in Money objects where currency symbol is afterwards to prevent issues as seen in #2634
42297ca Change out live() usage (removed in jQuery 1.9)
3a50027 Re-include Spree::OrdersHelper into CheckoutController (for truncated_product_description)
8d74d84 Ensure state dropdown reappears during country selection, as required. Fixes #2605
16eca17 prefixed root_path with spree to make compatable with extensions
81242c2 Don't check doubly for order completion
3823f75 Added CouponApplicator class
e5d2e5c Removes #state_callback from checkout controller
e49123f Refactors load_order in checkout controller
3021e6d changed root_path to spree.root_path to allow template to be recalled
d2995dd changed products_path to spree.products_path
86ff157 [frontend] Remove duplicate call for spree/orders in CheckoutController
db3c65f Move mailer templates to core
d86835e Use truncate_html to fix HTML truncating issues
e57a858 Truncate product description using truncate_html gem
76b4e91 Correct check for ineligible promo codes within StoreController#apply_coupon_code
8374724 Update checkout state fields correctly if use billing is checked
2bc682e Re-add respond_with blocks for OrdersController
663b41b Correct country_id function call inside checkout.js.coffee
9ebf4a2 Restrict adjustment check for promo to eligible ones in StoreController
45c09b8 [frontend] Checkout now uses API to retreive (country) state information
aec6630 Remove unnecessary CountriesController
5f236bb Add promotions code to core, backend + frontend where applicable
d5ad381 Revert Money back to 5.0.0
1e9186b Move error_messages partial to core so that both backend+frontend can use it
69704f4 Allow backend and frontend locale to be set independently
00ea5d7 Allow backend and frontend locale to be set independently
9d93f4a Move admin layout from frontend to backend + move helpers into core
5f7fa5d Move Spree::BaseController to Core
c004af4 Remove Spree::Core::StoreHelpers, replaced with Spree::StoreHelper
32d6ef3 Move admin files out of frontend and into backend
cc48a20 Use option types API for option type autocomplete within product form
2656770 [frontend] No need for cleanTaxons method in taxon_autocomplete
2e3c8f1 Use API for taxon autocomplete
d60a59b Use API for variant searching on new order form
afa1631 Set flash[:success] correctly in Admin::ProductsController
54c4fd7 [frontend] use correct flash messages in Admin::ProductsController
2eb49ac [frontend] Remove useless comments in Admin::OverviewController
f75e34e Don't pass argument to PaymentMethod.available within Admin::PaymentsController
94da197 Move core to frontend
9fe52d4 Re-add required respond_with for Admin::PaymentMethodsController
9b5b72e Move admin/spree_core.js to admin/spree_frontend.js
4d8757e Fix frontend's Rakefile
b7d3c12 Fix Admin::BaseController test for storing alerts in session
9b9914f Tidy up syntax in Admin controllers
1937fae Tidy up taxonomy.js
2a809f6 [frontend] Remove excessive respond_with usage in controllers
aa2bc74 Remove excessive respond_with calls from Admin::LineItemsController
605e731 Reshuffle frontend and core
79f0795 Move core controllers+views to frontend; move models to core