может type_id не тот указали, посмотрите что вам скрипт отдает в разных частях кода
а по его коду, получается отдаются все элементы, без обрезки по количеству объектов на страницу
я бы сделал как-то так
это
public function getAllDiscountItems(){
заменил бы на это
public function getAllDiscountItems($per_page = false, $page = false){
if(!$page) $page = (getRequest('p') ? getRequest('p') : 0);
добавил бы что-нибудь типа этого
if($per_page) $block_arr['lines']['nodes:item'] = array_slice($block_arr['lines']['nodes:item'], $page*$per_page, $per_page, true);
и это
заменил бы на это
def_module::parseTemplate('', $block_arr);