- Модуль: 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);
}