Morphos

Для склонения названия городов используется библиотека Morphos, а именно часть Geographical names (Страны/Города) (Russian)
Использование его в своей логике макете или ТДС
Morphos_Geographical::getCase('Екатеринбург', 'предложный'); // Екатеринбурге
Добавление в XML всех склонений определенного города, например в контроллер Shop_Controller_Show
$aCases = array(
'именительный', // Екатеринбург
'родительный', // Екатеринбурга
'дательный', // Екатеринбургу
'винительный', // Екатеринбург
'творительный', // Екатеринбургом
'предложный', // Екатеринбурге
);
$value = 'Екатеринбург';
foreach($aCases as $case)
{
$Shop_Controller_Show
->addEntity(
Core::factory('Core_Xml_Entity')
->name('morphos')
->addAttribute('case', $case)
->value(Morphos_Geographical::getCase($value, $case));
);
}