Попробуйте прописать фильтрацию по шаблону (я так понимаю, что у товаров шаблон свой):
[[!getPage?
&element=`pdoResources`
&limit=`18`
&showHidden=`1`
&tpl=`tovar`
&includeTVs=`image-tovar,old-price-tovar,price-tovar` &where=`{"template:=":10}` - 10 - id шаблона для товара
&parents=`[[*id]]`
&includeContent=`1`
]]
Тут еще следует помнить, что MODX ближе к CMF, и, соответственно, качество сайта на выходе сильнее зависит от опытности разработчика, нежели на классических CMS, где нет такой гибкости как на MODX.
Если вы планируете в кухне программеров вариться, то вам необходимо иметь представление о попсовых CMS, знать их сильные и слабые стороны (см. www.cmsmagazine.ru/catalogue/), дабы не изобретать велосипеды, так же следует помнить, что сайт - это не законченный продукт и с ним возможно будут работать другие люди.
А для того, чтобы делать свое - фреймворки в помощь.
Как вариант - добавляете get параметр в url, который появляется в зависимости от действий пользователя, а в sortBy вызываете сниппет, которые будет обрабатывать эти get-параметры, и в зависимости от параметров выводить DESC или ASC.
Есть еще tvFilters для getResources, смотрите в ту сторону.
Была такая беда из-за несоответствия прав на папки, т.е. на одном хосте одни, а на новом другие стоят по-умолчанию.
Думаю, способ, который указал Михаил должен помочь.
Для seo вариант с поддоменами более выгоден, а в MODX поддомены можно реализовать через контексты (но это технически сложнее чем те же подпапки), вот тут подробно расписано про url и контексты - modx.ru/novosti-i-stati/article/91
Если у вас управление сайтами идет через одну админку, то можно было дублирующие материалы делать через "Символические ссылки", т.е. правите в одном месте, а меняются всюду.