Да, Смарти часто не любит array в чистом виде. Помогает замена на []
{assign var=newpar value=[ "parents" => "187", "depth" => "20", "tpl" => "hit", "useSmarty" => true, "includeTVs" => "image,price,hit", "tvFilters" => json_encode(["vendor" => $modx->resource->pagetitle]) ]} {snippet name=getProducts params=$newpar parse=true}
[«vendor» => $modx->resource->pagetitle]