Как отключить конкретное предложение у товара через API в Битриксе?

Как сделать запрос для выборки товаров в разделе по части названия и деактивировать их в процессе?
  • 27 марта 2024 г. 13:59
Ответы на вопрос 1
Для отключения конкретного предложения у товара через API в Битриксе можно воспользоватся методом `Catalog.ProductOffer.Deactivate`. Пример запроса будет выглядеть примерно так:

```php
<?php

use Bitrix\Main\Loader;
use Bitrix\Catalog\Product\Offer;

Loader::includeModule('catalog');

$offerId = 123; // ID предложения
$result = Offer::deactivate($offerId);
```

Для выборки товаров в разделе по части названия и их последующего деактивации можно воспользоваться методами `CIBlockElement::GetList` и `CIBlockElement::Update`. Пример запроса будет выглядеть примерно так:

```php
<?php

CModule::IncludeModule('iblock');

$arFilter = array(
    'IBLOCK_ID' => 1,
    '%NAME' => 'часть названия',
);

$rsItems = CIBlockElement::GetList(array(), $arFilter);
while ($arItem = $rsItems->Fetch()) {
    $itemId = $arItem['ID'];
    CIBlockElement::Update($itemId, array('ACTIVE' => 'N')); // деактивируем товар
}
```

Обратите внимание, что в примерах использованы упрощенные запросы, и вам может потребоваться более сложная логика в зависимости от конкретных требований и структуры вашего проекта.
Похожие вопросы