• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/providerbuildercompatibility.php
  • Класс: BitrixSaleInternalsProviderBuilderCompatibility
  • Вызов: ProviderBuilderCompatibility::addProductByBasketItem
public function addProductByBasketItem(SaleBasketItemBase $basketItem)
{
	$productId = $basketItem->getProductId();
	$providerName = $basketItem->getProviderName();

	$isOrdable = ($basketItem->getField("CAN_BUY") == 'Y' && $basketItem->getField("DELAY") == 'N' && $basketItem->getField("SUBSCRIBE") == 'N');

	$fields = array(
		'BASKET_ITEM' => $basketItem,
		'ITEM_CODE' => $basketItem->getBasketCode(),
		'BASKET_ID' => $basketItem->getId(),
		'BASKET_CODE' => $basketItem->getBasketCode(),
		'PRODUCT_ID' => $productId,
		'QUANTITY' => $basketItem->getNotPurchasedQuantity(),
		'MODULE' => $basketItem->getField('MODULE'),
		'IS_ORDERABLE' => $isOrdable,
		'IS_BUNDLE_PARENT' => false,
		'IS_BUNDLE_CHILD' => false,
		'IS_NEW' => ($basketItem->getId() == 0),
		'SUBSCRIBE' => ($basketItem->getField('SUBSCRIBE') == 'Y'),
	);

	if ($basketItem instanceof SaleBasketItem)
	{
		$fields['IS_BUNDLE_PARENT'] = $basketItem->isBundleParent();
		$fields['IS_BUNDLE_CHILD'] = $basketItem->isBundleChild();
	}

	if (trim((string)$providerName) === '')
	{
		$callbackFunction = $basketItem->getCallbackFunction();
		if (!empty($callbackFunction))
		{
			$fields['CALLBACK_FUNC'] = $callbackFunction;
		}
	}

	$this->addItem($productId, $fields);
}