Пример кода, позволяющего получить все наборы и комплекты для товара, зная 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"]; } }
Вот такой полезный механизм.
Разработка сайта
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Сопровождение сайта
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Работы по сайту
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.