} else if($mode == 'ajax') { //Имя нашего мода в контролере
    // Проверяем или есть номер категории и идет ли запрос от ajax, а не на прямую
    if(is_numeric($_REQUEST['category_id']) AND defined('AJAX_REQUEST'))
    {
        // Задаем параметры (если нужны еще поищите их где определяется функция
        // fn_get_products, их там очень много
        $params = array(
            'cid' => $_REQUEST['category_id'],
            'extend' => array('categories', 'description')
        );
        //Кешируем данные
        $cache_name = 'product_list/cat_'.$params['cid'];
        Registry::register_cache($cache_name, array('static_data', 'products','pages'), CACHE_LEVEL_LOCALE_AUTH);
        if (Registry::is_exist($cache_name) == false) {
            //Получаем продукцию
            list($product_list) = fn_get_products($params);
            Registry::set($cache_name, $product_list);
        }
        //Берем данные из кеша.
        $product_list = & Registry::get($cache_name);
        //Регистрируем ajax, тем самым его передаем в формате json
        Registry::get('ajax')->assign('product_list', $product_list);
        exit;
    }
}