Сопутствующий товар - шаблон

Здравствуйте, помогите пожалуйста! На сайте реализовываю сопутствующий товар. ? Делаю это при помощи статьи, но не могу понять как должен выглядеть в шаблоне блок с поиском дополнительных товаров. Не могли бы вы подробнее расписать как происходит преобразование данных, и выборка из базы?

Когда заданы сопутствующие товары, их ID хранятся в соответствующей переменной. Для их вывода необходимо:

  1. преобразовать строку вида '543||354||222||666' (именно так хранятся значения списка в TV) в массив (назовем его $ids)
  2. вызвать процессор, который выберет нужные данные: {$params=['where'=>['id:in'=>$ids]]}

{processor action='web/catalog/products/getdata' ns=modxsite params=$parrams assign=result} 3. обработать как при выводе товаров в категории: {foreach $result.object as $object}

...

{/foreach}

А что именно делает :in запрос и что он может принимать в значение? И я не понимаю, как преобразовать строку в массив, что я должен для этого использовать ? Вот код который у меня должен выдавать я так понимаю сам себя (так, просто проверить) и он вообще ничего не выдаёт {assign var=params value=[

                        "limit" => 6,

                        "getPage" => 1,

                        "where" => [

                            "id:in" => "%{$object.id}%"

                        ]

                    ]}

                    

                    {processor action="web/catalog/products/getdata" ns="modxsite" params=$params assign=result}

                

                    {include file="shop/catalog/list/fetch.tpl"}

Если вы решили все-таки заниматься сборкой ShopModxBox, то для начала изучите хотя бы основные типы данных (в частности строки, массивы и объекты), а так же методы explode() (формирование массива из строки) и implode() (обратно из массива в строку). Плюс к этой изучите хотя бы простейшие SQL-запросы. "%{$object.id}%" В SQL данная ковструкция - маска поиска по строке. То есть если $object.id имеет, к примеру, значение 110, то будет искать любую строку состоящую из 110 и любых других символов слева и справа от 110 (% - это любые символы. _ - любой один символ). Но операнд in требует перечисление (или массив). В вашем случае это "id:in" => [$object.id], или если поиск только по id, то "id" => $object.id В примере, который приводил Саша, $ids - это массив id-шников. {$params=['where'=>['id:in'=>$ids]]} 1. преобразовать строку вида '543||354||222||666' (именно так хранятся значения списка в TV) в массив (назовем его $ids) {$ids = (array)explode("||", $modx->resource->getTVValue($tv_id))}

{$params=[

'where'=>[

    'id:in'=>$ids

]

]}

{processor action='web/catalog/products/getdata' ns=modxsite params=$params assign=result}

{print_r($result, 1)}