• Модуль: catalogmobile
  • Путь к файлу: ~/bitrix/modules/catalogmobile/lib/Controller/DocumentDetails/RealizationDocumentDetails.php
  • Класс: BitrixCatalogMobileControllerDocumentDetailsRealizationDocumentDetails
  • Вызов: RealizationDocumentDetails::prepareBasketItemsForSync
private function prepareBasketItemsForSync(OrderShipment $shipment): array
{
	$basketItems = [];

	if (Loader::includeModule('catalog'))
	{
		$formBuilder = new BasketBuilder();

		/** @var OrderShipmentItem $shipmentItem */
		foreach ($shipment->getShipmentItemCollection() as $shipmentItem)
		{
			$basketItem = $shipmentItem->getBasketItem();
			$product = $basketItem->getFieldValues();

			$item = $formBuilder->loadItemBySkuId((int)$product['PRODUCT_ID']);
			if ($item)
			{
				$item
					->setDetailUrlManagerType(ProductBuilder::TYPE_ID)
					->addAdditionalField('originProductId', (string)$product['PRODUCT_ID'])
					->addAdditionalField('originBasketId', (string)$product['ID'])
					->setName($product['NAME'])
					->setPrice((float)$product['PRICE'])
					->setCode((string)$product['ID'])
					->setBasePrice((float)$product['BASE_PRICE'])
					->setPriceExclusive((float)$product['PRICE'])
					->setQuantity((float)$product['QUANTITY'])
					->setMeasureCode((int)$product['MEASURE_CODE'])
					->setMeasureName($product['MEASURE_NAME'])
				;

				$basketItems[] = $item->getFields();
			}
		}
	}

	return $basketItems;
}