Массовое редактирование товаров minishop (отредактировать опцию у товара)
Подскажите как можно отредактировать опцию у товара, через консоль? minishop2
Товаров свыше 2000, нужно массово изменить везде одну опцию (у всех будет одно значение)
Товаров свыше 2000, нужно массово изменить везде одну опцию (у всех будет одно значение)
Комментарии: 10
Самый простой вариант
$products = $modx->getIterator('msProduct', array('parent' => 24));
foreach($products as $product){
$options = $product->getMany('Options');
foreach($options as $option){
if($option->get('key') == 'option_key'){
$option->set('value', 1235);
}
}
};
не работает, что то видать скрипт делает, но значение не меняет
parent изменил на свой и option_key изменил на свой
parent изменил на свой и option_key изменил на свой
Забыл $option->save();
$products = $modx->getIterator('msProduct', array('parent' => 24));
foreach($products as $product){
$options = $product->getMany('Options');
foreach($options as $option){
if($option->get('key') == 'option_key'){
$option->set('value', 1235);
$option->save(); // тут
}
}
};
не записывает…
Наверное save нужно вызывать не у options а у product
Вам виднее)))
$products = $modx->getIterator('msProduct', array('parent' => 61));
foreach($products as $product){
$options = $product->getMany('Options');
foreach($options as $option){
if($option->get('key') == 'quantity'){
$option->set('value', '1235');
$product->save(); // тут
}
}
};
$products = $modx->getIterator('msProduct', array('parent' => 61));
foreach($products as $product){
$options = $product->getMany('Options');
foreach($options as $option){
if($option->get('key') == 'quantity'){
$option->set('value', '1235');
}
}
$product->save(); // тут
};
так и так пробовал не помогает $q = $modx->newQuery('msProductOption');
$q->command('UPDATE');
$q->where(array('key' => 'test'));
$q->set(array('value' => 3));
$q->prepare();
$q->stmt->execute();
Проверил работает.
Вот рабочий вариант, только как сразу все категории перезаписать не получилось сделать, нужно менять parent
<?php
$products = $modx->getIterator('msProduct', array('parent' => 125));
foreach($products as $product){
$options = $product->getMany('Options');
$options = array(
'quantity' => array('99999'),
);
$product->set('options', $options);
$product->save();
};
mspre в помощь!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.