if ($emailProp = $collection->getUserEmail()) {
$emailProp->setValue($email);
} else {
$emailProp = $collection->createItem([
'ID' => 3,
'NAME' => 'NAME',
'TYPE' => 'STRING',
'CODE' => 'PROP_Email',
]);
$emailProp->setField('VALUE', $email);
}
$profile_id = 7;
$ar_profile = CCatalogExport::GetByID($profile_id);
if (!$ar_profile)
die('No profile');
$strFile = CATALOG_PATH2EXPORTS.$ar_profile["FILE_NAME"]."_run.php";
if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile))
{
$strFile = CATALOG_PATH2EXPORTS_DEF.$ar_profile["FILE_NAME"]."_run.php";
if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile))
die('No export script');
}
$arSetupVars = array();
$intSetupVarsCount = 0;
if ($ar_profile["DEFAULT_PROFILE"] != 'Y')
{
parse_str($ar_profile["SETUP_VARS"], $arSetupVars);
if (!empty($arSetupVars) && is_array($arSetupVars))
$intSetupVarsCount = extract($arSetupVars, EXTR_SKIP);
}
$firstStep = true;
global $arCatalogAvailProdFields;
$arCatalogAvailProdFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_ELEMENT);
global $arCatalogAvailPriceFields;
$arCatalogAvailPriceFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_CATALOG);
global $arCatalogAvailValueFields;
$arCatalogAvailValueFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE);
global $arCatalogAvailQuantityFields;
$arCatalogAvailQuantityFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE_EXT);
global $arCatalogAvailGroupFields;
$arCatalogAvailGroupFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_SECTION);
global $defCatalogAvailProdFields;
$defCatalogAvailProdFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_ELEMENT);
global $defCatalogAvailPriceFields;
$defCatalogAvailPriceFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CATALOG);
global $defCatalogAvailValueFields;
$defCatalogAvailValueFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE);
global $defCatalogAvailQuantityFields;
$defCatalogAvailQuantityFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE_EXT);
global $defCatalogAvailGroupFields;
$defCatalogAvailGroupFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_SECTION);
global $defCatalogAvailCurrencies;
$defCatalogAvailCurrencies = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CURRENCY);
CCatalogDiscountSave::Disable();
include($_SERVER["DOCUMENT_ROOT"].$strFile);
CCatalogDiscountSave::Enable();
if ($(selector).inputmask("isComplete")){
//do something
}
<?
function OnSaleOrderBeforeSaved(\Bitrix\Main\Event $event)
{
/** @var \Bitrix\Sale\Order $order */
$order = $event->getParameter("ENTITY");
if ($order->isNew() ) {//Если проверка требуется только для нового заказа, а не при его редактировании
$propertyCollection = $order->getPropertyCollection();
$phoneProperty = $propertyCollection->getPhone();
$isPhoneValid = validatePhone($phoneProperty);
if (!$isPhoneValid) {
$event->addResult(new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::ERROR,
new \Bitrix\Sale\ResultError('Текст ошибки', 'PHONE_PROPERTY_INVALID')
));
}
}
}
$eventManager = Main\EventManager::getInstance();
$eventManager->addEventHandler(
"sender",
"\Bitrix\Sender\ContactTable::onAfterAdd",
['myEvents','onBeforeAddHandler']
);
И где расположить сам код агента в структуре модуля
CIBlockSectionPropertyLink::Add($SECTION_ID, $PROPERTY_ID, $arLink = array())
CIBlockSectionPropertyLink::Delete($SECTION_ID, $PROPERTY_ID)
CIBlockSectionPropertyLink::DeleteByIBlock($IBLOCK_ID)
CIBlockSectionPropertyLink::DeleteByProperty($PROPERTY_ID)
CIBlockSectionPropertyLink::DeleteBySection($SECTION_ID)
CIBlockSectionPropertyLink::GetArray($IBLOCK_ID, $SECTION_ID = 0, $bNewSection = false)
$el = new CIBlockElement;
$fields = Array(
"NAME" => "1.3.1 Однопутная железная дорога"
);
$skuId = 8140;//ID торгового предложения
$res = $el->Update($skuId, $fields );
\Bitrix\Main\Service\GeoIp\Manager::getDataResult
является оберткой над обработчиками геолокации, которые расположены тут Настройки > Настройки продукта >Геолокация\Bitrix\Main\Service\GeoIp\Result
, иначе идет запрос через следующий обработчик.\Bitrix\Main\Service\GeoIp\SypexGeo
, который расположен тут /bitrix/modules/main/lib/service/geoip/sypexgeo.php$ob = new \Bitrix\Main\Service\GeoIp\SypexGeo();
$res = $ob->getDataResult("62.33.36.6");
print_r($res);
Bitrix\Main\Service\GeoIp\Result Object
(
[geoData:protected] => Bitrix\Main\Service\GeoIp\Data Object
(
[ip] => 62.33.36.6
[lang] => en
[countryName] => Russia
[regionName] => Tambovskaya Oblast'
[subRegionName] =>
[cityName] => Michurinsk
[countryCode] => RU
[regionCode] => RU-TAM
[zipCode] =>
[latitude] => 52.8978
[longitude] => 40.4907
[timezone] => Europe/Moscow
[asn] =>
[ispName] =>
[organizationName] =>
[handlerClass] =>
)
[isSuccess:protected] => 1
[errors:protected] => Bitrix\Main\ErrorCollection Object
(
[values:protected] => Array
(
)
)
[data:protected] => Array
(
)
)