Каталог
Мы на связи
с 10:00 до 18:00
Заказать обратный звонок
0
testest
testest
testest
testest
testest
testest

testest

Артикул: 11test22
в наличии
1 200 000 ₽
Нашли дешевле? Снизим цену!
?
  • Доставка по Москве от 199 ₽
    ?
  • Доставка по РФ от 199 ₽
    ?
  • Самовывоз со склада в Москве
    ?
  • Самовывоз ПВЗ послезавтра и позже
    ?

ANYCODE

\<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");

ede3f0fe558d90e4f852d9c0e55413ea.jpg
  • use Bitrix\Main\Loader;
  • use Bitrix\Iblock\ElementTable;
  • use Bitrix\Iblock\PropertyTable;
  • use Bitrix\Main\FileTable;
Loader::includeModule("iblock");
Loader::includeModule("main");

$IBLOCK_ID = 42; // ID инфоблока

// Загружаем все товары из Битрикс
$arFilter = ["IBLOCK_ID" => $IBLOCK_ID];
$arSelect = ["ID", "DETAIL_PICTURE", "PROPERTY_PHOTOS", "PROPERTY_BREEZ_ID"];
$rsItems = CIBlockElement::GetList([], $arFilter, false, false, $arSelect);

$arBitrixItems = [];
while ($arItem = $rsItems->Fetch()) {
    $breezId = $arItem["PROPERTY_BREEZ_ID_VALUE"];
    if ($breezId) {
        $arBitrixItems[$breezId] = [
            "ID" => $arItem["ID"],
            "DETAIL_PICTURE" => $arItem["DETAIL_PICTURE"],
            "PHOTOS" => is_array($arItem["PROPERTY_PHOTOS_VALUE"]) ? $arItem["PROPERTY_PHOTOS_VALUE"] : [],
        ];
    }
}

// Загружаем товары из Breez
$arItemsTemps = Cbreez\Import::productAll();

foreach ($arItemsTemps as $item) {
    $breezId = $item["code"];
    if (!isset($arBitrixItems[$breezId])) {
        continue; // Пропускаем, если товара нет в Битрикс
    }
    
    $bitrixItem = $arBitrixItems[$breezId];
    $bitrixId = $bitrixItem["ID"];
    $breezPhotos = $item["photo"];
    
    if (empty($breezPhotos)) {
        continue; // Пропускаем, если в Breez нет фото
    }
    
    // Если в Breez одно фото — удаляем свойство PHOTOS
    if (count($breezPhotos) === 1) {
        foreach ($bitrixItem["PHOTOS"] as $photoId) {
            CFile::Delete($photoId);
        }
        CIBlockElement::SetPropertyValuesEx($bitrixId, $IBLOCK_ID, ["PHOTOS" => []]);
        continue;
    }
    
    // Если в Breez 2 и более фото
    $newPhotos = array_slice($breezPhotos, 1); // Берем фото, начиная со второго
    if (count($newPhotos) !== count($bitrixItem["PHOTOS"])) {
        // Удаляем старые фото
        foreach ($bitrixItem["PHOTOS"] as $photoId) {
            CFile::Delete($photoId);
        }
        
        // Загружаем новые фото
        $uploadedPhotos = [];
        foreach ($newPhotos as $photoUrl) {
            $fileArray = CFile::MakeFileArray($photoUrl);
            if ($fileArray) {
                $uploadedPhotos[] = CFile::SaveFile($fileArray, "iblock");
            }
        }
        
        // Обновляем свойство PHOTOS
        CIBlockElement::SetPropertyValuesEx($bitrixId, $IBLOCK_ID, ["PHOTOS" => $uploadedPhotos]);
    }
}

char 1
1
char 2
2
char. 3
34
char 4
4
char5
5
Оставить отзыв
Оценка:
              
Введите текст с картинки:
Все поля формы обязательны
Отзыв будет опубликован после проверки модератором
Бесплатная доставка при заказе от 15 000 ₽ и оплате банковской картой на сайте