PHPackages                             bushev/php-realtypult-partner-lib - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. bushev/php-realtypult-partner-lib

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

bushev/php-realtypult-partner-lib
=================================

API библиотека для интеграции с RealtyPult https://realtypult.ru

16PHP

Since Feb 7Pushed 9y ago2 watchersCompare

[ Source](https://github.com/bushev/php-realtypult-partner-lib)[ Packagist](https://packagist.org/packages/bushev/php-realtypult-partner-lib)[ RSS](/packages/bushev-php-realtypult-partner-lib/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

php-realtypult-partner-lib [![Build Status](https://camo.githubusercontent.com/4357b2bc00ea7e4f5201a446f6a7ded6f6df460de08509f53eab84b4051ca6fd/68747470733a2f2f7472617669732d63692e6f72672f6275736865762f7068702d7265616c747970756c742d706172746e65722d6c69622e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/bushev/php-realtypult-partner-lib)
=============================================================================================================================================================================================================================================================================================================================================================

[](#php-realtypult-partner-lib-)

API библиотека для интеграции с RealtyPult. Подключение портала недвижимости к [партнерской программе](https://realtypult.ru/partner/signup).

Нужна версия для NodeJS?
------------------------

[](#нужна-версия-для-nodejs)

Как установить
--------------

[](#как-установить)

Вы можете скачать последнюю версию библиотеки по ссылке:

Скопируйте файл `realtypult-importer.php` в ваш PHP проект и подключите его в коде:

```
require_once 'realtypult-importer.php';
```

Если вы используете Composer для управления зависимостями проекта, вы можете установить библиотеку для RealtyPult напрямую из репозитория.

Обновите ваш файл composer.json (добавьте новую зависимость):

```
{
  "require": {
    "bushev/php-realtypult-partner-lib": "^1.0"
  }
}
```

После чего выполните установку:

`php composer.phar install`

Как пользоваться
----------------

[](#как-пользоваться)

```
require_once 'realtypult-importer.php';

/**
 * Обработчик одного объявления
 *
 * Требуется реализовать алгоритм:
 *
 * 1. Проверить (по $item->id) размещали ли вы это объявления ранее
 *
 * Если не размещали:
 *      2.1 Сохраните объявление в вашей базе данных (не забудьте скачать себе изображения объекта)
 *      2.2 Верните объект (sdtClass) со ссылкой на объявление на вашем сайте
 *          Например:
 *              $result->url = 'http://your-site.ru/item-123';
 *              return $result;
 *
 *
 * Если размещали:
 *      2.1 Проверьте, изменилось ли обновление, если да то обновите его в вашей базе данных
 *          (не забудьте про изображения)
 *      2.2 Получите из вашей базы данных количество просмотров этого объявления (рекомендуется)
 *      2.2 Верните объект (sdtClass) со ссылкой на объявление на вашем сайте,
 *          и количеством просмотров (рекомендуется)
 *          Например:
 *              $result->url   = 'http://your-site.ru/item-123';
 *              $result->views = 15;
 *              return $result;
 *
 *
 * В случае если на каком-либо этапе вы понимаете что это объявление не может быть
 * обработано корректно, верните объект (sdtClass) с сообщением об ошибке
 * Например:
 *      $result->error = 'Произошел технический сбой';
 *      return $result;
 *
 *
 * Помните, что сообщение о об ошибке увидит конечный пользователь!
 *
 * Примеры частых ошибок:
 *
 * > Произошел технический сбой (проблема с базой данных, нет места на диске, и тп.)
 * > Не удалось определить адрес объекта
 * > И тп.
 *
 * В случае если в вашей базе данных есть очень похожее объявление, верните
 * объект (sdtClass) со ссылкой на это объявление (размещать это объявление не нужно)
 * Например:
 *      $result->similarUrl = 'http://your-site.ru/item2';
 *      return $result;
 *
 *
 * В случае если вы не можете разместить объявление в силу нарушений ваших правил,
 * верните объект (sdtClass) с сообщением пользователю
 * Например:
 *      $result->rejectReason = 'Номер телефона заблокирован';
 *      return $result;
 *
 * Примеры частых ошибок:
 *
 * > Номер телефона заблокирован
 * > Слишком низкая цена для этого объявления
 * > И тп.
 *
 * Помните, что сообщение об отклонении объявления увидит конечный пользователь!
 *
 *
 * @param $item - объект содержащий всю информацию об объявлении
 * @return stdClass - результат обработки
 */
$onItem = function ($item) {

    echo "Обрабатываем объявление #" . $item->id . "\r\n";

    print_r($item);

    $result = new \stdClass();

    // Успешно размещено
    // $result->url = 'http://your-site.ru/item-123';
    // $result->views = 15;

    // ИЛИ

    // Проблема с доступом к базе данных / Недостаточно памяти
    // $result->error = 'Произошел технический сбой';

    // ИЛИ

    // Объявление дубликат
    // $result->similarUrl = 'http://your-site.ru/item2';

    // ИЛИ

    // Не соответствует правилам вашего портала
    // $result->rejectReason = 'Номер телефона заблокирован';

    return $result;
};

/**
 * Обработчик конца импорта
 *
 * Здесь нужно удалить из вашей базы данных все объявления которые отсутствовали в
 * XML фиде (не забудьте удалить изображения)
 *
 * @param $report
 * @param $report ->location            - Путь до файла с готовым отчетом (ссылку на него нужно
 *                                        вставить в личный кабинет партнера)
 * @param $report ->statistics.total    - Общее число объявление в фиде
 * @param $report ->statistics.success  - Число объявление обработанных успешно
 * @param $report ->statistics.rejected - Число объявление отклоненных от публикации
 * @param $report ->statistics.errors   - Число объявление обработанных с ошибками
 */
$onEnd = function ($report) {

    echo "Обработка XML фида завершена!\r\n";

    var_dump($report);
};

/**
 * Обработчик ошибки обработки XML фида
 *
 * @param $error
 */
$onError = function ($error) {

    echo "Произошла ошибка " . $error . "\r\n";

    $this->assertEquals('I\'m here!', 'Should not be here!');
};

$options = new \stdClass();

// Ссылка на XML фид из личного кабинета партнера
$options->xmlFeedUrl = 'https://realtypult.ru/api/xml/export/partner/FORMAT/TOKEN';

// Путь к файлу отчета, файл будет создаваться автоматически
$options->reportFileLocation = '/var/www/my-site/public/rm-report.xml';

// Формат XML фида ('realtypult' или 'yandex')
$options->format = 'realtypult';

// Функция будет вызвана для каждого объявления из XML фида
$options->onItem = $onItem;

// Функция будет вызвана когда весь XML фид будет обработан
$options->onEnd = $onEnd;

// Функция будет вызвана в случае непредвиденной критической ошибки
$options->onError = $onError;

$importer = new \RealtyPultImporter($options);

// Запускаем импорт
$importer->run();
```

Код этого примера находится [тут](examples/example.php).

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/b70e390a79b7451240a865adb6633d861968cf707ed2093c03ed079503467d1e?d=identicon)[bushev](/maintainers/bushev)

---

Top Contributors

[![bushev](https://avatars.githubusercontent.com/u/7535766?v=4)](https://github.com/bushev "bushev (17 commits)")

---

Tags

api-realtypultpartnershipphprealtypultxml

### Embed Badge

![Health badge](/badges/bushev-php-realtypult-partner-lib/health.svg)

```
[![Health](https://phpackages.com/badges/bushev-php-realtypult-partner-lib/health.svg)](https://phpackages.com/packages/bushev-php-realtypult-partner-lib)
```

###  Alternatives

[mtdowling/jmespath.php

Declaratively specify how to extract elements from a JSON document

2.0k472.8M135](/packages/mtdowling-jmespathphp)[opis/closure

A library that can be used to serialize closures (anonymous functions) and arbitrary data.

2.6k230.0M283](/packages/opis-closure)[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M226](/packages/masterminds-html5)[sabberworm/php-css-parser

Parser for CSS Files written in PHP

1.8k191.2M63](/packages/sabberworm-php-css-parser)[michelf/php-markdown

PHP Markdown

3.5k52.4M343](/packages/michelf-php-markdown)[jms/metadata

Class/method/property metadata management in PHP

1.8k152.8M88](/packages/jms-metadata)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
