Приложение "Выгрузка Yandex.Realty"

Материал из CMS Sitebill Wiki
Перейти к навигации Перейти к поиску

Описание

Приложение организовывает xml-фид данных согласно формату Yandex-Недвижимость (Спецификация)

Типы выгрузок

Стандартная - осуществляется через стандартную точку доступа при отсутствии указанного своего алиаса точки доступа в параметре настроек - Алиас приложения (apps.yandexrealty.alias)

Расширенная - осуществляется через точку доступа указанную в параметре настроек - Алиас приложения (apps.yandexrealty.alias). Даже если в этом параметре указать стандартное имя yandexrealty, выгрузка все равно будет выполняться по типу Расширенная

Эти варианты выгрузок отличаются внутренней механикой формирования фида и способом сбора данных для отдачи, что приводит разным возможностям использования полученных данных. Использование Расширенной выгрузки является приоритетным. Так же Расширенная выгрузка может быть модифицирована под нужды пользователя в отличии от Стандартной.

Общая информация

Выгрузка отклоняется для объявлений у которых неуказана (или равна нулю) цена и не указан город.
Адрес выгрузки по умолчанию http://ваш_сайт/yandexrealty/
В новых версиях есть возможность переопределить адрес выгрузки указав в настройках приложения любое друго значение алиаса, кроме yandexrealty. В таком случае обращения к http://ваш_сайт/yandexrealty/ будут обрабатываться встроенным механизмом выгрузки, а обращения по вашему алиасу будут обрабатываться фронтальным обработчиком или, при наличии, локальной копией в Вашем шаблоне.
Механика выгрузок по стандартному адресу и по переопределенному отличается. В первом случае выгрузка именуется Стандартная, а во втором - Расширенная.

Отчет о выгрузке

Информация об успешной выгрузке и об ошибках возникающих при выгрузке записывается в этот файл
http://адрес_вашего_сайта/cache/yandexrealty.last.log.xml



Для того чтобы начать выгружать свои объявления в Яндекс-недвижимость вам нужно зарегистрироваться тут https://help.yandex.ru/webmaster/realty/quickstart.xml


Принимающие участие в выгрузке поля

Общие поля

id - идентификатор объявления внутри системы

optype - поле типа select_box c допустимыми значениями 0 = продажа, 1 = аренда. При отсутствии в модели данного поля в выгрузке будет установлен тип операции "продажа".

property_type - текстовое поле устанавливающее тип недвижимости. В случае отсутствия будет установлен тип "жилая". В противном случае в тег будет помещено значение из этого поля.

country - если в ваших объявлениях явно указана страна с помощью поля country_id, это значение пойдет в выгрузку. Если этого значения нет, оно не указано или указано в виде пустой строки, в выгрузку пойдет информация с указанием страны "Россия"

Агент

Тип агента - собственник (owner) присваивается, если для объявления указано поле fio и объявление привязно к пользователю _unregistered. Или же владельцем объявления является зарегистрированный пользователь, но модуль компаний отключен, либо включен, но пользователю не сопоставлена ни одна из компаний. Остальные данные по владельце (ФИО, телефон, почта) будут взяты из данных объявления (для нерегистрированных), либо из данных профиля пользователя (для зарегистрированных), либо из профиля компании (для агентств)

Валюта.

Для определения валюты используется значение поля name (Название) валюты, которое указано через Менеджер валют. Если названием является одно из обозначений 'RUR', 'RUB', 'USD', 'EUR', 'UAH', 'BYR', 'KZT', то оно и будет выбрано. Если оно имеет другое значение, то будет предпринята попытка найти другие сопоставления:

  • при нахождении "белорусский" установится 'BYR'
  • при нахождении "рубль" установится 'RUR'
  • при нахождении "руб." установится 'RUR'
  • при нахождении "доллар" установится 'USD'
  • при нахождении "США" установится 'USD'
  • при нахождении "евро" установится 'EUR'
  • при нахождении "гривна" установится 'UAH'
  • при нахождении "грн" установится 'UAH'
  • при нахождении "теньге" установится 'KZT'

Во всех остальных случаях валюта не будет определена

Настройки

Контракт

Поле:Значение отвечающие за признак продажи (apps.yandexrealty.sell)/Поле:Значение отвечающие за признак аренды (apps.yandexrealty.rent) - настройка позволяющая указать явно системное имя поля отвечающего за тип операции, если таковое присутствует в модели, и значение для него. Например, если у вас за тип операции отвечает поле optype cо значениями 1-Аренда, 2-Продажа, тогда в первом нужно указать optype:2 а во втором optype:1.

Данная настройка является приоритетной. Она будет браться в расчет игнорируя аналогичную настройку и таблицы ассоциаций.

Технические

Выгружать в файл (apps.yandexrealty.tofile) - предписывает выгрузчику кешировать результат выгрузки. Если отметка стоит, значит при обращении за выгрузкой Sitebill сначала попытается найти свежий подготовленный файл с выгрузкой и отдаст его, и, только если его нет или он устарел, проведет динамическую выгрузку, запишет ее в файл и отдаст данные из файла. Если отметка не стоит, тогда каждый запрос за выгрузкой инициирует новую выборку данных и формирование xml-результата "в прямом эфире" без сохранения в файл.

При организации выгрузки в файл, вы можете давать ссылку на свою выгрузку не на адрес выгрузчика, а сразу на физический файл с выгрузкой, чем сможете дополнительно разгрузить сайт. Но при этом будет логичным поставить заданием cron по периодичному пересозданию файла, либо, если данные обновляются не часто, делать это вручную.

Время жизни файла кеша (в секундах) (apps.yandexrealty.filetime) - определяет срок жизни файла кеша выгрузки. При выгрузке "в файл" будет проведена проверка времени создания файла кеша и, если он уже прожил срок указанный в этой настройке, будет произведено его удаление и замена новым кешем.

Системное имя поля, содержащего изображения (apps.yandexrealty.images_field) - указывает системное имя поля в модели, откуда следует брать фотографии. Актуально при использовании полей типа uploads, которые содержат графические материалы и которых в модели может быть несколько - что бы выгрузчик знал конкретно где нужные фотографии, а где иные материалы.

Количество дней за которое будут выбраны объявления для выгрузки (apps.yandexrealty.days_interval) - ограничивающий параметр, который ограничивает отбираемые для выгрузки объявления по давности срока создания.

Алиас приложения (apps.yandexrealty.alias) - позволяет указать свой алиас для точки входа на выгрузчик взамен стандартного yandexrealty. Установка любого значения в это поле переводит выгрузку на алгоритм Расширенная

Локация

Единое название страны (apps.yandexrealty.country_global) - позволяет указать единое для всех выгружаемых объявлений название страны. Данная настройка является первичной и указание в ее поле некоторого значения отменить все остальные обработки. Указав в этом поле значение напр. "Россия", в фиде выгрузки все теги country будут проинициализированы этим значением, вне зависимости от того есть ли в модели объявления поле с именем страны и указано ли оно. Настройка подходит сайтам у которых выбор страны не вынесен в обязательные данные, но все объявления расположены в рамках одной страны

Системное имя поля с именем страны (apps.yandexrealty.country_from) - указывает поле хранящее текстовое имя страны для данного объявления. Не имеет смысла указывать в этом поле системные имена полей типов отличных от safe_string, если вы предварительно не модифицировали алгоритм сборки данных так, что в этом поле будет текстовое имя страны.

Единое название региона (apps.yandexrealty.region_global) - позволяет указать единое для всех выгружаемых объявлений название региона. Данная настройка является первичной и указание в ее поле некоторого значения отменить все остальные обработки. Указав в этом поле значение напр. "Московская область", в фиде выгрузки все теги region будут проинициализированы этим значением, вне зависимости от того есть ли в модели объявления поле с именем региона и указано ли оно. Настройка подходит сайтам у которых выбор региона не вынесен в обязательные данные, но все объявления расположены в рамках одного региона

Системное имя поля с именем региона (apps.yandexrealty.region_from) - указывает поле хранящее текстовое имя региона для данного объявления. Не имеет смысла указывать в этом поле системные имена полей типов отличных от safe_string, если вы предварительно не модифицировали алгоритм сборки данных так, что в этом поле будет текстовое имя страны.

Единое название города (apps.yandexrealty.city_global) - позволяет указать единое для всех выгружаемых объявлений название города. Данная настройка является первичной и указание в ее поле некоторого значения отменить все остальные обработки. Указав в этом поле значение напр. "Саратов", в фиде выгрузки все теги locality-name будут проинициализированы этим значением, вне зависимости от того есть ли в модели объявления поле с именем города и указано ли оно. Настройка подходит сайтам у которых выбор города не вынесен в обязательные данные, но все объявления расположены в рамках одного города

Системное имя поля с именем города (apps.yandexrealty.city_from) - указывает поле хранящее текстовое имя города для данного объявления. Не имеет смысла указывать в этом поле системные имена полей типов отличных от safe_string, если вы предварительно не модифицировали алгоритм сборки данных так, что в этом поле будет текстовое имя страны.

Системное имя поля с именем улицы (apps.yandexrealty.street_from) - указывает поле хранящее текстовое имя улицы для данного объявления. Не имеет смысла указывать в этом поле системные имена полей типов отличных от safe_string, если вы предварительно не модифицировали алгоритм сборки данных так, что в этом поле будет текстовое имя страны.

Данные владельца

Режим тонкой настройки контактов и групп (apps.yandexrealty.contacts_export_mode) - позволяет использовать настройку сопоставления сайтовых групп пользователей группам в ЯН и указать варианты источника контактных данных для выгрузки


Строка ассоциирования выгрузки контактов (apps.yandexrealty.contacts_assoc_str) - позволяет указать источник контактных данных для выгрузки объявления в зависмости от группы пользователя, являющегося владельцем объявления на сайте
может иметь вид

Источником контактов служат а) контактные данные в данных объявления, б) контактные данные из профиля пользователя сайта.
Указывается в виде строки пар значений вида N:S разделенных точкой с запятой, где N - числовой идентификатор группы на сайте, S - числовой идентификатор типа источника. В качестве общего идентификатора группы N может использоваться знак * обозначающий "все". Такого рода правило будет действовать в сквозном режиме, но все частные правила будут его переопределять.
Существует 4 типа источников:
1 - все из данных объявления. фактически это data.fio, data.phone, data.email
2 - все из профиля связанного пользователя. фактически это user.fio, user.phone, user.email
3 - из данных объявления, но, если не хватает каких-то полей, то добирается из профиля связанного пользователя (например в data указаны только email владельцев, а отсутствующие телефон и имя берутся уже из re_user)
4 - обратное к 3
Например:

1:1;3:2

для группы ИД=1 источник 1-го типа, для группы 3 - источник 2-го типа

*:3

для всех групп источник 3-го типа

*:2;2:1

для всех групп источник 2-го типа, а для группы 2 - источник 1-го типа


Если тип источника для какой-то группы не будет указан, как например в 1-м примере не указано для группы ИД=2, тогда будет использоваться дефолтное значение 2 (из профиля)

Строка ассоциирования назначения группы (apps.yandexrealty.groups_assoc_str) - указывает соответствие группы пользователя на сайте одной из допустимых групп в классификации ЯН Позволяет установить для разных групп сайта свои определители.
Например
Указывается в виде строки пар значений вида N:G разделенных точкой с запятой, где N - числовой идентификатор группы на сайте, G - буквенный идентификатор группы на ЯН (o - владелец (owner), a - агентство (agency), d - застройщик (developer)). В качестве общего идентификатора группы N может использоваться знак * обозначающий "все". Такого рода правило будет действовать в сквозном режиме, но все частные правила будут его переопределять.
Например:

1:o;3:a;2:d

обозначает, что группа с идентификатором 1 будет выгружена как <category>owner</category>, группа 3 как <category>agency</category> и группа 2 как <category>developer</category>

*:a;1:o

все будут выгружаться как агенты\агентства, а 1-я группа как владельцы.

Дефолтным значением в случае не указания будет owner (o)

apps.yandexrealty.organisation_global_name (Общее для всех агентов название организации)

Общее значение тега organisation, которое будет установлено для всех агентов в выгрузке. Следует применять, если выгрузка содержит в себе объекты только одного агентства. Тег выгружается только для агентов, которые определены как "агентство"

apps.yandexrealty.organisation_src (Системное имя поля в модели профиля хранящее название организации)

Имя системного поля в модели user, которое содержит текстовое название агенства данного агента. Поле должно быть типа safe_string.

Обсудить на форуме и задать свои вопросы по выгрузке можно тут http://goo.gl/rCfzlK

Площади участков

Системное имя поля с площадью участка (apps.yandexrealty.lot_area) - системное имя поля строкового типа в котором хранится площадь земельного участка для объектов типа "земельный участок" или "земля". При не указании используется системное имя lot_area

Размерность значения системного поля с площадью участка (sqm|ha|acr) (apps.yandexrealty.lot_area_dim) - Размерность значения площади участка. Варианты значений: sqm - кв.м., ha - га, acr - сотки. По-умолчанию сотки

Системное имя поля с площадью дополнительного участка (apps.yandexrealty.add_lot_area) - системное имя поля строкового типа в котором хранится площадь дополнительного земельного участка для объектов типа "дом с участком". При не указании используется системное имя lot_area

Размерность значения системного поля с площадью дополнительного участка (sqm|ha|acr) (apps.yandexrealty.add_lot_area_dim) - Размерность значения площади дополнительного участка. Варианты значений: sqm - кв.м., ha - га, acr - сотки. По-умолчанию сотки

Жилые комплексы

apps.yandexrealty.complex_enable (Выгружать информацию о ЖК из приложения Жилые комплексы)

Сопоставления типов для коммерческой

Условия соотвествия коммерческому типу "офисные помещения" (apps.yandexrealty.comm_office_cond)

Условия соотвествия коммерческому типу "торговые помещения" (apps.yandexrealty.comm_retail_cond)

Условия соотвествия коммерческому типу "склад" (apps.yandexrealty.comm_warehouse_cond)

Условия соотвествия коммерческому типу "помещения свободного назначения" (apps.yandexrealty.comm_freepurpose_cond)

Условия соотвествия коммерческому типу "земли коммерческого назначения" (apps.yandexrealty.comm_land_cond)

Условия соотвествия коммерческому типу "производственное помещение" (apps.yandexrealty.comm_manufacturing_cond)

Условия соотвествия коммерческому типу "производственное помещение" (apps.yandexrealty.comm_autorepair_cond)

Условия соотвествия коммерческому типу "производственное помещение" (apps.yandexrealty.comm_business_cond)

Условия соотвествия коммерческому типу "юридический адрес" (apps.yandexrealty.comm_legaladdress_cond)

Условия соотвествия коммерческому типу "общепит" (apps.yandexrealty.comm_publiccatering_cond)

Условия соотвествия коммерческому типу "гостиница" (apps.yandexrealty.comm_hotel_cond)

Набор настроек, которые помогают указать конкретный тип коммерческой недвижимости, если это не возможно сделать с помощью таблицы ассоциаций по разделам сайта. Для каждой настройки можно прописать набор условий, при выполнении которых объекту будет сопоставлен данный тип. Например на сайте присутствует раздел Коммерческая (ID=4) без дальнейшей детализации подразделов. Но, вместе с этим, существует отдельное поле Тип коммерческой недвижимости вида select_box с вариантами {1~~Торговля}{2~~Склад}{3~~Офисное} и системным именем commercial_subtype. Тогда для обозначения типа "офисные помещения" нам необходимо задать в настройку apps.yandexrealty.comm_office_cond значение

topic_id=4|commercial_subtype=3

Для "торговые помещения"

topic_id=4|commercial_subtype=1

Сопоставления типов здания

Сопоставления типов ремонта