Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Решение из разряда "пока и так сойдет", но может в некоторых случаях подойдет и на постоянку.
Все решается одним обработчиком событий:
Пробежимся по if-ам:
1. Проверка, подключенрие.
2. Дергаем поля товара.
3. Дергаем часть инфоблока, которая является каталогом.
4. Если у инфоблока есть торговые предложения ...
5. ... проверяем есть ли SKU для данного родительского товара. И если есть, то редиректим на карточку родительского.
Таким образом получаем, что сам родительский товар не может быть добавлен в корзину никаким образом.
Назад в раздел
то ждем ваше обращение в нашей службе тех поддержки.
Если у товара есть торговые предложения - не добавлять его в корзину, а переходить в его карточку
Представим себе некий готовый магазин с обычными товарами. А потом решили добавить раздел со SKU-товарами. К примеру, телефоны с разными цветами. Получаем ситуацию - некоторые товары (которые были) по клику на корзину должны добавляться как и раньше в корзину, а товары со SKU редиректить пользователя на карточку товара.Решение из разряда "пока и так сойдет", но может в некоторых случаях подойдет и на постоянку.
Все решается одним обработчиком событий:
<?php AddEventHandler('sale', 'OnBeforeBasketAdd', array('CSaleHandlers', 'OnBeforeBasketAddHandler')); class CSaleHandlers { public static function OnBeforeBasketAddHandler($arFields) { if ($arFields['MODULE']=='catalog' && $arFields['PRODUCT_ID']>0 && CModule::IncludeModule('iblock')) { if ($arElement = CIBlockElement::GetByID($arFields['PRODUCT_ID'])->GetNext()) { if ($arIB = CCatalog::GetByID($arElement['IBLOCK_ID'])) { if ($arIB['OFFERS_IBLOCK_ID'] > 0) { if (CIBlockElement::GetList(array(), array( 'IBLOCK_ID' => $arIB['OFFERS_IBLOCK_ID'], '=PROPERTY_CML2_LINK' => $arElement['ID'], 'ACTIVE' => 'Y'))->Fetch() ) { LocalRedirect($arElement['DETAIL_PAGE_URL']); } } } } } } } |
1. Проверка, подключенрие.
2. Дергаем поля товара.
3. Дергаем часть инфоблока, которая является каталогом.
4. Если у инфоблока есть торговые предложения ...
5. ... проверяем есть ли SKU для данного родительского товара. И если есть, то редиректим на карточку родительского.
Таким образом получаем, что сам родительский товар не может быть добавлен в корзину никаким образом.
Назад в раздел
Подписаться на новые материалы раздела: