Заполнение modx_ms2_products при миграции
Здравствуйте, перехожу с Shopkeepera на MiniShop2
Дошел до пункта, где надо перетащить TV следующим запросом:
Выполняем запрос и получаем в modx_ms2_products строки для всех товаров с заполненными ценами. Но остается еще много полей, таких как Артикул, например.
Как должен быть составлен запрос, что бы по id он добавил соответствующий артикул (или оставил пустым, если его нет)?
Дошел до пункта, где надо перетащить TV следующим запросом:
INSERT INTO modx_ms2_products
(id,price)
select contentid,value from modx_site_tmplvar_contentvalues where
tmplvarid=1
В принципе, подразумевается, что цена заполнена у всех товаров и для начала такой код подходит.Выполняем запрос и получаем в modx_ms2_products строки для всех товаров с заполненными ценами. Но остается еще много полей, таких как Артикул, например.
Как должен быть составлен запрос, что бы по id он добавил соответствующий артикул (или оставил пустым, если его нет)?
Комментарии: 8
Придётся пробежаться еще по всем остальным ТВ параметрам и сделать обновить поля товара MS2.
Вот пример для article, для других полей нужно только менять поле в запросе $update и $id_tv.
Вот пример для article, для других полей нужно только менять поле в запросе $update и $id_tv.
$update = $modx->prepare("UPDATE {$modx->getTableName('msProductData')} SET article = ? WHERE id = ?");
$tv_id = 2;
$tvs = $modx->newQuery('modTemplateVarResource', array('tmplvarid' => $tv_id));
$tvs->select('contentid,value');
if ($tvs->prepare() && $tvs->stmt->execute()) {
while ($row = $tvs->stmt->fetch(PDO::FETCH_ASSOC)) {
$update->execute(array($row['value'], $row['id']));
}
}
Код не проверял, возможны опечатки.
Выполняю этот код в консоли, результата никакого
Результата и не будет — это пример.
Нужно подумать и адаптировать его под свои нужды. Или нанять программиста, который сделает это вместо тебя.
Нужно подумать и адаптировать его под свои нужды. Или нанять программиста, который сделает это вместо тебя.
Так вы же пишете:
Вот пример для article, для других полей нужно только менять поле в запросе $update и $id_tv.значит должно работать, если нет опечаток, для одного поля хотя бы? )))
При условии, что я всё верно написал без проверки — конечно должно.
А если не работает, значит я что-то написал неверно, и тебе предстоит выяснить, что именно.
А если не работает, значит я что-то написал неверно, и тебе предстоит выяснить, что именно.
Не требует, а предлагает.
За версии старше 2.1 я не отвечаю — их разрабатывают другие ребята.
За версии старше 2.1 я не отвечаю — их разрабатывают другие ребята.
Ну там есть несколько необходимых функций ) А куда написать в таком случае?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.