ошибка обновления товара при второй и последующих
Добрый день.
За основу взял ваш код импорта из CSV
Добрый день. задача такая, взять товар и обновить в нем некоторые поля и фотографии.
первая итерация проходит нормально а последующие не выполняются, причем если отключить добавление картинок то все нормально работает
вот код:
Массив
$data:
2 итерация:
Массив
$data:
Получается что ошибка вылезает при обновлении данных
$response = $modx->runProcessor('resource/update', $data)
но причем тут путь к изображению из прошлой итерации?
причем если снова запустить скрипт то товар 1579 обновится и вылезет та же ошибка на следующем обновлении
P.S картинки в '/upload/tmp/' точно есть
За основу взял ваш код импорта из CSV
Добрый день. задача такая, взять товар и обновить в нем некоторые поля и фотографии.
первая итерация проходит нормально а последующие не выполняются, причем если отключить добавление картинок то все нормально работает
вот код:
$response = $modx->runProcessor('resource/update', $data);
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, "Error on $id: n". print_r($response->getAllErrors(), 1));
continue;
}
$resource = $response->getObject();
$modx->log(modX::LOG_LEVEL_INFO, "Successful $id: n". print_r($resource, 1));
//-------------
if (!empty($gallery)) {
$modx->log(modX::LOG_LEVEL_INFO, "Importing images: n". print_r($gallery, 1));
foreach ($gallery as $v) {
if (empty($v)) {continue;}
$image = str_replace('//', '/', MODX_BASE_PATH . '/upload/tmp/'. $v);
if (!file_exists($image)) {
$modx->log(modX::LOG_LEVEL_ERROR, "Could not import image "$v" to gallery. File "$image" not found on server.");
}
else {
$response = $modx->runProcessor('gallery/upload',
array('id' => $id, 'name' => $v, 'file' => $image),
array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/')
);
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, "Error on upload "$v": n". print_r($response->getAllErrors(), 1));
}
else {
$modx->log(modX::LOG_LEVEL_INFO, "Successful upload "$v": n". print_r($response->getObject(), 1));
}
}
}
}
для примера 1 итерация:Массив
$data:
Array
(
[context_key] => web
[pagetitle] => Магнитный конструктор
[id] => 1560
[tv2] => Детям от: 1 года до: 7 лет
[vendor] => 144
[size] =>
[weight] => 0.3 кг.
[content] => Дополнительный набор ...
)
$gallery:Array
(
[0] => 9b3357c45613c97d2b507c86f0b45ec8.jpg
)
Все проходит нормально.2 итерация:
Массив
$data:
Array
(
[context_key] => web
[pagetitle] => Конструктор развивающий №2
[id] => 1579
[tv2] => Детям от: 7 лет до: 14 лет
[vendor] => 115
[size] => 30x8x25 см
[weight] => 0.3 кг.
[content] => Развивающий конструктор
)
$gallery:Array
(
[0] => 950a2c350525f3e60aa4bd50d50d372b.jpg
[1] => a8f97e7db94f4a24a13970a4ebf36305.jpg
)
Выдается ошибка
[2014-03-26 18:23:03] (ERROR @ /core/components/minishop2/import/pars.php)
Error on 1579:
Array
(
[0] => /assets/images/products/1560/9b3357c45613c97d2b507c86f0b45ec8.jpg
)
к сожалению ошибка не информативна :(Получается что ошибка вылезает при обновлении данных
$response = $modx->runProcessor('resource/update', $data)
но причем тут путь к изображению из прошлой итерации?
причем если снова запустить скрипт то товар 1579 обновится и вылезет та же ошибка на следующем обновлении
P.S картинки в '/upload/tmp/' точно есть
Комментарии: 9
Какая версия Modx у Вас сейчас стоит?
MODX Revolution 2.2.10-pl (October 7, 2013)
Обновляйся на 2.2.13, в твоей версии есть проблемы с phpThumb
обновился до MODX Revolution 2.2.13-pl проблема осталась. есть еще идеи?
Перед импортом каждой строки добавляем
$modx->error->reset();
Это сбрасывает ошибки, накопившиеся во время импорта прошлого товара. Подозреваю, что при импорте изображений эти ошибки должны были сброситься, но почему то этого не происходит.
В последних версиях MS2 это вроде уже поправлено.
Да вот только сегодня делал импорт, напоролся на это, minishop2 ставил из modx.com репозитория вчера или позавчера.
Добавлено 25 января, версия 2.1.4-pl5.
А, в скрипте то да, там есть =)
Я же свой скрипт писал, ну и не сразу подумал о том, что надо ошибки сбрасывать. Подозреваю что автор топика тоже свой скрипт писал.
Я же свой скрипт писал, ну и не сразу подумал о том, что надо ошибки сбрасывать. Подозреваю что автор топика тоже свой скрипт писал.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.