• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/basketitem.php
  • Класс: BitrixSaleBasketItem
  • Вызов: BasketItem::getLoggedFields
private function getLoggedFields()
{
	/** @var Basket $basket */
	$basket = $this->getCollection();

	$orderId = $basket->getOrderId();

	$changeMeaningfulFields = [
		"PRODUCT_ID",
		"QUANTITY",
		"PRICE",
		"DISCOUNT_VALUE",
		"VAT_RATE",
		"NAME",
	];

	$logFields = [];
	if ($orderId > 0 && $this->isChanged())
	{
		$itemValues = $this->getFields();
		$originalValues = $itemValues->getOriginalValues();

		foreach($originalValues as $originalFieldName => $originalFieldValue)
		{
			if (in_array($originalFieldName, $changeMeaningfulFields) && $this->getField($originalFieldName) != $originalFieldValue)
			{
				$logFields[$originalFieldName] = $this->getField($originalFieldName);
				$logFields['OLD_'.$originalFieldName] = $originalFieldValue;
			}
		}
	}

	return $logFields;
}