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

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
Наверх