Документация для разработчиков
Темная тема

recountPricesFromBase

bool public static
\Bitrix\Catalog\Model\Price::recountPricesFromBase(
	$id
);

Метод пересчитывает цены товара, которые зависят от базовой цены через наценки. Статический метод.

Параметры

Параметр Описание
$id Идентификатор базовой цены. Метод приводит значение к целому числу

Возвращаемое значение

Метод возвращает true, если нашел указанную базовую цену и завершил обработку зависимых цен. Результат true не означает, что метод обязательно нашел и изменил зависимые цены.

Метод возвращает false в следующих случаях:

  • идентификатор меньше или равен нулю,
  • базовый тип цен или список наценок не настроен,
  • цена с указанным идентификатором не найдена или не относится к базовому типу,
  • товар цены не найден,
  • автоматизация торговых предложений отключена, а цена принадлежит товару с торговыми предложениями или пустому SKU,
  • валюта базовой цены не найдена.

Особенности

Метод выбирает цены того же товара с тем же диапазоном количества. В пересчет попадают цены с наценкой, которая зарегистрирована в настройках каталога. Новое значение равно базовой цене, умноженной на коэффициент наценки. Метод также меняет валюту и цену в базовой валюте.

Для цены торгового предложения метод может пересчитать минимальные цены родительского товара.

Пример

Пример изменяет зависимые цены товара. Передайте идентификатор базовой цены товара, цены с наценками которого можно пересчитать.

<?php

use Bitrix\Catalog\Model\Price;
use Bitrix\Main\Loader;

if (!Loader::includeModule('catalog'))
{
	throw new RuntimeException('Не удалось подключить модуль catalog');
}

// Идентификатор базовой цены, от которой зависят цены с наценками
$basePriceId = 123;

try
{
	if (!Price::recountPricesFromBase($basePriceId))
	{
		echo 'Цены не пересчитаны. Проверьте базовую цену и настройки наценок';
		return;
	}

	echo 'Пересчет зависимых цен завершен';
}
catch (Throwable $exception)
{
	echo 'Не удалось пересчитать цены: ' . $exception->getMessage();
}


© «Битрикс», 2001-2026, «1С-Битрикс», 2026