• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/providerbase.php
  • Класс: BitrixSaleProviderBase
  • Вызов: ProviderBase::getBasketCountFromShipmentItemCollection
static function getBasketCountFromShipmentItemCollection($shipmentItemList)
{

	$basketCountList = array();
	/** @var ShipmentItem $shipmentItem */
	foreach ($shipmentItemList as $shipmentItem)
	{

		/** @var BasketItem $basketItem */
		if (!$basketItem = $shipmentItem->getBasketItem())
		{
			continue;
		}

		if ($basketItem->isBundleParent()
			|| (!$basketItem->isBundleParent() && !$basketItem->isBundleChild()))
		{
			$basketCountList[$basketItem->getBasketCode()] = floatval($shipmentItem->getQuantity());
		}


		if($basketItem->isBundleParent())
		{
			/** @var ShipmentItem $bundleShipmentItem */
			foreach ($shipmentItemList as $bundleShipmentItem)
			{
				/** @var BasketItem $bundleBasketItem */
				$bundleBasketItem = $bundleShipmentItem->getBasketItem();

				if($bundleBasketItem->isBundleChild())
				{
					$bundleParentBasketItem = $bundleBasketItem->getParentBasketItem();
					if ($bundleParentBasketItem->getBasketCode() == $basketItem->getBasketCode())
					{
						$basketCountList[$bundleBasketItem->getBasketCode()] = floatval($bundleShipmentItem->getQuantity());
					}
				}
			}
		}

	}

	return $basketCountList;
}