• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/basketpropertiesbase.php
  • Класс: BitrixSaleBasketPropertiesCollectionBase
  • Вызов: BasketPropertiesCollectionBase::loadByCollection
static function loadByCollection(BasketItemCollection $collection)
{
	$propertyList = [];

	$basketIdList = static::getBasketIdList($collection);

	if (!empty($basketIdList))
	{
		$registry = Registry::getInstance(static::getRegistryType());

		/** @var BasketPropertyItemBase $basketPropertyItemClass */
		$basketPropertyItemClass = $registry->getBasketPropertyItemClassName();

		$propertyList = $basketPropertyItemClass::loadForBasket($basketIdList);
	}

	/** @var BasketItemBase $basketItem */
	foreach ($collection as $basketItem)
	{
		if ($basketItem->isExistPropertyCollection())
		{
			continue;
		}

		$basketPropertyCollection = static::createBasketPropertiesCollectionObject();
		$basketPropertyCollection->setBasketItem($basketItem);

		if (isset($propertyList[$basketItem->getId()]))
		{
			/** @var BasketPropertyItemBase $property */
			foreach ($propertyList[$basketItem->getId()] as $property)
			{
				$property->setCollection($basketPropertyCollection);
				$basketPropertyCollection->addItem($property);
			}
		}

		$basketItem->setPropertyCollection($basketPropertyCollection);
	}
}