I'm not quite sure if you need to know how to change just the admin root index page, or whether you want to customize any view. So, here are both answers.
Instructions on how to customize any view:
The thing to remember is that Spree is just a rails engine. All rails engine views can be overwritten by adding a view in the same location on the main rails application. The confusing part of spree is how the project is structured.
If you look at the Spree project on github, you will see it is broken into four parts: core, frontend, backend, and api. Each of those parts acts like a little rails engine itself. So, the backend section uses the app/views/spree/admin folder for all the admin views.
The secret is to copy the view you want to customize, put it in the right location in your application, and then update it.
So, if you are trying to customize the admin products index page, go to github and copy the code at backend/spree/app/views/admin/products/index.html.erb and paste it into your project at app/views/spree/admin/products/index.html.erb
I have a little more detailed instructions over on quora, specifically about a Version 2.3 frontend update, if you think some images might help.
How to customize the admin root index view:
Version 2.4 or later
If you are trying to change the root path for the admin index, you will need to create a controller decorator for the admin root controller, and overwrite the index action, then build a view at app/views/spree/admin/root/index.html.erb to make it look like you want.
app/controllers/spree/admin/root_controller_decorator.rb
module Spree
module Admin
RootController.class_eval do
def index
# add any custom controller code here you need
# it will load the view at app/views/spree/admin/root/index.html.erb
# by convention
end
end
end
end
Version 2.3 or less
Earlier versions of spree just rely on the routes file to redirect orders#index. Just add a new entry in your routes file to where you want to direct the traffic, then build a controller#action and view to serve the content.
Frankly, you could do the same for Version 2.4 and up, but the newer versions incorporate authentication into the root controller, so no need to reinvent the wheel.