ну у меня данные MIGX в таком виде [{"MIGX_id":"1"

ну у меня данные MIGX в таком виде

[{"MIGX_id":"1","art":"m","size":"91\/47 \u0441\u043c","price":"1900"},{"MIGX_id":"2","art":"x","size":"121\/63 \u0441\u043c","price":"2300"},{"MIGX_id":"3","art":"xl","size":"153\/80 \u0441\u043c","price":"2900"}]

Собственно второй раз не нужно как у вас для views.

Второй момент 'price'=>$r['price']?$r['price']:$l['sm_price'], немного не понял смысл этого выражения

Третий момент

public function afterIteration(array $list){
       
       $list = parent::afterIteration($list);
        foreach($list as & $l){
                   if($list=json_decode($l['tvs']['options']['value'],1)){
                    $options=[];
                    foreach($list as $r){
                        $o=[
                            'art'=>$r['art'],
                            'price'=>$r['price']?$r['price']:$l['sm_price'],
                            'size'=>$r['size'],
                        ];
                        $options[]=$o;
                    }
                    $l['options']=$options;
    } 
        }
         return $list;
    }

вывел у себя вот так, на выходе получил только массив MIGX, а остальное куда пропало. Туплю чего то