Если вы хотите подключить компонент конфигуратора на странице товара и установить этот товар или несколько связанных с ним товаров как уже выбранные в конфигураторе, то вам необходимо использовать настройки пресета:
Указание самих товаров необходимо выполнить через код, который необходимо добавить перед кодом вызова компонента:
$GLOBALS["confPreSet_".$arResult["ID"]] = Array(
109 => Array(
Array(
"ID" => 36919,
"QUANTITY" => 1,
)
),
111 => Array(
Array(
"ID" => 37302,
"QUANTITY" => 1,
),
Array(
"ID" => 34214,
"QUANTITY" => 2,
)
),
);
Рекомендуется добавлять к имени массива идентификатор основного товара "confPreSet_".$arResult["ID"]
109 и 111 - идентификаторы шагов конфигуратора. Каждый товар описывается как массив с идентификатором и количеством. Если шаг множественный, то ему можно передать несколько товаров.
ID товаров можно получить с помощью API 1С-Битрикс. Для этого необходимы знания программирования.
Далее представлен вариант с разными условиями сверки с идентификатором раздела, к которому принадлежит товар:
$presetArray = [];
switch($arResult["IBLOCK_SECTION_ID"])
{
case(1913):
//для товаров из раздела с идентификатором 1913 указать текущий товар в количестве 1 для шага с идентификатором 184
$presetArray[184] = Array(
Array(
"ID" => $arResult['ID'],
"QUANTITY" => 1,
)
);
break;
case(1914):
case(1915):
//не указывать пресет для товаров из разделов 1914 и 1915
break;
default:
//выполнить поиск среди шагов, у которых основной раздел указан как у текущего товара и если найдено, то добавить товар в найденный шаг
if(CModule::IncludeModule('webprostor.configurator'))
{
$stepInfo = Webprostor\Configurator\StepsTable::getList([
'limit' => 1,
'filter' => ['SECTION_ID' => $arResult["IBLOCK_SECTION_ID"]],
'select' => ['ID'],
])->fetch();
if($stepInfo)
$presetArray[$stepInfo['ID']] = Array(
Array(
"ID" => $arResult['ID'],
"QUANTITY" => 1,
)
);
}
break;
}
$GLOBALS["confPreSet_".$arResult["ID"]] = $presetArray;
Переменная $arResult инициируется в стандартном компоненте для битрикс "Элемент каталога".