Как сделать изменение параметров во всех товарах через Console
Добрый день!
Через следующий плагин, меняю в товарах определенного родителя свойства:
Товаров больше сотни, как через console обработать все товары, чтоб не заходить на каждый и не пересохранять????
Нашла следующий скрипт для обработки в консоле, но он не срабатывает, а я не могу понять как исправить:
Через следующий плагин, меняю в товарах определенного родителя свойства:
<?php
if($scriptProperties['mode']=='upd' && $resource->get("parent") == 15){
$resource->set('color_stone', array('--ФИАНИТЫ--','Бесцветные','Черные','Черно-белые','Зелено-белые','Коньячно-белье','Сиренево-белый','Зелено-белые','Цветные', '-Полудрагоценные камни-','Микс','Хризолит','Гранат','Цитрин','Топаз','Аметист','Раухтопаз','Бирюза','Оникс','Кварц зеленый','Ситал','Аквамарин','Александрит','Турмалин','Лондон топаз','Свис топаз','Родолит'));
$resource->set('color_metal', array('белый', 'красно-белый','красно-лимонно-белый','красный','лимонно-белый', 'лимонный'));
$resource->set('size', array('15', '15.5', '16','16.5','17','17.5','18','18.5','19','19.5','20','20.5','21','21.5','22','22.5'));
$resource->save();
}
Плагину назначено событие: OnDocFormSaveТоваров больше сотни, как через console обработать все товары, чтоб не заходить на каждый и не пересохранять????
Нашла следующий скрипт для обработки в консоле, но он не срабатывает, а я не могу понять как исправить:
<?php
// Сколько ресурсов обрабатывать за раз
$step = 1;
// Если процесс уже остановлен, сбрасываем OFFSET
if (!isset($_SESSION['Console']['completed'])) {
$_SESSION['console_offset'] = 0;
}
$offset = isset($_SESSION['console_offset']) && $_SESSION['console_offset'] ? $_SESSION['console_offset'] : 0;
// Формируем запрос
$q = $modx->newQuery('modResource');
$total = $modx->getCount('modResource', $q);
// Пропускаем все уже обработанные объекты
$q->limit($step, $offset);
$resources = $modx->getCollection('modResource', $q);
// Обработка
foreach ($resources as $resource) {
print "<p>Processing resource <b>".$resource->get('pagetitle')."</b></p>";
sleep(0.5);
}
// Меняем offset
$_SESSION['console_offset'] = $offset + $step;
if ($_SESSION['console_offset'] >= $total) {
$sucsess = 100;
$_SESSION['Console']['completed'] = true;
unset($_SESSION['console_offset']);
} else {
$sucsess = round($_SESSION['console_offset'] / $total, 2) * 100;
$_SESSION['Console']['completed'] = false;
}
for ($i=0; $i<=100; $i++) {
if ($i <= $sucsess) {
print '=';
} else {
print '_';
}
}
$current = isset($_SESSION['console_offset']) ?
$_SESSION['console_offset'] :
($sucsess == 100 ? $total : 0);
print "\n";
print $sucsess.'% ('.$current.')'."\n\n";