Автоматическое стаскивание картинок с сайта поставщика для Bitrix

Раньше использовал грабер, которому скармливал артикулы товаров, а тот ходил куда надо и брал, что надо. Потом все это дело грузилось в 1с, а потом выгружалось на сайт. Долго и не удобно.

Решил сделать, чтобы при открытии карточки товара, если картинки нет, то она и искалась у поставщика на сайте, а если нашлась, то записывалась в карточку товара. Конечно, тот, кто открыл товар картинку не увидит в этот раз, но в следующий — да.

Код модуля:

<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if (!empty($arParams['SKU'])) {//есть товары, где нет артикула
    $SKU=$arParams['SKU'];
    if (!preg_match("/[^\d]{1}/", $SKU)) {//У этого поставщика в артикулах нет пробелов, тире, точек и т.п. для каждого типа свои условия.
        $img=file_get_contents("http://site.ru/$SKU.jpg");
        if (!empty($img)){
            $img_path=$_SERVER["DOCUMENT_ROOT"]."/images/grab/$SKU.jpg";
            file_put_contents($img_path,$img);
            if(CModule::IncludeModule("iblock")) {
                $el = new CIBlockElement;
                $arLoadProductArray = Array(
                    "ACTIVE"         => "Y",            
                    "DETAIL_PICTURE" => CFile::MakeFileArray($img_path)
                );
                $PRODUCT_ID = $arParams["ID"];
                $res = $el->Update($PRODUCT_ID, $arLoadProductArray);
            }
        }
    }
}
?>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *