• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/controller/order.php
  • Класс: BitrixSalesCenterControllerOrder
  • Вызов: Order::tryToObtainMissingProductProperties
private function tryToObtainMissingProductProperties(array $basketItems, array $formProducts): array
{
	$resultProducts = $formProducts;

	$itemsToFill = array_filter($basketItems, static function($item) {
		return !array_key_exists('properties', $item);
	});
	$idsToFill = array_column($itemsToFill, 'skuId');

	if (empty($idsToFill))
	{
		return $resultProducts;
	}

	$productsData = SaleHelpersAdminBlocksOrderBasket::getProductsData($idsToFill, SITE_ID, ['PROPS']);
	foreach ($resultProducts as $key => $product)
	{
		$productId = $product['PRODUCT_ID'];
		if (isset($productsData[$productId]['PROPS']))
		{
			$resultProducts[$key]['PROPS'] = $productsData[$productId]['PROPS'];
			$resultProducts[$key]['FIELDS_VALUES'] = MainWebJson::encode($resultProducts[$key]);
		}
	}

	return $resultProducts;
}