ИП Горелов Максим Николаевич 8 (915) 093-74-75
Получение товаров из категории на сайте Bitrix
Функция позволяет получить список товаров с сайта, работающего на платформе Битрикс, по заданным параметрам поиска. Вы можете указать URL сайта и параметры для фильтрации товаров.
Для работы функции создайте в корне сайта файл `api_products.php` со следующим кодом:
```
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
// Проверка, что запрос является POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
die(json_encode(array("error" => "Only POST requests are allowed")));
}
// Подключение необходимых модулей
CModule::IncludeModule("iblock");
// Получение параметров из POST-запроса
$postData = json_decode(file_get_contents('php://input'), true);
$site_url = $postData['site_url'] ?? null;
$searchName = $postData['name'] ?? '';
$categoryId = $postData['category_id'] ?? null;
$minPrice = $postData['min_price'] ?? null;
$maxPrice = $postData['max_price'] ?? null;
// Формирование фильтра
$arFilter = array(
"IBLOCK_ID" => 2,
"ACTIVE" => "Y"
);
if (!empty($searchName)) {
$arFilter["%NAME"] = $searchName;
}
if ($categoryId) {
$arFilter["SECTION_ID"] = $categoryId;
$arFilter["INCLUDE_SUBSECTIONS"] = "Y";
}
// Выборка товаров
//$arSelect = array("ID", "NAME", "DETAIL_PAGE_URL", "PREVIEW_PICTURE", "PROPERTY_PRICE", "CATALOG_QUANTITY");
$arSelect = array("*", "PROPERTY_*");
$arResult = array();
$res = CIBlockElement::GetList(array(), $arFilter, false, array("nPageSize" => 50), $arSelect);
while($ob = $res->GetNextElement()) {
$arFields = $ob->GetFields();
$arProps = $ob->GetProperties();
$imageUrl = CFile::GetPath($arFields["DETAIL_PICTURE"]);
$arFilter = array("PRODUCT_ID" => $arFields["ID"]);
$price = CPrice::GetList(array(), $arFilter)->Fetch();
$productPrice = $price["PRICE"];
if ($minPrice !== null) {
if ($productPrice < $minPrice) {
continue;
}
}
if ($maxPrice !== null) {
if ($productPrice > $maxPrice) {
continue;
}
}
// Проверяем, начинается ли URL с "/upload/"
if (strpos($imageUrl, '/upload/') === 0) {
$imageUrl = $site_url . $imageUrl;
}
$arResult[] = array(
```
Параметры, которые можно передать в функцию get_products_bitrix:
site_url - URL сайта для поиска товаров без / в конце.
paraments - параметры поиска в виде: name:id:min_price:max_price:limit##name:id:min_price:max_price:limit##.
- name - название товара может быть прочерком - для поиска без названия .
- id - ID категории товара.
- min_price - минимальная цена товара.
- max_price - максимальная цена товара.
- limit - сколько товаров должно быть в ответе. По умолчанию 10.
Примеры использования:
"Пожалуйста, покажи мне товары с сайта https://example.com с параметрами: электроника:-:100:1000:5##одежда:2:50:500:10##."
"Получить список товаров с сайта https://myshop.com, где название товара - и ID категории 3, с минимальной ценой 200 и максимальной 1500."
© ProTalk 2023-2025 ИП Горелов Максим Николаевич ИНН 500104951533 ОГРН 309500106900065
Новая, 8, 9 Реутов, Московская область 143964 Россия