- Модуль: 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;
}