Spree::Core::Engine.add_routes do

  get '/locale/set', to: 'locale#set'

  # non-restful checkout stuff
  patch '/checkout/update/:state', to: 'checkout#update', as: :update_checkout
  get '/checkout/:state', to: 'checkout#edit', as: :checkout_state
  get '/checkout', to: 'checkout#edit', as: :checkout

  populate_redirect = redirect do |params, request|
    request.flash[:error] = Spree.t(:populate_get_error)
    request.referer || '/cart'
  end

  get '/orders/populate', to: populate_redirect

  resources :orders, except: [:index, :new, :create, :destroy] do
    post :populate, on: :collection
  end

  get '/cart', to: 'orders#edit', as: :cart
  patch '/cart', to: 'orders#update', as: :update_cart
  put '/cart/empty', to: 'orders#empty', as: :empty_cart

  # route globbing for pretty nested taxon and product paths
  get '/t/*id', to: 'taxons#show', as: :nested_taxons

  get '/unauthorized', to: 'home#unauthorized', as: :unauthorized
  get '/content/cvv', to: 'content#cvv', as: :cvv
  get '/content/*path', to: 'content#show', as: :content
  get '/cart_link', to: 'store#cart_link', as: :cart_link

  get '/about', to: 'about#show'
  resources :notice, only: [:index, :show]
  resources :introduction,  only: [:index, :show]
  get '/new_products', to: 'products#new_products'
  get '/on_sale', to: 'products#on_sale'
end
