delete
\Bitrix\Main\ORM\Data\DeleteResult public static \Bitrix\Catalog\Model\Product::delete( $id );
Метод удаляет запись товара из таблицы каталога и связанные с ней данные каталога. Элемент инфоблока остается в системе. Статический метод.
Метод переопределяет реализацию \Bitrix\Catalog\Model\Entity::delete(). Он не отправляет события модели Entity, но сохраняет события ORM-таблицы и запускает собственную очистку связанных данных каталога.
Параметры
| Параметр | Описание |
|---|---|
$id |
Идентификатор товара, для которого нужно удалить запись каталога |
Возвращаемое значение
Метод возвращает объект \Bitrix\Main\ORM\Data\DeleteResult. Объект содержит результат операции и ошибки удаления.
Исключения
\Bitrix\Main\ObjectNotFoundException— модель не смогла получить объект ORM-таблицы товара.
Особенности
Метод удаляет цены, коэффициенты единиц измерения, настройки группового доступа, складские остатки, подписки и записи комплектов, связанные с товаром.
Чтобы удалить элемент инфоблока вместе с данными товара, используйте API элементов инфоблока.
Пример
Пример необратимо удаляет данные каталога для указанного товара, но сохраняет элемент инфоблока. Передайте идентификатор товара, данные которого можно удалить.
<?php
use Bitrix\Catalog\Model\Product;
use Bitrix\Main\Loader;
use Bitrix\Main\ObjectNotFoundException;
if (!Loader::includeModule('catalog'))
{
throw new RuntimeException('Не удалось подключить модуль catalog');
}
// Идентификатор товара, данные каталога которого можно удалить
$productId = 123;
try
{
$result = Product::delete($productId);
if (!$result->isSuccess())
{
echo implode(PHP_EOL, $result->getErrorMessages());
return;
}
echo 'Данные товара удалены из каталога';
}
catch (ObjectNotFoundException $exception)
{
echo 'Не удалось удалить данные товара: ' . $exception->getMessage();
}