ошибка обновления товара при второй и последующих

Добрый день.

За основу взял ваш код импорта из 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/' точно есть
Alexander Soliar
26 марта 2014, 15:23
modx.pro
1
2 403
0

Комментарии: 9

Sergey Perepechin
27 марта 2014, 00:57
0
Какая версия Modx у Вас сейчас стоит?
    Alexander Soliar
    27 марта 2014, 10:40
    0
    MODX Revolution 2.2.10-pl (October 7, 2013)
      Sergey Perepechin
      27 марта 2014, 12:04
      0
      Обновляйся на 2.2.13, в твоей версии есть проблемы с phpThumb
        Alexander Soliar
        28 марта 2014, 13:53
        0
        обновился до MODX Revolution 2.2.13-pl проблема осталась. есть еще идеи?
    Наумов Алексей
    30 мая 2014, 15:13
    +1
    Перед импортом каждой строки добавляем
    $modx->error->reset();
    Это сбрасывает ошибки, накопившиеся во время импорта прошлого товара. Подозреваю, что при импорте изображений эти ошибки должны были сброситься, но почему то этого не происходит.
      Василий Наумкин
      30 мая 2014, 17:14
      0
      В последних версиях MS2 это вроде уже поправлено.
        Наумов Алексей
        30 мая 2014, 19:04
        0
        Да вот только сегодня делал импорт, напоролся на это, minishop2 ставил из modx.com репозитория вчера или позавчера.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    9