1. Надо передавать в параметры вызываемого процессора «page» => $smarty.get.page, то есть $_GET-параметр запроса. У вас здесь где передача этого параметра? Во-вторых, это кешируемый блок, так как находится внутри самого шаблона документа. Сделайте так:
  2. В шаблоне категории пропишите вызов своего субшаблона, типа так: {block name=content} [[!smarty?tpl=inc/shop/category/index.tpl]] {/block} А в inc/shop/category/index.tpl пропишите {$params = [ "limit" => 4, "page" => $smarty.get.page ]} {processor action="web/catalog/category/products/getdata" ns="modxsite" params=$params assign=result} {* Набиваем через единый шаблон листинга *} {include file="shop/catalog/list/fetch.tpl"} {include "common/pagination/pagination.tpl"} getPage не нужен для работы шаблона постраничности. Главное — чтобы был сам этот шаблон постраничности.