### Example handler for OnAfterPartnerModerateReject Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafterpartnermoderatereject/ Example handler that sends an email notification using a predefined method and event prefix. ```php public static function onAfterPartnerModerateReject($arFields) { self::sendMail(self::EVENT_PREFIX . 'PARTNER_MODERATE_REJECT', $arFields['USER_ID']); } ``` -------------------------------- ### Example handler for OnAfterProductModerateConfirm Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafterproductmoderateconfirm/?print_course=Y Example PHP handler that extracts product name, ID, and type, then sends an email using a predefined event prefix. ```php public static function onAfterProductModerateConfirm($arFields, $productType) { $fields['PRODUCT_NAME'] = $arFields['NAME']; $fields['PRODUCT_ID'] = $arFields['PRODUCT_MODERATE_ID'] ?: $arFields['IBLOCK_ELEMENT_ID']; $fields['PRODUCT_TYPE'] = $productType == 'product' ? Loc::getMessage('SM_PRODUCT_TYPE_SIMPLE') : Loc::getMessage('SM_PRODUCT_TYPE_OFFER'); self::sendMail(self::EVENT_PREFIX . 'PRODUCT_MODERATE_CONFIRM', $fields); } ``` -------------------------------- ### Example handler for OnAfterProductModerateReject Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafterproductmoderatereject/ Example PHP handler that extracts product fields, determines product type, and sends an email using self::sendMail with the event prefix 'PRODUCT_MODERATE_REJECT'. ```php public static function onAfterProductModerateReject($arFields, $productType) { $fields['PRODUCT_NAME'] = $arFields['NAME']; $fields['MANAGER_COMMENT'] = $arFields['MANAGER_COMMENT']; $fields['PRODUCT_ID'] = $arFields['PRODUCT_MODERATE_ID'] ?: $arFields['IBLOCK_ELEMENT_ID']; $fields['PRODUCT_TYPE'] = $productType == 'product' ? Loc::getMessage('SM_PRODUCT_TYPE_SIMPLE') : Loc::getMessage('SM_PRODUCT_TYPE_OFFER'); self::sendMail(self::EVENT_PREFIX . 'PRODUCT_MODERATE_REJECT', $fields); } ``` -------------------------------- ### Example handler for OnCancelPartnerOrderPayment Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/oncancelpartnerorderpayment/?print_course=Y Example static method that sends an email using the event data. It calls self::sendMail with the event prefix 'ORDER_CANCEL_PAY' and the partner ID and order info. ```php public static function onCancelPartnerOrderPayment($id, $partnerOrderInfo, $order) { self::sendMail(self::EVENT_PREFIX . 'ORDER_CANCEL_PAY', [$id, $partnerOrderInfo]); } ``` -------------------------------- ### startPars Event Handler Example Source: https://www.sotbit.ru/docs/shs.parser/lesson/startpars/ Example of registering and implementing a handler for the StartPars event. The handler receives the parser ID and a reference to the parser object, allowing modification of the original variable. The event is called for all parser types. ```php AddEventHandler("shs.parser", "StartPars", Array("MyClass", "StartParsHandler")); class MyClass { // создаем обработчик события "StartPars" function StartParsHandler($ID, &$_this) { } } ``` -------------------------------- ### OnAfterIblockEntityAdd handler example Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafteriblockentityadd/?print_course=Y Example of a static method that handles the OnAfterIblockEntityAdd event. It retrieves user info, extracts entity type and name, and sends an email notification. ```PHP public static function onAfterIblockEntityAdd($arFields) { $fields = self::getUserInfo($arFields['USER_ID']); $fields['ENTITY_TYPE'] = $arFields['ENTITY']::getEntityName(); $fields['ENTITY_NAME'] = $arFields['FIELDS']['NAME']; $fields['ENTITY_ID'] = $arFields['ID']; self::sendMail(self::EVENT_PREFIX . 'IBLOCKENTITY_ADD', $fields); } ``` -------------------------------- ### OnAfterIblockEntityReject Handler Example Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafteriblockentityreject/?print_course=Y Example handler that retrieves user info, sets entity type and name, and sends an email using a predefined event prefix. Uses the entity class to get the entity name and accesses the NAME field from the FIELDS array. ```php public static function onAfterIblockEntityReject($arFields) { $fields = self::getUserInfo($arFields['USER_ID']); $fields['ENTITY_TYPE'] = $arFields['ENTITY']::getEntityName(); $fields['ENTITY_NAME'] = $arFields['FIELDS']['NAME']; self::sendMail(self::EVENT_PREFIX . 'IBLOCKENTITY_REJECT', $fields); } ``` -------------------------------- ### OnAfterAccountLocked Event Handler Example Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafteraccountlocked/?print_course=Y A static method example for handling the OnAfterAccountLocked event. It checks if the event is workable, retrieves partner fields, and adds a notification entry if a user is set. ```php public static function OnAfterAccountLocked($arFields, $type) { $funcName = __FUNCTION__; $arResult = NotificationEventsTable::isEventWorkable($funcName); if (!$arResult) { return; } $user = \SM_Partner::getPartnerFields(['ID' => $arFields['ENTITY_ID']], ['UF_USER']); if ($user['UF_USER']) { $replace = [$arFields['NOTES']]; NotificationNoticeTable::addEntry($arResult, $replace, $user['UF_USER']); } } ``` -------------------------------- ### OnAfterOrderCreate handler example Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafterordercreate/?print_course=Y Example static method that handles the OnAfterOrderCreate event. It retrieves user info, adds the shipment ID as the partner order ID, and sends an email using a prefixed event name. ```php public static function onAfterOrderCreate($arFields) { $fields = self::getUserInfo($arFields['USER_ID']); $fields['PARTNER_ORDER_ID'] = $arFields['SHIPMENT_ID']; self::sendMail(self::EVENT_PREFIX . 'ORDER_CREATE', $fields); } ``` -------------------------------- ### OnBeforeRenderMdSection Handler Example Source: https://www.sotbit.ru/docs/sotbit.llms/lesson/onbeforerendermdsection/ Example handler that modifies iblockId for site 's1' and returns an EventResult with SUCCESS status. ```php public static function OnBeforeRenderMdSection(Event $event): EventResult { $params = $event->getParameters(); $siteId = (string)($params['siteId'] ?? ''); $iblockId = (string)($params['iblockId'] ?? ''); $sectionId = (string)($params['sectionId'] ?? ''); // Пример: подмена iblockId для сайта s1 if ($siteId === 's1') { $iblockId = '15'; // другой инфоблок } return new EventResult( EventResult::SUCCESS, [ 'iblockId' => $iblockId, 'sectionId' => $sectionId ], 'sotbit.llms' ); } ``` -------------------------------- ### OnAfterRenderMdElement handler example Source: https://www.sotbit.ru/docs/sotbit.llms/lesson/onafterrendermdelement/?print_course=Y Example handler for the OnAfterRenderMdElement event. It retrieves parameters, appends metadata to the content, and returns a success EventResult with the modified content. ```php public static function OnAfterRenderMdElement(Event $event): EventResult { $params = $event->getParameters(); $content = (string)($params['content'] ?? ''); $siteId = (string)($params['siteId'] ?? ''); $iblockId = (string)($params['iblockId'] ?? ''); $elementId = (string)($params['elementId'] ?? ''); $mode = (string)($params['mode'] ?? 'generate'); $content .= "\n\n## Meta\n"; $content .= "- Сайт: {$siteId}\n"; $content .= "- Инфоблок: {$iblockId}\n"; $content .= "- Элемент: {$elementId}\n"; $content .= "- Режим: {$mode}"; return new EventResult( EventResult::SUCCESS, ['content' => $content], 'sotbit.llms' ); } ``` -------------------------------- ### OnBeforeRenderMdPage handler example Source: https://www.sotbit.ru/docs/sotbit.llms/lesson/onbeforerendermdpage/ Example event handler that modifies the originalPath for site 's1'. Returns an EventResult with the modified path. ```php public static function OnBeforeRenderMdPage(Event $event): EventResult { $params = $event->getParameters(); $siteId = (string)($params['siteId'] ?? ''); $originalPath = (string)($params['originalPath'] ?? ''); // Пример: подмена пути для сайта s1 if ($siteId === 's1') { $originalPath = '/custom/about.md'; } return new EventResult( EventResult::SUCCESS, ['originalPath' => $originalPath], 'sotbit.llms' ); } ``` -------------------------------- ### Installation code for sotbit:offerlist component Source: https://www.sotbit.ru/docs/sotbit.offerlist/lesson/sotbit-offerlist/ Place this code on a page in the public section to display the list of commercial offers. After adding, configure the component parameters. ```php $APPLICATION->IncludeComponent( "sotbit:offerlist", "", Array( "PROPERTY\_ARTICLE" => "", "PROPERTY\_ARTICLE\_OFFERS" => "", "SEF\_MODE" => "N", "SORT\_BY" => "", "SORT\_ORDER" => "asc", "VARIABLE\_ALIASES" => Array( "OFFER\_ID"=>"OFFER\_ID", "OFFER\_PRINT"=>"OFFER\_PRINT" ) ) ); ``` -------------------------------- ### GET /v1/support/file/{hash} Source: https://www.sotbit.ru/docs/sotbit.restapi/chapter/routes/?print_course=Y Возвращает прикрепленный к сообщению файл. Требует хэш ключ файла. ```APIDOC ## GET /v1/support/file/{hash} ### Description Возвращает прикрепленный к сообщению файл. ### Method GET ### Endpoint /v1/support/file/{hash} ### Parameters #### Path Parameters - **hash** (string) - Required - Хэш ключ файла ``` -------------------------------- ### OnAfterIblockEntityConfirm handler function example Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafteriblockentityconfirm/?print_course=Y Example PHP handler for the OnAfterIblockEntityConfirm event. It retrieves user info, sets entity type and name, and sends an email using a predefined event prefix. ```php public static function onAfterIblockEntityConfirm($arFields) { $fields = self::getUserInfo($arFields['USER_ID']); $fields['ENTITY_TYPE'] = $arFields['ENTITY']::getEntityName(); $fields['ENTITY_NAME'] = $arFields['FIELDS']['NAME']; self::sendMail(self::EVENT_PREFIX . 'IBLOCKENTITY_CONFIRM', $fields); } ``` -------------------------------- ### GET /v1/support Source: https://www.sotbit.ru/docs/sotbit.restapi/chapter/routes/?print_course=Y Возвращает параметры службы технической поддержки. ```APIDOC ## GET /v1/support ### Description Возвращает параметры службы технической поддержки. ### Method GET ### Endpoint /v1/support ``` -------------------------------- ### GET /v1/support Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/support/ Получение списка обращений в службу технической поддержки. ```APIDOC ## GET /v1/support ### Description Получение списка обращений в службу технической поддержки. ### Method GET ### Endpoint /v1/support ``` -------------------------------- ### GET /v1/support Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/support/ Retrieves the technical support settings. This endpoint returns the configuration for the support system. ```APIDOC ## GET /v1/support ### Description Retrieves the technical support settings. ### Method GET ### Endpoint /v1/support ### Response #### Success Response (200) Returns the support settings. #### Response Example (No example provided in source) ``` -------------------------------- ### OnAfterOrderCreate Event Handler Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafterordercreate/ Defines the event handler function signature and provides an example implementation for the OnAfterOrderCreate event. ```APIDOC ## OnAfterOrderCreate Event ### Description This event is triggered after an order is created. The handler receives an array of fields containing shipment and partner data. ### Method Event Handler ### Parameters - **arFields** (array) - Required - Data of the shipment and partner. ### Example Handler ```php public static function onAfterOrderCreate($arFields) { $fields = self::getUserInfo($arFields['USER_ID']); $fields['PARTNER_ORDER_ID'] = $arFields['SHIPMENT_ID']; self::sendMail(self::EVENT_PREFIX . 'ORDER_CREATE', $fields); } ``` ``` -------------------------------- ### OnAfterProductModerateAdd Handler Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafterproductmoderateadd/?print_course=Y Example of a handler function for the OnAfterProductModerateAdd event. It receives the product fields and type, and demonstrates sending an email notification. ```APIDOC ## OnAfterProductModerateAdd ### Description This event handler is called after a product is added for moderation. It allows developers to perform custom actions, such as sending notifications, based on the product data. ### Method Event Handler ### Parameters - **arFields** (array) - Required - Fields and properties of the product. - **productType** (string) - Required - Type of the product: 'offer' or 'product'. ### Request Example ```php public static function onAfterProductModerateAdd($arFields, $productType) { $fields['PRODUCT_NAME'] = $arFields['NAME']; $fields['PRODUCT_ID'] = $arFields['PRODUCT_MODERATE_ID']; $fields['ADMIN_LINK'] = $productType == 'offer' ? ('/bitrix/admin/sotbit.marketplace_offer_moderate.php?lang=ru&ID=' . $arFields['ID']) : ('/bitrix/admin/sotbit.marketplace_product_moderate.php?lang=ru&ID=' . $arFields['ID']); self::sendMail(self::EVENT_PREFIX . 'PRODUCT_MODERATE_ADD', $fields); } ``` ### Response No return value is specified. The handler is expected to perform side effects, such as sending emails. ``` -------------------------------- ### OnAfterRenderMdSection Handler Example Source: https://www.sotbit.ru/docs/sotbit.llms/lesson/onafterrendermdsection/?print_course=Y Example handler that appends metadata to the content and returns a new EventResult with the modified content. ```php public static function OnAfterRenderMdSection(Event $event): EventResult { $params = $event->getParameters(); $content = (string)($params['content'] ?? ''); $siteId = (string)($params['siteId'] ?? ''); $iblockId = (string)($params['iblockId'] ?? ''); $sectionId = (string)($params['sectionId'] ?? ''); $content .= "\n\n## Meta\n"; $content .= "- Сайт: {$siteId}\n"; $content .= "- Инфоблок: {$iblockId}\n"; $content .= "- Раздел: {$sectionId}"; return new EventResult( EventResult::SUCCESS, ['content' => $content], 'sotbit.llms' ); } ``` -------------------------------- ### startPars Source: https://www.sotbit.ru/docs/shs.parser/lesson/startpars/?print_course=Y Событие вызывается в начале парсинга и может быть использовано для фиксации старта и переопределения некоторых переменных. Параметры: ID (идентификатор парсера) и _this (переменная, содержащая все поля парсера). Второй параметр является ссылкой на исходную переменную this, поэтому изменения внутри обработчика влияют на исходную переменную. ```APIDOC ## Событие startPars ### Description Событие вызывается в начале парсинга и может быть использовано для фиксации старта и переопределения некоторых переменных. Вызывается для всех типов парсера. ### Parameters - **ID** (mixed) - Идентификатор парсера - **_this** (object) - Переменная, содержащая все поля парсера. Является ссылкой на исходную переменную `this`, поэтому изменения внутри обработчика влияют на исходную переменную. ### Example ```php AddEventHandler("shs.parser", "StartPars", Array("MyClass", "StartParsHandler")); class MyClass { // создаем обработчик события "StartPars" function StartParsHandler($ID, &$_this) { } } ``` ### Notes - При помощи переменной `$_this->rss` можно разграничивать условия для разных сайтов. - Событие вызывается для всех типов парсера. ``` -------------------------------- ### Вызов компонента sotbit:rvw.base в component_epilog.php Source: https://www.sotbit.ru/docs/sotbit.reviews/lesson/sotbit-rvw-base/?print_course=Y Код вызова компонента sotbit:rvw.base для отображения блока отзывов. Рекомендуется размещать в некешируемой области, например в файле component_epilog.php. Параметры: ID_ELEMENT, SHOW_REVIEWS, DEFAULT_RATING_ACTIVE, REVIEWS_TEXTBOX_MAXLENGTH, CACHE_TYPE, CACHE_TIME. ```php IncludeComponent( "sotbit:rvw.base", "", Array( "ID\_ELEMENT" => $arResult\["ID"\], "SHOW\_REVIEWS" => "Y", "DEFAULT\_RATING\_ACTIVE" => "5", "REVIEWS\_TEXTBOX\_MAXLENGTH" => "200", "CACHE\_TYPE" => "A", "CACHE\_TIME" => "36000000" ) );?> ``` -------------------------------- ### Use Bitrix\Main\Event and EventResult Source: https://www.sotbit.ru/docs/sotbit.llms/lesson/onafterrendermdelement/?print_course=Y Imports the necessary Bitrix classes for the event handler. ```php use Bitrix\Main\Event; use Bitrix\Main\EventResult; ``` -------------------------------- ### Установка области вывода с SetViewTarget и EndViewTarget Source: https://www.sotbit.ru/docs/sotbit.seometa/lesson/seo-manual-setting-seometa/ Код для пометки области вывода верхнего описания с именем 'sotbit_seometa_top_desc' и вывода описания. Размещается после вызова компонента sotbit:seo.meta. ```php global $sotbitSeoMetaTopDesc;//для установки верхнего описания $this–>SetViewTarget('sotbit_seometa_top_desc'); //помечаем область для вывода с именем "sotbit_seometa_top_desc", имя может быть любым, главное чтоб было уникальным echo $sotbitSeoMetaTopDesc;//вывод верхнего описания $this–>EndViewTarget(); ``` -------------------------------- ### Вызов компонента sotbit:multilang.choose Source: https://www.sotbit.ru/docs/sotbit.multilang/lesson/sotbit-multilang-choose/ Пример размещения компонента в публичной части сайта для отображения переключателя языка. После добавления необходимо настроить параметры: COMPONENT_TEMPLATE, ADD_GET_PARAM (Y/N) и GET_PARAM. ```php $APPLICATION->IncludeComponent( "sotbit:multilang.choose", "", Array( "COMPONENT\_TEMPLATE" => "", "ADD\_GET\_PATAM" => "N", "GET\_PARAM" => "", ), false ); ``` -------------------------------- ### Вывод тегов через отложенную функцию ShowViewContent Source: https://www.sotbit.ru/docs/sotbit.seometa/lesson/seo-manual-setting-seometacustomtags/ Функция для вывода содержимого, сохраненного с помощью AddViewContent. Вставляется в часть кода страницы, где необходимо вывести теги. ```php $APPLICATION\->ShowViewContent('sotbit\_seometa\_custom\_tags');//вывод тегов ``` -------------------------------- ### OnAfterWithdrawalApprove handler function example Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafterwithdrawalapprove/ Example PHP handler for the OnAfterWithdrawalApprove event. It checks if the event is workable using NotificationEventsTable::isEventWorkable(), and if so, sends a notification via NotificationNoticeTable::addEntry() when the UF_USER field is set. ```php public static function OnAfterWithdrawalApprove($collectValues, $entityFields) { $funcName = __FUNCTION__; $arResult = NotificationEventsTable::isEventWorkable($funcName); if (!$arResult) { return; } if ($entityFields['UF_USER']) { $replace = [$collectValues['MANAGER_COMMENT']]; NotificationNoticeTable::addEntry($arResult, $replace, $entityFields['UF_USER']); } } ``` -------------------------------- ### IncludeComponent call for sotbit:offerlist.pricelist Source: https://www.sotbit.ru/docs/sotbit.offerlist/lesson/sotbit-offerlist-pricelist/?print_course=Y Place this code on a page to display the price list component. After adding, configure the parameters as described in the table. ```php $APPLICATION->IncludeComponent( "sotbit:offerlist.pricelist", "", Array( "PROPERTY\_ARTICLE" => "", "PROPERTY\_ARTICLE\_OFFERS" => "", "SEF\_MODE" => "N", "VARIABLE\_ALIASES" => Array( "ELEMENT\_ID" => "ELEMENT\_ID", "print" => "print" ) ) ); ``` -------------------------------- ### Вызов компонента sotbit:rvw.questions Source: https://www.sotbit.ru/docs/sotbit.reviews/lesson/sotbit-rvw-questions/ Пример кода для вызова компонента sotbit:rvw.questions в некешируемой области, например в файле component_epilog.php. Параметры: ID_ELEMENT (ID элемента), TEXTBOX_MAXLENGTH (максимальная длина текста вопроса), CACHE_TYPE (тип кеширования), CACHE_TIME (время кеширования в секундах). ```php $APPLICATION->IncludeComponent( "sotbit:rvw.questions", "", Array( "ID_ELEMENT" => $arResult["ID"], "TEXTBOX_MAXLENGTH" => "200", "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000" ) ); ``` -------------------------------- ### Вызов компонента sotbit:multilang.choose Source: https://www.sotbit.ru/docs/sotbit.multilang/lesson/sotbit-multilang-choose/?print_course=Y Код для размещения компонента в публичной части сайта. После добавления необходимо настроить параметры. ```php $APPLICATION->IncludeComponent( "sotbit:multilang.choose", "", Array( "COMPONENT_TEMPLATE" => "", "ADD_GET_PARAM" => "N", "GET_PARAM" => "", ), false ); ``` -------------------------------- ### GET /v1/orders/deliveries Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/ Получение списка доставок. ```APIDOC ## GET /v1/orders/deliveries ### Description Получение списка доставок. ### Method GET ### Endpoint /v1/orders/deliveries ### Response #### Success Response (200) Список доставок. ``` -------------------------------- ### Обработчик Product для component_epilog.php Source: https://www.sotbit.ru/docs/sotbit.schemaorg/lesson/schema_org_installation_handler/ Вставляется в эпилог шаблона компонента catalog.element (component_epilog.php). Вызывает обработчик для типа 'Product' и обновляет данные через SchemaMain::setData. Не содержит дополнительной логики, только вызов и сохранение. ```php < if( BitrixMainLoader::includeModule('sotbit.schemaorg') && strpos($APPLICATION->GetCurPage(), "bitrix") === false ) { SotbitSchemaorgEventHandlers::makeContent($APPLICATION->GetCurPage(false), 'Product'); $data = SchemaMain::getData(); SchemaMain::setData($data); } ?> ``` -------------------------------- ### GET /v1/orders/statuses Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/ Получение статусов заказов. ```APIDOC ## GET /v1/orders/statuses ### Description Получение статусов заказов. ### Method GET ### Endpoint /v1/orders/statuses ### Response #### Success Response (200) Список статусов заказов. ``` -------------------------------- ### IncludeComponent call for sotbit:offerlist.pricelist.add Source: https://www.sotbit.ru/docs/sotbit.offerlist/lesson/sotbit-offerlist-pricelist-add/ Example of including the sotbit:offerlist.pricelist.add component in a Bitrix template. The AJAX_CALL parameter is set to 'N' and DETAIL_PAGE_URL points to the price list detail page with the ID placeholder. ```PHP $APPLICATION->IncludeComponent( "sotbit:offerlist.pricelist.add", "", Array( "AJAX\_CALL" => "N", "DETAIL\_PAGE\_URL" => "/offers/pricelist/?ID=#ID#" ) ); ``` -------------------------------- ### Call sotbit:rvw.questions.add component Source: https://www.sotbit.ru/docs/sotbit.reviews/lesson/sotbit-rvw-questions-add/ Place this call in the detail page template (e.g., bitrix:catalog.element or bitrix:news.detail), preferably in a non-cached area like component_epilog.php. The ID_ELEMENT parameter should be set to the variable holding the element ID. ```php $APPLICATION->IncludeComponent( "sotbit:rvw.questions.add", "", Array( "ID\_ELEMENT" => $arResult\["ID"\], "TEXTBOX\_MAXLENGTH" => "200", "CACHE\_TYPE" => "A", "CACHE\_TIME" => "36000000" ) ); ``` -------------------------------- ### GET /v1/users Source: https://www.sotbit.ru/docs/sotbit.restapi/chapter/routes/?print_course=Y Возвращает список пользователей. ```APIDOC ## GET /v1/users ### Description Возвращает список пользователей. ### Method GET ### Endpoint /v1/users ``` -------------------------------- ### GET /v1/orders/persontypes Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/ Получение списка типов плательщиков. ```APIDOC ## GET /v1/orders/persontypes ### Description Получение списка типов плательщиков. ### Method GET ### Endpoint /v1/orders/persontypes ### Response #### Success Response (200) Список типов плательщиков. ``` -------------------------------- ### GET /v1/orders/paysystem Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/ Получение списка платежных систем. ```APIDOC ## GET /v1/orders/paysystem ### Description Получение списка платежных систем. ### Method GET ### Endpoint /v1/orders/paysystem ### Response #### Success Response (200) Список платежных систем. ``` -------------------------------- ### Вывод описаний через отложенные функции ShowViewContent Source: https://www.sotbit.ru/docs/sotbit.seometa/lesson/seo-manual-setting-seometa/ Функции для вывода верхнего, нижнего и дополнительного описаний в прологе страницы с помощью ShowViewContent. Вставляются в часть кода страницы, где необходимо вывести описание. ```php $APPLICATION->ShowViewContent('sotbit_seometa_top_desc');//вывод верхнего описания $APPLICATION->ShowViewContent('sotbit_seometa_bottom_desc');//вывод нижнего описания $APPLICATION->ShowViewContent('sotbit_seometa_add_ desc');//вывод доп. описания ``` -------------------------------- ### GET /v1/orders/persontypes Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/?print_course=Y Получение списка типов плательщиков. ```APIDOC ## GET /v1/orders/persontypes ### Description Получение списка типов плательщиков. ### Method GET ### Endpoint /v1/orders/persontypes ``` -------------------------------- ### startPars Event Handler Source: https://www.sotbit.ru/docs/shs.parser/lesson/startpars/ Example of registering and implementing a handler for the startPars event. The handler receives the parser ID and a reference to the parser object, allowing modification of parser fields. ```APIDOC ## Event: startPars ### Description The event is called at the beginning of parsing and can be used to record the start and override some variables. ### Parameters - **ID** (int) - Required - Identifier of the parser. - **_this** (object) - Required - Variable containing all parser fields. This is a reference to the original `this` variable, so changes affect the original. ### Example Handler ```php AddEventHandler("shs.parser", "StartPars", Array("MyClass", "StartParsHandler")); class MyClass { // создаем обработчик события "StartPars" function StartParsHandler($ID, &$_this) { } } ``` ### Notes - Use `$_this->rss` to differentiate conditions for different sites. - The event is called for all parser types. ``` -------------------------------- ### GET /v1/orders/paysystem Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/?print_course=Y Получение списка платежных систем. ```APIDOC ## GET /v1/orders/paysystem ### Description Получение списка платежных систем. ### Method GET ### Endpoint /v1/orders/paysystem ``` -------------------------------- ### GET /v1/orders/statuses Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/?print_course=Y Получение списка статусов заказов. ```APIDOC ## GET /v1/orders/statuses ### Description Получение статусов заказов. ### Method GET ### Endpoint /v1/orders/statuses ``` -------------------------------- ### POST [адрес сайта]/marketplace_api/product/add Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/import-tovarov-iz-fida/ HTTP POST запрос для добавления или изменения товаров. Требуется API ключ в заголовке. Тело запроса может содержать XML, base64 Excel или ссылку на файл. ```APIDOC ## [POST] [адрес сайта]/marketplace_api/product/add ### Description Добавление или изменение товаров через API. Требуется API ключ в заголовке запроса. ### Method POST ### Endpoint [адрес сайта]/marketplace_api/product/add ### Headers - **API ключ** (string) - Required - Ключ авторизации поставщика, генерируется в системе. ### Request Body Формат тела зависит от выбранного формата товарного фида: - **application/xml** - Полное содержимое XML файла. - **text/plain** - Содержимое файла Excel в формате base64 или ссылка на загрузку файла. ### Request Example ``` (тело запроса зависит от формата) ``` ### Response #### Success Response (200) - Успешное выполнение запроса (детали не описаны в источнике). #### Response Example ``` (не описано в источнике) ``` ``` -------------------------------- ### Call sotbit:rvw.reviews.list component Source: https://www.sotbit.ru/docs/sotbit.reviews/lesson/sotbit-rvw-reviews-list/?print_course=Y Place this call in the detail page template (e.g., bitrix:catalog.element or bitrix:news.detail), preferably in a non-cached area like component_epilog.php. The example sets ID_ELEMENT from $arResult["ID"], COUNT_PAGE to 10, CACHE_TYPE to "A", and CACHE_TIME to 36000000. ```php IncludeComponent( "sotbit:rvw.reviews.list", "", Array( "ID_ELEMENT" => $arResult["ID"], "COUNT_PAGE" => "10", "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000" ) );?> ``` -------------------------------- ### GET /v1/orders/persontypes Source: https://www.sotbit.ru/docs/sotbit.restapi/chapter/routes/?print_course=Y Возвращает список типов плательщика. ```APIDOC ## GET /v1/orders/persontypes ### Description Возвращает список типов плательщика. ### Method GET ### Endpoint /v1/orders/persontypes ``` -------------------------------- ### GET /v1/orders/paysystem Source: https://www.sotbit.ru/docs/sotbit.restapi/chapter/routes/?print_course=Y Возвращает список служб оплаты. ```APIDOC ## GET /v1/orders/paysystem ### Description Возвращает список служб оплаты. ### Method GET ### Endpoint /v1/orders/paysystem ``` -------------------------------- ### GET /v1/orders/deliveries Source: https://www.sotbit.ru/docs/sotbit.restapi/chapter/routes/?print_course=Y Возвращает список служб доставки. ```APIDOC ## GET /v1/orders/deliveries ### Description Возвращает список служб доставки. ### Method GET ### Endpoint /v1/orders/deliveries ``` -------------------------------- ### Подключение компонента sotbit:regions.choose Source: https://www.sotbit.ru/docs/sotbit.regions/lesson/sotbit-regions-choose/ Пример вызова компонента выбора региона с шаблоном 'location' и параметром FROM_LOCATION = 'Y'. Вставьте этот код в желаемое место, например, в шапку сайта. Параметр FROM_LOCATION включает режим работы с местоположениями, COMPONENT_TEMPLATE задает шаблон компонента. ```php $APPLICATION->IncludeComponent( "sotbit:regions.choose", "location", array( "FROM_LOCATION" => "Y", "COMPONENT_TEMPLATE" => "location" ), false ); ``` -------------------------------- ### GET /v1/orders/statuses Source: https://www.sotbit.ru/docs/sotbit.restapi/chapter/routes/?print_course=Y Возвращает список статусов заказа. ```APIDOC ## GET /v1/orders/statuses ### Description Возвращает список статусов заказа. ### Method GET ### Endpoint /v1/orders/statuses ``` -------------------------------- ### GET /v1/orders/{id} Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/ Получение заказа по ID. ```APIDOC ## GET /v1/orders/{id} ### Description Получение заказа по ID. ### Method GET ### Endpoint /v1/orders/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - Идентификатор заказа. ### Response #### Success Response (200) Данные заказа. ``` -------------------------------- ### PHP handler for OnAfterExtendedQuestionAdd event Source: https://www.sotbit.ru/docs/sotbit.marketplace/lesson/onafterextendedquestionadd/?print_course=Y Example event handler that receives a Bitrix\Main\Event, extracts EVENT_PARAMS and PARTNER_ID, and logs them via AddMessage2Log. The PARTNER_ID may be null if not found. ```php use Bitrix\Main\Event; function onAfterExtendedQuestionAddHandler(Event $event): void { $params = (array)$event->getParameters(); $eventParams = $params['EVENT_PARAMS'] ?? []; $partnerId = $params['PARTNER_ID'] ?? null; // Example: for logging AddMessage2Log( 'OnAfterExtendedQuestionAdd: partner=' . var_export($partnerId, true) . '; event=' . print_r($eventParams, true), 'sotbit.marketplace' ); } ``` -------------------------------- ### IncludeComponent call for sotbit:offerlist.pricelist.add Source: https://www.sotbit.ru/docs/sotbit.offerlist/lesson/sotbit-offerlist-pricelist-add/?print_course=Y PHP code to include the component in a Bitrix page. The AJAX_CALL parameter is set to 'N' and DETAIL_PAGE_URL is set to '/offers/pricelist/?ID=#ID#'. ```php $APPLICATION->IncludeComponent( "sotbit:offerlist.pricelist.add", "", Array( "AJAX\_CALL" => "N", "DETAIL\_PAGE\_URL" => "/offers/pricelist/?ID=#ID#" ) ); ``` -------------------------------- ### GET /v1/orders/statuses Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/?print_course=Y Retrieves the list of all possible order statuses. ```APIDOC ## GET /v1/orders/statuses ### Description Retrieves the list of all possible order statuses. ### Method GET ### Endpoint /v1/orders/statuses ### Response #### Success Response (200) - **code** (integer) - HTTP status code. - **status** (string) - Status of the response (e.g., "success"). - **message** (object) - Map of status codes to descriptions. - **timestamp** (integer) - Unix timestamp of the response. #### Response Example ```json { "code": 200, "status": "success", "message": { "N": "Принят, ожидается оплата", "P": "Оплачен, формируется к отправке", "F": "Выполнен", "DN": "Ожидает обработки", "DA": "Комплектация заказа", "DG": "Ожидаем приход товара", "DT": "Ожидаем забора транспортной компанией", "DS": "Передан в службу доставки", "DF": "Отгружен" }, "timestamp": 1612770677 } ``` ``` -------------------------------- ### GET /v1/orders/deliveries Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/?print_course=Y Получение списка доступных служб доставки. ```APIDOC ## GET /v1/orders/deliveries ### Description Получение списка доставок. ### Method GET ### Endpoint /v1/orders/deliveries ``` -------------------------------- ### SotbitPrivatePriceMain::setPlaceholder() Source: https://www.sotbit.ru/docs/sotbit.privateprice/lesson/placeholder/ Метод возвращает индивидуальную цену для товара по указанному идентификатору (ID или XML_ID) из таблицы индивидуальных цен. Если индивидуальная цена не найдена, возвращает текущую цену товара. Цена форматируется согласно настройкам валюты. ```APIDOC ## SotbitPrivatePriceMain::setPlaceholder() ### Description Метод возвращает индивидуальную цену для товара по указанному идентификатору (ID или XML_ID) из таблицы индивидуальных цен. Если индивидуальная цена не найдена, возвращает текущую цену товара. Цена форматируется согласно настройкам валюты. ### Method setPlaceholder ### Parameters - **идентификатор_товара** (mixed) - Required - ID товара или XML_ID товара - **текущая_цена_товара** (mixed) - Required - Текущая цена товара ### Return Value - Индивидуальная цена, если найдена, иначе текущая цена товара. Цена отформатирована согласно настройкам валюты (например, 10 990 руб.) и в валюте каталога по настроенному курсу. ### Example ```php $privatePrice = SotbitPrivatePriceMain::setPlaceholder( $item['ID'], $price['HIGHEST_PRICE']); ``` ``` -------------------------------- ### Call sotbit:rvw.base component Source: https://www.sotbit.ru/docs/sotbit.reviews/lesson/sotbit-rvw-base/ Place this call in the detail page template (e.g., component_epilog.php) to display the reviews block. The component automatically includes add, list, filter, and statistics components. Parameters include ID_ELEMENT, SHOW_REVIEWS, DEFAULT_RATING_ACTIVE, REVIEWS_TEXTBOX_MAXLENGTH, CACHE_TYPE, and CACHE_TIME. ```php IncludeComponent( "sotbit:rvw.base", "", Array( "ID_ELEMENT" => $arResult["ID"], "SHOW_REVIEWS" => "Y", "DEFAULT_RATING_ACTIVE" => "5", "REVIEWS_TEXTBOX_MAXLENGTH" => "200", "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000" ) );?> ``` -------------------------------- ### Вызов компонента sotbit:offerlist Source: https://www.sotbit.ru/docs/sotbit.offerlist/lesson/sotbit-offerlist/?print_course=Y Код для размещения на странице публичной части, чтобы вывести список коммерческих предложений. После добавления необходимо настроить параметры компонента. ```php $APPLICATION->IncludeComponent( "sotbit:offerlist", "", Array( "PROPERTY\_ARTICLE" => "", "PROPERTY\_ARTICLE\_OFFERS" => "", "SEF\_MODE" => "N", "SORT\_BY" => "", "SORT\_ORDER" => "asc", "VARIABLE\_ALIASES" => Array( "OFFER\_ID"=>"OFFER\_ID", "OFFER\_PRINT"=>"OFFER\_PRINT" ) ) ); ``` -------------------------------- ### parserAfterAddElementCSV event handler example Source: https://www.sotbit.ru/docs/shs.parser/lesson/parserafteraddelementcsv/ Example of registering an event handler for the parserAfterAddElementCSV event using AddEventHandler. The handler receives references to $_this and $el, allowing modification of the original variables. Returning false prevents the element from being created. This event only fires for CSV parser type. ```php AddEventHandler("shs.parser", "parserAfterAddElementCSV", Array("MyClass", "parserAfterAddElementCSVHandler")); class MyClass { // создаем обработчик события "parserAfterAddElementCSV" function parserAfterAddElementCSVHandler(&$_this, &$el) { } } ``` -------------------------------- ### GET /v1/orders/status/{id} Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/ Получение статуса заказа по ID. ```APIDOC ## GET /v1/orders/status/{id} ### Description Получение статуса заказа по ID. ### Method GET ### Endpoint /v1/orders/status/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - Идентификатор заказа. ### Response #### Success Response (200) Статус заказа. ``` -------------------------------- ### Call sotbit:rvw.questions component Source: https://www.sotbit.ru/docs/sotbit.reviews/lesson/sotbit-rvw-questions/?print_course=Y Place this PHP code in the detail page template (e.g., bitrix:catalog.element or bitrix:news.detail), preferably in a non-cached area like component_epilog.php. It includes the component with parameters ID_ELEMENT, TEXTBOX_MAXLENGTH, CACHE_TYPE, and CACHE_TIME. ```PHP $APPLICATION->IncludeComponent( "sotbit:rvw.questions", "", Array( "ID\_ELEMENT" => $arResult\["ID"\], "TEXTBOX\_MAXLENGTH" => "200", "CACHE\_TYPE" => "A", "CACHE\_TIME" => "36000000" ) ); ``` -------------------------------- ### GET /v1/orders/status/{id} Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/?print_course=Y Retrieves the status of a specific order by its ID. ```APIDOC ## GET /v1/orders/status/{id} ### Description Retrieves the status of a specific order by its ID. ### Method GET ### Endpoint /v1/orders/status/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the order. ### Response #### Success Response (200) - **code** (integer) - HTTP status code. - **status** (string) - Status of the response (e.g., "success"). - **message** (string) - The status code of the order (e.g., "F"). - **timestamp** (integer) - Unix timestamp of the response. #### Response Example ```json { "code": 200, "status": "success", "message": "F", "timestamp": 1612770632 } ``` ``` -------------------------------- ### Include sotbit:seo.meta.tags component Source: https://www.sotbit.ru/docs/sotbit.seometa/lesson/seo-manual-setting-seometatags/ This code includes the sotbit:seo.meta.tags component with parameters for caching, sorting, and section selection. It should be placed below the sotbit:seo.meta component. ```php < $APPLICATION->IncludeComponent( "sotbit:seo.meta.tags", ".default", Array( "CACHE_GROUPS" => $arParams["CACHE_GROUPS"], "CACHE_TIME" => $arParams["CACHE_TIME"], "CACHE_TYPE" => $arParams["CACHE_TYPE"], "CNT_TAGS" => "", "IBLOCK_ID" => $arParams["IBLOCK_ID"], "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "INCLUDE_SUBSECTIONS" => $arParams["INCLUDE_SUBSECTIONS"], "INCLUDE_PARENTSECTIONS" => $arParams["INCLUDE_PARENTSECTIONS"], "SECTION_ID" => $arCurSection['ID'], "SORT" => "CONDITIONS", "SORT_ORDER" => "desc", "COMPONENT_TEMPLATE" => ".default", ) ); ?> ``` -------------------------------- ### GET /v1/orders/{id} Source: https://www.sotbit.ru/docs/sotbit.restapi/lesson/orders/?print_course=Y Получение заказа по его ID. ```APIDOC ## GET /v1/orders/{id} ### Description Получение заказа по ID. ### Method GET ### Endpoint /v1/orders/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - Идентификатор заказа. ```