{"id":16738961,"url":"https://github.com/bushev/php-realtypult-partner-lib","last_synced_at":"2025-03-15T22:40:31.111Z","repository":{"id":62498342,"uuid":"77863065","full_name":"bushev/php-realtypult-partner-lib","owner":"bushev","description":"API библиотека для интеграции с RealtyPult","archived":false,"fork":false,"pushed_at":"2017-02-07T10:14:03.000Z","size":15,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-22T11:39:08.162Z","etag":null,"topics":["api-realtypult","partnership","php","realtypult","xml"],"latest_commit_sha":null,"homepage":"https://realtypult.ru/partner/signup","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bushev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-02T21:30:50.000Z","updated_at":"2017-02-07T10:07:45.000Z","dependencies_parsed_at":"2022-11-02T11:46:26.725Z","dependency_job_id":null,"html_url":"https://github.com/bushev/php-realtypult-partner-lib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bushev%2Fphp-realtypult-partner-lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bushev%2Fphp-realtypult-partner-lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bushev%2Fphp-realtypult-partner-lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bushev%2Fphp-realtypult-partner-lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bushev","download_url":"https://codeload.github.com/bushev/php-realtypult-partner-lib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243801610,"owners_count":20350106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-realtypult","partnership","php","realtypult","xml"],"created_at":"2024-10-13T00:33:11.432Z","updated_at":"2025-03-15T22:40:31.040Z","avatar_url":"https://github.com/bushev.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# php-realtypult-partner-lib [![Build Status](https://travis-ci.org/bushev/php-realtypult-partner-lib.svg?branch=master)](https://travis-ci.org/bushev/php-realtypult-partner-lib)\n\nAPI библиотека для интеграции с RealtyPult. Подключение портала недвижимости к [партнерской программе](https://realtypult.ru/partner/signup).\n\n## Нужна версия для NodeJS?\n\n[https://github.com/bushev/nodejs-realtypult-partner-lib](https://github.com/bushev/nodejs-realtypult-partner-lib)\n\n## Как установить\n\nВы можете скачать последнюю версию библиотеки по ссылке:\n\n[https://github.com/bushev/php-realtypult-partner-lib/archive/master.zip](https://github.com/bushev/php-realtypult-partner-lib/archive/master.zip)\n\nСкопируйте файл `realtypult-importer.php` в ваш PHP проект и подключите его в коде:\n\n``` php\nrequire_once 'realtypult-importer.php';\n```\n\nЕсли вы используете Composer для управления зависимостями проекта, вы можете установить библиотеку для RealtyPult напрямую из репозитория.\n\nОбновите ваш файл composer.json (добавьте новую зависимость):\n\n``` json\n{\n  \"require\": {\n    \"bushev/php-realtypult-partner-lib\": \"^1.0\"\n  }\n}\n```\n\nПосле чего выполните установку:\n\n`php composer.phar install`\n\n## Как пользоваться\n\n``` php\nrequire_once 'realtypult-importer.php';\n\n/**\n * Обработчик одного объявления\n *\n * Требуется реализовать алгоритм:\n *\n * 1. Проверить (по $item-\u003eid) размещали ли вы это объявления ранее\n *\n * Если не размещали:\n *      2.1 Сохраните объявление в вашей базе данных (не забудьте скачать себе изображения объекта)\n *      2.2 Верните объект (sdtClass) со ссылкой на объявление на вашем сайте\n *          Например:\n *              $result-\u003eurl = 'http://your-site.ru/item-123';\n *              return $result;\n *\n *\n * Если размещали:\n *      2.1 Проверьте, изменилось ли обновление, если да то обновите его в вашей базе данных\n *          (не забудьте про изображения)\n *      2.2 Получите из вашей базы данных количество просмотров этого объявления (рекомендуется)\n *      2.2 Верните объект (sdtClass) со ссылкой на объявление на вашем сайте,\n *          и количеством просмотров (рекомендуется)\n *          Например:\n *              $result-\u003eurl   = 'http://your-site.ru/item-123';\n *              $result-\u003eviews = 15;\n *              return $result;\n *\n *\n * В случае если на каком-либо этапе вы понимаете что это объявление не может быть\n * обработано корректно, верните объект (sdtClass) с сообщением об ошибке\n * Например:\n *      $result-\u003eerror = 'Произошел технический сбой';\n *      return $result;\n *\n *\n * Помните, что сообщение о об ошибке увидит конечный пользователь!\n *\n * Примеры частых ошибок:\n *\n * \u003e Произошел технический сбой (проблема с базой данных, нет места на диске, и тп.)\n * \u003e Не удалось определить адрес объекта\n * \u003e И тп.\n *\n * В случае если в вашей базе данных есть очень похожее объявление, верните\n * объект (sdtClass) со ссылкой на это объявление (размещать это объявление не нужно)\n * Например:\n *      $result-\u003esimilarUrl = 'http://your-site.ru/item2';\n *      return $result;\n *\n *\n * В случае если вы не можете разместить объявление в силу нарушений ваших правил,\n * верните объект (sdtClass) с сообщением пользователю\n * Например:\n *      $result-\u003erejectReason = 'Номер телефона заблокирован';\n *      return $result;\n *\n * Примеры частых ошибок:\n *\n * \u003e Номер телефона заблокирован\n * \u003e Слишком низкая цена для этого объявления\n * \u003e И тп.\n *\n * Помните, что сообщение об отклонении объявления увидит конечный пользователь!\n *\n *\n * @param $item - объект содержащий всю информацию об объявлении\n * @return stdClass - результат обработки\n */\n$onItem = function ($item) {\n\n    echo \"Обрабатываем объявление #\" . $item-\u003eid . \"\\r\\n\";\n\n    print_r($item);\n\n    $result = new \\stdClass();\n\n    // Успешно размещено\n    // $result-\u003eurl = 'http://your-site.ru/item-123';\n    // $result-\u003eviews = 15;\n\n    // ИЛИ\n\n    // Проблема с доступом к базе данных / Недостаточно памяти\n    // $result-\u003eerror = 'Произошел технический сбой';\n\n    // ИЛИ\n\n    // Объявление дубликат\n    // $result-\u003esimilarUrl = 'http://your-site.ru/item2';\n\n    // ИЛИ\n\n    // Не соответствует правилам вашего портала\n    // $result-\u003erejectReason = 'Номер телефона заблокирован';\n\n    return $result;\n};\n\n/**\n * Обработчик конца импорта\n *\n * Здесь нужно удалить из вашей базы данных все объявления которые отсутствовали в\n * XML фиде (не забудьте удалить изображения)\n *\n * @param $report\n * @param $report -\u003elocation            - Путь до файла с готовым отчетом (ссылку на него нужно\n *                                        вставить в личный кабинет партнера)\n * @param $report -\u003estatistics.total    - Общее число объявление в фиде\n * @param $report -\u003estatistics.success  - Число объявление обработанных успешно\n * @param $report -\u003estatistics.rejected - Число объявление отклоненных от публикации\n * @param $report -\u003estatistics.errors   - Число объявление обработанных с ошибками\n */\n$onEnd = function ($report) {\n\n    echo \"Обработка XML фида завершена!\\r\\n\";\n\n    var_dump($report);\n};\n\n/**\n * Обработчик ошибки обработки XML фида\n *\n * @param $error\n */\n$onError = function ($error) {\n\n    echo \"Произошла ошибка \" . $error . \"\\r\\n\";\n\n    $this-\u003eassertEquals('I\\'m here!', 'Should not be here!');\n};\n\n$options = new \\stdClass();\n\n// Ссылка на XML фид из личного кабинета партнера\n$options-\u003exmlFeedUrl = 'https://realtypult.ru/api/xml/export/partner/FORMAT/TOKEN';\n\n// Путь к файлу отчета, файл будет создаваться автоматически\n$options-\u003ereportFileLocation = '/var/www/my-site/public/rm-report.xml';\n\n// Формат XML фида ('realtypult' или 'yandex')\n$options-\u003eformat = 'realtypult';\n\n// Функция будет вызвана для каждого объявления из XML фида\n$options-\u003eonItem = $onItem;\n\n// Функция будет вызвана когда весь XML фид будет обработан\n$options-\u003eonEnd = $onEnd;\n\n// Функция будет вызвана в случае непредвиденной критической ошибки\n$options-\u003eonError = $onError;\n\n$importer = new \\RealtyPultImporter($options);\n\n// Запускаем импорт\n$importer-\u003erun();\n```\n\nКод этого примера находится [тут](examples/example.php).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbushev%2Fphp-realtypult-partner-lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbushev%2Fphp-realtypult-partner-lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbushev%2Fphp-realtypult-partner-lib/lists"}