Как скопировать цены?

Добрый день! Возникла необходимость скопировать примерно у сотни страниц цены из TV price2 в {$object.price}. Пробовал так:

$q = $modx->newQuery('modResource');
$q->command('update');

$q->innerJoin('ShopmodxProduct', "Product");

$q->query['set']["price"] = array(
"value" => "Product.sm_price",
"type" => false,
);

$s = $q->prepare();

print $q->toSQL();

// $s->execute();

не получилось. (MODX Revolution 2.5.8-pl + Shopmodxbox 3.0.1) Есть ли какое-нибудь решение (кроме, как переделывать все ручками).

Comments

Поясните, какая связь между price2 и ShopmodxProduct? В ShopmodxProduct нет поля price2. Я так понимаю, Вы обновили shopmodx с версии 2.х до версии 3.х?

Начиная с версии shopmodx-3.0 поле price находится в modResource, компонент ShopmodxProduct там не используется.

С ImportX не сталкивались, не могу по нему ничего сказать. Мы используем свой компонент для импорта. Посмотрите в журнал администратора http://joxi.ru/82QLOa7t1RjOjm Если после импорта там появляются записи типа http://joxi.ru/L21GXajh6L84Jr то о, то можно навесить плагин на событие OnDocFormSave, который будет копировать цену из tv в поле price документа. Если цена попадает при импорте в TV price2, то плагин будет примерно такой:

<?php
$object->set('price', $object->getTVValue('price2'));
$object->save();

Не забудьте включить событие:

Что-то пошло не так:

Консоль запущена... Attempted to set execution time to infinite. Max execution time currently: 30. Тестирование данных перед импортом... Данные из CSV-файла заменят все данные, введённые вручную. Название файла: import-NA-SITE.csv Ошибок не обнаружено. Готовим данные к импорту... Для импорта готовы элементы в количестве: 3. Импортирование... PHP notice: Undefined index: data PHP notice: Undefined variable: object

Потом все зависает. Если обновить страницу, появляется 1 ресурс из 3 импортируемых тестовых. В этом ресурсе поле price =0.