В стандартном функционале при выводе списка подарков в корзине не получается включить кнопку "выбрать" вместо "подробнее". Начал смотреть в коде и понял что не выводится из-за статуса $arItem['CAN_BUY'] который false. Товар в разделе купить можно. И если перейти по кнопке подробней и добавить в корзину, то тоже все хорошо (добавляется как подарок).
Начал пытаться разобраться как работает компонент, но дошел до момента, где вроде бы должны подставляться значения кодов цены, но там передается пустой массив:
private function buildIblockDependedParameters() {
...
$this->arParams['PRICE_CODE'] = array(
$this->getPriceCode($this->fetchProductPriceId()),
);
}
Так и не понял зачем нужны эти методы $this->getPriceCode($this->fetchProductPriceId()).
В общем, если закомментировать этот код, что бы не присваивать arParams['PRICE_CODE'] пустой массив (т.к. в параметрах уже есть не пустой массив PRICE_CODE), то кнопка "выбрать" появляется. Так же если в template.php присвоить $arItem['CAN_BUY'] = true, тоже все норм становится.
Ясно что нельзя лезть в дивжок битрикса. Но как все таки выключить эту кнопку "выбрать" без костылей?