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

save

\Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult public static
\Bitrix\Sale\Delivery\Restrictions\ByLocation::save(
	array $fields,
	$restrictionId = 0
);

Метод сохраняет разрешенные местоположения и запись ограничения службы доставки. Статический метод.

Параметры

Параметр Описание
$fields Поля ограничения. Массив должен содержать SERVICE_ID, SERVICE_TYPE и PARAMS
$restrictionId Идентификатор существующего ограничения для обновления. Значение 0 создает запись

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

Метод возвращает результат добавления или обновления записи ограничения.

Исключения

Метод может передать исключение при сохранении записи ограничения.

Особенности

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

Пример

<?php
use Bitrix\Main\Loader;
use Bitrix\Sale\Delivery\Restrictions\ByLocation;
use Bitrix\Sale\Delivery\DeliveryLocationTable;

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

// Используйте только тестовую службу: пример временно изменяет ее настройки
$testDeliveryServiceId = 2;
$result = ByLocation::save([
	'SERVICE_ID' => $testDeliveryServiceId,
	'SERVICE_TYPE' => 0,
	'PARAMS' => ['LOCATION' => [DeliveryLocationTable::DB_LOCATION_FLAG => '', DeliveryLocationTable::DB_GROUP_FLAG => '']],
]);

if (!$result->isSuccess())
{
	throw new RuntimeException(implode('; ', $result->getErrorMessages()));
}

echo 'Ограничение сохранено: ' . $result->getId() . PHP_EOL;

$deleteResult = ByLocation::delete($result->getId(), $testDeliveryServiceId);
if (!$deleteResult->isSuccess())
{
	throw new RuntimeException(implode('; ', $deleteResult->getErrorMessages()));
}


Была ли эта страница полезна?

Пользовательские комментарии

Помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2026, «1С-Битрикс», 2026
Наверх