ошибка обновления товара при второй и последующих
Добрый день.
За основу взял ваш код импорта из 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
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Это сбрасывает ошибки, накопившиеся во время импорта прошлого товара. Подозреваю, что при импорте изображений эти ошибки должны были сброситься, но почему то этого не происходит.
Я же свой скрипт писал, ну и не сразу подумал о том, что надо ошибки сбрасывать. Подозреваю что автор топика тоже свой скрипт писал.