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
(
)
)
/**
* @deprecated deprecated since catalog 17.5.9
* @see \Bitrix\Catalog\Product\Basket::add
*/
$oid = intval($_REQUEST["oid"]);
if ($oid > 0) {
foreach ($arResult['JS_OFFERS'] as $key => $jsOffer) {
if ($jsOffer["ID"] == $oid) {
$arResult['OFFERS_SELECTED'] = $key;
break;
}
}
}
$cities = \Bitrix\Sale\Location\LocationTable::getList([
"select" => ["*", 'NAME_RU' => 'RU_LAN.NAME'],
'runtime' => [
'RU_LAN' => [
'data_type' => \Bitrix\Sale\Location\Name\LocationTable::class,
'reference' => [
'=this.ID' => 'ref.LOCATION_ID',
'=ref.LANGUAGE_ID' => new \Bitrix\Main\DB\SqlExpression('?i', 'ru'),
],
['join_type' => 'LEFT']
],
]
])->fetchAll();
Внимание! При использовании этой технологии необходимо учитывать, что над результатами работы функций, обеспечивающих откладывание других функций, нельзя выполнять какие-либо действия.
Значение, возвращаемое отложенной функцией, не возвращается, а сразу выводится в месте вызова AddBufferContent, а всё, что выводится в отложенной функции, будет выведено до начала шаблона.
в компоненте новостей > в детальном шаблоне компонента устанавливаю
$APPLICATION->SetTitle("Заголовок 1"); //- задать заголовок страницы
$APPLICATION->SetPageProperty('title','Заголовок 2');// - тоже задать заголовок страницы (но эта функция имеет приоритет над первой)
<?$APPLICATION->ShowTitle()?> - показ заголовка страницы // покажет заголовок 1
<?$APPLICATION->ShowTitle(false)?> - показ заголовка страницы, заданного через SetTitle // покажет заголовок 2
<?
\Bitrix\Main\Loader::includeModule("sale");
\Bitrix\Main\Loader::includeModule("catalog");
\Bitrix\Sale\Order::load($orderId);
$basket = $order->getBasket();
$shipmentCollection = $order->getShipmentCollection();
$products = [1, 2, 3];
$quantity = 1;
$newBasketItems = [];
//Добавляем новые товары в корзину
foreach ($products as $productId) {
$item = $basket->createItem('catalog', $productId);
$item->setFields(array(
'QUANTITY' => $quantity,
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => $order->getSiteId(),
'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
));
$item->setField("QUANTITY", $quantity);
$newBasketItems[] = $item;
}
//Теперь эти товары надо добавить в отгрузку. В примере добавляю в первую попавшуюся
foreach ($shipmentCollection as $shipment) {
if (!$shipment->isSystem()) {
foreach ($newBasketItems as $newBasketItem) {
/** @var \Bitrix\Sale\Shipment $shipment */
$shipmentItemCollection = $shipment->getShipmentItemCollection();
$shipmentItem = $shipmentItemCollection->createItem($newBasketItem);
$shipmentItem->setQuantity($item->getQuantity());
}
break;
}
}
//Пересчитываем заказ
$discount = $order->getDiscount();
$result = new \Bitrix\Main\Result();
\Bitrix\Sale\DiscountCouponsManager::clearApply(true);
\Bitrix\Sale\DiscountCouponsManager::useSavedCouponsForApply(true);
$discount->setOrderRefresh(true);
$discount->setApplyResult(array());
$res = $basket->refreshData(array('PRICE', 'COUPONS'));
if (!$res->isSuccess())
$result->addErrors($res->getErrors());
$res = $discount->calculate();
if (!$res->isSuccess())
$result->addErrors($res->getErrors());
if (!$order->isCanceled() && !$order->isPaid()) {
/** @var \Bitrix\Sale\PaymentCollection $paymentCollection */
if (($paymentCollection = $order->getPaymentCollection()) && count($paymentCollection) == 1) {
/** @var \Bitrix\Sale\Payment $payment */
if (($payment = $paymentCollection->rewind()) && !$payment->isPaid()) {
$payment->setFieldNoDemand('SUM', $order->getPrice());
}
}
}
//Сохраняем заказ, а не корзину
//Если обработка идет в каком то событии заказа, то метод save вызывать не надо
$order->save();