Получение наборов и комплектов для товара

Пример кода, позволяющего получить все наборы и комплекты для товара, зная ID товара

С 14 версии ядра битрикса появился очень полезный для маркетологов механизма: наборов и комплектов.

Набор – это предложенный магазином список (рекомендованный список) до трёх товаров, которые отображаются в публичной части магазина, к основному товару для которого набор и создаётся.

Комплект – это список товаров, которые содержатся внутри комплекта и будут списаны с вашего склада при покупке. Сам комплект не имеет физического остатка, его остаток зависит от товаров, которые входят в этот комплект. Удобно применять, например мебельщикам. Для нас, как для клиента интернет-магазина, стол - это товар законченный и целый, а для них - это 4 ножки, столешница, болтики и т.д. Вы покупаете стол, а со склада списываются необходимые комплектующие, из которых состоит этот стол. Примеров применения комплектов можно найти массу.

Более подробно о данных типах товарных предложений можно почитать в презентационной статье от Юрия Волошина, поэтому останавливаться на полезностях данного механизма не буду.

В карточке каждого товара, который состоит в том или ином наборе или комплекте, логично было бы показывать наборы и комплекты, в которых данный товар состоит (в типовом интернет-магазине e-shop от 1С-Битрикс данный функционал отлично уже реализован). Для этого можно воспользоваться такой функцией:

\Bitrix\Main\Loader::includeModule('catalog');
    $rsElem = CCatalogProductSet::GetList(
        array(),
        array(
            array(
                'LOGIC' => 'OR',
                'TYPE' => CCatalogProductSet::TYPE_GROUP,
                'TYPE' => CCatalogProductSet::TYPE_SET
            ),
            'ITEM_ID' => $arResult['ID']),
        false,
        false,
        array('SET_ID', 'OWNER_ID', 'ITEM_ID', 'TYPE')
    );
    while ($set = $rsElem->Fetch()) {
        print_r($set);
    }

Данная функция выберет и наборы и комплекты. Если вам нужно получить только один тип товарного предложения - оставьте нужный тип.

Для получения содержимого каждого из товарных предложений, можно воспользоваться функцией:

$arSets = CCatalogProductSet::GetList(
        array(), array( "TYPE" => 1, "OWNER_ID" => $set["OWNER_ID"] ), false, false, array()
    );
    while( $set2 = $arSets->Fetch() ){
        if( $set2["OWNER_ID"]!=$set2["ITEM_ID"]  ){
            echo $set2["ITEM_ID"];
        }
    }

Вот такой полезный механизм.

Количество показов: 14033
11.01.2016

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.