Саша, привет! 1. Не может быть, чтобы просто не со

Саша, привет! 1. Не может быть, чтобы просто не сохранялось и все. Должны быть какие-то ошибки. Для выполнения процессоров в тесте советую вот этот скрипт использовать. 2. Давно уже не делал подобного, но на сколько мне память не изменяет, делать это надо так: foreach(docsasdocs as doc){ doc>classkey=ShopmodxResourceProduct;doc->class_key = 'ShopmodxResourceProduct'; doc->save(); data=data = doc->toArray(); data=arraymerge(data = array_merge(data, array( "sm_price" => price,"smcurrency"=>price, "sm_currency" => currency, )); response=response = modx->runProcessor('resource/update',data);if(data); if(response->isError()){ print_r($response->getResponse()); return; } } Дело в том, что когда процессор на обновление выполняется, он ведь все равно первоначально берет данные из БД, и соответственно получает инстанс объекта на основе класса class_key. Если не сохранить перед апдейтом с новым классом, то тогда не будет объекта ShopmodxProductObject. А вот есть уже он, тогда процессор на апдейт будет не родной MODX-овый, а расширенный магазина, и ShopmodxProduct к нему должен будет добавиться автоматически.