Для начала создаете все возможные варианты адресов для магазина и с городами (если тут еще писать весь код где и как задействовать модели, контроллера и отображение, будет очень много текста), а уже в код контроллера добавляете проверку по ip:
$geoposition = file_get_contents('
api.sypexgeo.net/json"тут будет ip вашего пользователя"');
$geoposition = json_decode($geoposistion);
С результата вытащить название города и сравнить с тем что у вас в базе лежит и вывести на страницу нужный адрес, думаю труда не составит