Если вы хотите дописать это (получение галереи тов

Если вы хотите дописать это (получение галереи товара) в исходный процессор получения товаров, то вы все это объединяете в одном цикле, то есть получится так:

public function afterIteration(array $list){
        $list = parent::afterIteration($list);
        
        switch($this->getProperty('image_url_schema')){
            case 'base':
                $images_base_url = $this->modx->runSnippet('getSourcePath');
                break;
                
            case 'full':
                $images_base_url = $this->modx->getOption('site_url');
                $images_base_url .= preg_replace("/^\//", "", $this->modx->runSnippet('getSourcePath'));
                break;
                
            default: $images_base_url = '';
        } 
        
        foreach($list as & $l){
            // Базовая картинка
            $l['image'] = '';
            if(!empty($l['tvs']['image']['value'])){
                $l['image'] = $images_base_url . $l['tvs']['image']['value'];
            }
            else{
                $l['imageDefault'] = $images_base_url . 'products/No-Photo.jpg';
            }
            
            /*
                Картинки
            */
            $l['images'] = array();
            
            if(!empty($l['tvs']['images']['value'])){
                $images = json_decode($l['tvs']['images']['value'], true);
                foreach($images as $image){
                    $image['image'] = $images_base_url.$image['image'];
                    $l['images'][] = $image;
                }
            }
        }
        return $list;
    }

А если вы расширяете процессор, то за это не паритесь, потому что там все равно вызывается родительский метод, так что картинка будет учтена и базовая.

public function afterIteration(array $list){
        $list = parent::afterIteration($list);

В общем, здесь конечно же хорошо бы ООП понимать.