• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/product/catalogprovider.php
  • Класс: BitrixCatalogProductCatalogProvider
  • Вызов: CatalogProvider::shipProducts
protected function shipProducts(array $products)
	{
		$result = new SaleResult();

		$resultList = array_fill_keys(array_keys($products), false);

		$availableItems = $this->createProductsListWithCatalogData($products);

		$productStoreDataList = [];
		if (CatalogConfigState::isUsedInventoryManagement())
		{
			$r = $this->getProductListStores($products);
			if ($r->isSuccess())
			{
				$data = $r->getData();
				if (!empty($data['PRODUCT_STORES_LIST']))
				{
					$productStoreDataList = $data['PRODUCT_STORES_LIST'];
				}
				unset($data);
			}
			unset($r);
		}

		foreach ($availableItems as $productId => $productData)
		{
			$r = static::shipProduct(
				$productData,
				(!empty($productStoreDataList[$productId])
					? $productStoreDataList[$productId]
					: []
				)
			);
			if (!$r->isSuccess())
			{
				$result->addErrors($r->getErrors());
				$result->addWarnings($r->getErrors());
			}

			$resultList[$productId] = $r->isSuccess();
		}

		$result->setData([
			'SHIPPED_PRODUCTS_LIST' => $resultList
		]);

		return $result;
	}