Добро пожаловать в блог, где важны слова.

Тут я частенько публикую в открытым доступе полезные материаллы и готовые решения для повседневных задач по 1С-Битрикс и Битрикс24, а также затрагиваю темы всё что связано с сайтостроением

Как удалить фото у товара Битрикс API D7 2

Как удалить фото у товара Битрикс API D7

Согласитесь вручную в административной части сайта фотографии удалять это не очень комфортно, ладно 2-3 товара еще как-то можно, а когда треубется удалить например у 10-20 и более товаров.

Создайте тестовую страницу например del_photo.php (не забудьте права поставить для админа, чтобы случайно другой пользователь не зашел и не запустил Ваш код) и разместите следующий код. Не забудьте указать свой id товара, у которого хотите удалить фото.

// Подключаем модуль для работы с ИБ
use \Bitrix\Main\Loader::includeModule("iblock");

// class для работы с элементами ИБ
$el = new \CIBlockElement;

// id товара
$id = 3044;

// method обновление элемента (товара) по id
$el->Update($id, array(

	// удаление фотографии на странице анонса
    "PREVIEW_PICTURE" => array('del' => 'Y'),

    // удаление фотографии на детальной странице
    "DETAIL_PICTURE" => array('del' => 'Y'),
    
), false, false);

Если фотографии еще и в свойствах хранятся, тогда разместите ниже код, также измените id товара, ИБ с товарами и название свойства на свои.

// Подключаем модуль для работы с ИБ
use \Bitrix\Main\Loader::includeModule("iblock");

$id_element = 3044; // id товара
$id_iblock = 3; // id ИБ c элементами (товарами)

// Method на изменение значения у свойства
\CIBlockElement::SetPropertyValuesEx(
	$id_element,
	$id_iblock,
	array(
		"MORE_PHOTO" => array( // название свойства
			"VALUE" => array( // значение свойства
				"del" => "Y" // параметр на удаление
			)
		)
	)
);

Пример выполнения кода в цикле (только не указывайте больше 50-ти id-шников, так делать не красиво и лишний раз нагружайте Ваш сервер)

Удаление фото на странице анонса и детальной

// Подключаем модуль для работы с ИБ
use \Bitrix\Main\Loader::includeModule("iblock");

// class для работы с элементами ИБ
$el = new \CIBlockElement;

// id товаров
$id_elements = array(3044,3045,3046,3047,3050,3052);

foreach ($id_elements as $id) {
	// method обновление элемента (товара) по id
	$el->Update($id, array(

		// удаление фотографии на странице анонса
	    "PREVIEW_PICTURE" => array('del' => 'Y'),

	    // удаление фотографии на детальной странице
	    "DETAIL_PICTURE" => array('del' => 'Y'),
    
	), false, false);
}

Удаление фото у свойства товара

// Подключаем модуль для работы с ИБ
use \Bitrix\Main\Loader::includeModule("iblock");

// id товаров
$id_elements = array(3044,3045,3046,3047,3050,3052);
$id_iblock = 3; // id ИБ c элементами (товарами)

foreach ($id_elements as $id) {
	// Method на изменение значения у свойства	
	\CIBlockElement::SetPropertyValuesEx(
	$id,
	$id_iblock,
		array(
			"MORE_PHOTO" => array( // название свойства
				"VALUE" => array( // значение свойства
					"del" => "Y" // параметр на удаление
				)
			)
		)
	);
}
Возврат к списку