• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/controller/order.php
  • Класс: BitrixSaleControllerOrder
  • Вызов: Order::prepareFieldsBasketItem
private function prepareFieldsBasketItem($fields)
{
	$instance = BitrixSaleRestSynchronizationManager::getInstance();
	$loader = Factory::create('PRODUCT');

	$code = $loader->getCodeAfterDelimiter($fields['PRODUCT_XML_ID']);
	$product = $code<>'' ? $loader->getFieldsByExternalId($code):array();
	if(empty($product))
		$product = $loader->getFieldsByExternalId($fields['PRODUCT_XML_ID']);

	if(!empty($product))
	{
		$result = array(
			"PRODUCT_ID" => $product["ID"],
			"NAME" => $product["NAME"],
			"MODULE" => "catalog",
			"PRODUCT_PROVIDER_CLASS" => "CCatalogProductProvider",
			"CATALOG_XML_ID" => $product["IBLOCK_XML_ID"],
			"DETAIL_PAGE_URL" => $product["DETAIL_PAGE_URL"],
			"WEIGHT" => $product["WEIGHT"],
			"NOTES" => $product["CATALOG_GROUP_NAME"]
		);
	}
	else
	{
		$ri = new RandomSequence($fields['PRODUCT_XML_ID']);
		$result = array(
			"PRODUCT_ID" => $ri->rand(1000000, 9999999),
			"NAME" => $fields["NAME"],
			"MODULE" => null,
			"PRODUCT_PROVIDER_CLASS" => null,
			"CATALOG_XML_ID" => null,
			"MEASURE_CODE" => $fields["MEASURE_CODE"],
			"MEASURE_NAME" => $fields["MEASURE_NAME"],
			//"DISCOUNT_PRICE" => $item['DISCOUNT']['PRICE'],
		);
	}

	$result["LID"] = $instance->getDefaultSiteId();
	$result["QUANTITY"] = $fields["QUANTITY"];
	$result["CURRENCY"] = $fields["CURRENCY"];
	$result["DELAY"] = "N";
	$result["CAN_BUY"] = "Y";
	$result["IGNORE_CALLBACK_FUNC"] = "Y";
	$result["PRODUCT_XML_ID"] = $fields["PRODUCT_XML_ID"];
	$result["XML_ID"] = $fields["XML_ID"];

	$result["PRICE"] = $fields["PRICE"];

	$result["VAT_RATE"] = $fields["VAT_RATE"];
	$result["VAT_INCLUDED"] = $fields["VAT_INCLUDED"];

	return $result;
}