- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/product/catalogprovider.php
- Класс: BitrixCatalogProductCatalogProvider
- Вызов: CatalogProvider::deliver
public function deliver(array $products)
{
$result = new SaleResult();
$resultList = array();
$productOrderList = static::createOrderListFromProducts($products);
$deliverProductList = array();
foreach ($products as $productId => $productData)
{
$userId = null;
$orderPaid = null;
$orderId = null;
if (isset($productData['USER_ID']))
{
$userId = $productData['USER_ID'];
}
if (isset($productData['ORDER_ID']))
{
$orderId = $productData['ORDER_ID'];
}
if (isset($productData['PAID']))
{
$orderPaid = $productData['PAID'];
}
/**
* @var int $orderId
* @var SaleOrder $order
*/
if (isset($productOrderList[$productId]))
{
foreach ($productOrderList[$productId] as $orderId => $order)
{
if (!isset($resultList[$productId]))
{
$deliverProductList[] = array(
'PRODUCT_ID' => $productId,
'USER_ID' => $order->getUserId(),
'PAID' => $order->isPaid(),
'ORDER_ID' => $orderId,
);
}
}
}
else
{
if (isset($productData['USER_ID']))
{
$userId = $productData['USER_ID'];
}
if (isset($productData['ORDER_ID']))
{
$orderId = $productData['ORDER_ID'];
}
if (isset($productData['PAID']))
{
$orderPaid = $productData['PAID'];
}
$deliverProductList[] = array(
'PRODUCT_ID' => $productId,
'USER_ID' => $userId,
'PAID' => $orderPaid,
'ORDER_ID' => $orderId,
);
}
}
if (!empty($deliverProductList))
{
foreach ($deliverProductList as $productData)
{
$productId = $productData['PRODUCT_ID'];
$resultList[$productId] = CatalogPayOrderCallback(
$productId,
$productData['USER_ID'],
$productData['PAID'],
$productData['ORDER_ID']
);
}
}
if (!empty($resultList))
{
$result->setData(
array(
'DELIVER_PRODUCTS_LIST' => $resultList
)
);
}
return $result;
}