\Bitrix\Main\Loader::includeModule("sale"); \Bitrix\Main\Loader::includeModule('catalog'); if (isset($_GET['utm_source'])) { //time()+60*60*24 setcookie('utm_source', $_GET['utm_source'], time() + 60 * 60 * 24 * 3, '/'); } $request = \Bitrix\Main\Context::getCurrent()->getRequest(); if ($request->isAdminSection()) { require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/external_tools/ExchangeCrmTabEditProduct.php'); \Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnAdminIBlockElementEdit", [ExchangeCrmTabEditProduct::getInstance(), 'onInit']); } //заполнение минимальной максимальной цены AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "DoIBlockAfterSave"); AddEventHandler("iblock", "OnAfterIBlockElementAdd", "DoIBlockAfterSave"); AddEventHandler("catalog", "OnPriceAdd", "DoIBlockAfterSave"); AddEventHandler("catalog", "OnPriceUpdate", "DoIBlockAfterSave"); function DoIBlockAfterSave($arg1, $arg2 = false) { global $USER; $ELEMENT_ID = false; $IBLOCK_ID = false; $OFFERS_IBLOCK_ID = false; $OFFERS_PROPERTY_ID = false; $BX_SITE_ID = "s2"; //you site id if (CModule::IncludeModule('currency')) $strDefaultCurrency = CCurrency::GetBaseCurrency(); //Check for catalog event if (is_array($arg2) && $arg2["PRODUCT_ID"] > 0) { //Get iblock element $rsPriceElement = CIBlockElement::GetList( array(), array( "ID" => $arg2["PRODUCT_ID"], ), false, false, array("ID", "IBLOCK_ID") ); if ($arPriceElement = $rsPriceElement->Fetch()) { $arCatalog = CCatalog::GetByID($arPriceElement["IBLOCK_ID"]); if (is_array($arCatalog)) { //Check if it is offers iblock if ($arCatalog["OFFERS"] == "Y") { //Find product element $rsElement = CIBlockElement::GetProperty( $arPriceElement["IBLOCK_ID"], $arPriceElement["ID"], "sort", "asc", array("ID" => $arCatalog["SKU_PROPERTY_ID"]) ); $arElement = $rsElement->Fetch(); if ($arElement && $arElement["VALUE"] > 0) { $ELEMENT_ID = $arElement["VALUE"]; $IBLOCK_ID = $arCatalog["PRODUCT_IBLOCK_ID"]; $OFFERS_IBLOCK_ID = $arCatalog["IBLOCK_ID"]; $OFFERS_PROPERTY_ID = $arCatalog["SKU_PROPERTY_ID"]; } } //or iblock which has offers elseif ($arCatalog["OFFERS_IBLOCK_ID"] > 0) { $ELEMENT_ID = $arPriceElement["ID"]; $IBLOCK_ID = $arPriceElement["IBLOCK_ID"]; $OFFERS_IBLOCK_ID = $arCatalog["OFFERS_IBLOCK_ID"]; $OFFERS_PROPERTY_ID = $arCatalog["OFFERS_PROPERTY_ID"]; } //or it's regular catalog else { $ELEMENT_ID = $arPriceElement["ID"]; $IBLOCK_ID = $arPriceElement["IBLOCK_ID"]; $OFFERS_IBLOCK_ID = false; $OFFERS_PROPERTY_ID = false; } } } } //Check for iblock event elseif (is_array($arg1) && $arg1["ID"] > 0 && $arg1["IBLOCK_ID"] > 0) { //Check if iblock has offers $arOffers = CIBlockPriceTools::GetOffersIBlock($arg1["IBLOCK_ID"]); if (is_array($arOffers)) { $ELEMENT_ID = $arg1["ID"]; $IBLOCK_ID = $arg1["IBLOCK_ID"]; $OFFERS_IBLOCK_ID = $arOffers["OFFERS_IBLOCK_ID"]; $OFFERS_PROPERTY_ID = $arOffers["OFFERS_PROPERTY_ID"]; } } if ($ELEMENT_ID) { static $arPropCache = array(); if (!array_key_exists($IBLOCK_ID, $arPropCache)) { //Check for MINIMAL_PRICE property $rsProperty = CIBlockProperty::GetByID("MINIMUM_PRICE", $IBLOCK_ID); $arProperty = $rsProperty->Fetch(); if ($arProperty) $arPropCache[$IBLOCK_ID] = $arProperty["ID"]; else $arPropCache[$IBLOCK_ID] = false; } if ($arPropCache[$IBLOCK_ID]) { //Compose elements filter if ($OFFERS_IBLOCK_ID) { $rsOffers = CIBlockElement::GetList( array(), array( "IBLOCK_ID" => $OFFERS_IBLOCK_ID, "PROPERTY_" . $OFFERS_PROPERTY_ID => $ELEMENT_ID, ), false, false, array("ID") ); while ($arOffer = $rsOffers->Fetch()) $arProductID[] = $arOffer["ID"]; if (!is_array($arProductID)) $arProductID = array($ELEMENT_ID); } else $arProductID = array($ELEMENT_ID); $minPrice = false; $maxPrice = false; foreach ($arProductID as $productID) { $arDiscountPrice = CCatalogProduct::GetOptimalPrice($productID, 1, $USER->GetUserGroupArray(), false, false, $BX_SITE_ID); if (CModule::IncludeModule('currency') && $strDefaultCurrency != $arDiscountPrice['RESULT_PRICE']['CURRENCY']) $arDiscountPrice['DISCOUNT_PRICE'] = CCurrencyRates::ConvertCurrency($arDiscountPrice['DISCOUNT_PRICE'], $arDiscountPrice['RESULT_PRICE']["CURRENCY"], $strDefaultCurrency); $PRICE = $arDiscountPrice['DISCOUNT_PRICE']; if ($minPrice === false || $minPrice > $PRICE) $minPrice = $PRICE; if ($maxPrice === false || $maxPrice < $PRICE) $maxPrice = $PRICE; } //Save found minimal price into property if ($minPrice !== false) { CIBlockElement::SetPropertyValuesEx( $ELEMENT_ID, $IBLOCK_ID, array( "MINIMUM_PRICE" => $minPrice, "MAXIMUM_PRICE" => $maxPrice, ) ); } } } } /*AddEventHandler("sale", "OnSaleStatusOrder", "RegisterStatusOrderChange"); function RegisterStatusOrderChange($orderId, $orderStatusId): void { CModule::IncludeModule('iblock'); $order = \Bitrix\Sale\Order::load($orderId); $arOrderStatusRecord = array( "MODIFIED_BY" => 3, "IBLOCK_ID" => 383, "NAME" => $orderId, "PROPERTY_VALUES" => array( 'ORDER_ID' => $orderId, 'STATUS_ID' => $orderStatusId, 'USER_ID' => $order->getUserId(), ), ); $element = new \CIBlockElement; $result = $element->Add($arOrderStatusRecord); }*/JFIF``>CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222(" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?z4˦[c5$+IO]O SCt?Mr>`Йm?k/B~"] UHl\{d 圀I Mr]\$axB=wqFv3_ BCg- +qx-7Ki֗MċxD {?\wIF#/W`5عRZGo$^V1 V,I# +gF89[/6uFY=-xT QYT͕ߞ$q uգ)( V^#rvPz힝+U9|3Ck:\l;(fC$vs'(jK"1|#* r@Fd2o'@BҠԼrCgm! Є?p 42j=[:ēZq#sZ mt$hă#aRO7}}s^ԙ$u۝T֌cZzƱx{MCcHK,&0:zkv%<5e/ “|.N=;eܻ$x}Þ6V '?WԢ֨΍GQIl}k&3;u}6%qJ3D̈́I%9BmNGנ5CmGȀѓA =FzWH$;K^Kvsrt:0ܲl&GaK6 r6@poJ4Ii\& |S+ʙ?iqA߿"|Q κ̏>@HDc/#˕iե.kEoM=úEt YcV.23mi3ij,5S% ' ^׾޺L yVڃ`ק Aޔ8> N@Ltj!oG4f\$T;T(>՜=չbRA'~u9EѤh>t'p6pRX 3|v>2yzD(I=HL+0NQ~tͶ'`ݮx%|9HXi7|kfTS܌px=kOFOZ3<"G]*>:v#yP&u+ f̀r 'ܚfՍ'/z)o5}2il$,ԑ1`;8;KqsHPY'r)I*쀐Grv|.*k׭Yt%SoYE-#[k6(!}B(N vT?zKG1 ?ܰ ~ ^,reSwG5D8#qҹxkM|ac^FFBU}#F"jjskooeZ82t[övI"q_ ]ͤæ]bS'jAV$0HaTvb5oϱX2)6{{K]JC=W驪m˕BY@eBw|cfI4ATd;s[DjVÅt>Ncp%.QצM5os75ȪҌxֹ_[ŲKm}X~Q@ڽ],*D:9Gfz [ ++8^Sr}8QD];=._msǿؗy9A}6'׷4Y^I89`D&(ڿgk_Nj<J`IFQpatFPּ' #<6#h%1ɯPM2l;eyvfl"h6F 2%X~eHtҚ'+5oNHa99?<3Tf[qsq g1(+>>y4msu xWpEN]3MEk{9! N VCc>R;'cΩ8@mǟ@q֮4ܵڝ/g%|T&=xaҼ- b)#,t9q-fQtS=\zd_QZ?l|qGlţm.7[;,tCx+E# Z.Ȇ/cW xOxf0Ě&ЖOeߡԔVOCTA>#攌j*%c=k_OKKt?qkF{bcܢjƴ`a4QIT[رVQi/ ~=7_'!apWQ}3^|=qIrаVI/a4 rN9uT;E;?veZ4V{YT̩#<Ɗ(v**