migrate shop functionality to individual controller and view.