1. Надо передавать в параметры вызываемого процессора «page» => $smarty.get.page, то есть $_GET-параметр запроса.
У вас здесь где передача этого параметра? Во-вторых, это кешируемый блок, так как находится внутри самого шаблона документа. Сделайте так:
1. В шаблоне категории пропишите вызов своего субшаблона, типа так:
{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 не нужен для работы шаблона постраничности. Главное — чтобы был сам этот шаблон постраничности.