Recommended Posts

В случае когда в разделах на сайте заведен только один глобальный тип "Коммерческая", без уточняющих подтипов, есть только два выхода: либо не выгружать коммерческую, либо присвоить всей ей один тип из вариантов в третьей колонке.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, Chernetskiy сказал:

По поводу, каким должно быть значение property-type (тип недвижимости) для категории «участок»/«lot» я задал вопрос поддержке Яндекса, посмотрим что ответят. Но что-то мне подсказывает, что тип для участков вообще не должен указываться.

Судя по тому, что все участки описаны у них в секции Жилая, скорее всего они ответят, что проперти-тайп так же будет Жилая.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, bogdanoff сказал:

Участки и коммерция в Afy появились, но без офисных помещений. В таблицах все выставлено, где искать ошибку?

если речь не о краснодар-инвест (а видимо да, так как типы разделов другие), то в ПП с фтп. будем смотреть лог.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, abushyk сказал:

если речь не о краснодар-инвест (а видимо да, так как типы разделов другие), то в ПП с фтп. будем смотреть лог.

Офисные помещения есть и там и там, но на Afy не выгрузилось вообще ничего из них.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 минуту назад, bogdanoff сказал:

Офисные помещения есть и там и там, но на Afy не выгрузилось вообще ничего из них.

В AFY подключи пока выгрузку Яндекса, возможно проглотит офисы. Видимо стоит подождать, пока у AFY устаканится выгрузка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Chernetskiy сказал:

В AFY подключи пока выгрузку Яндекса, возможно проглотит офисы. Видимо стоит подождать, пока у AFY устаканится выгрузка.

У меня и так сейчас в Afy выгрузка в формате Яндекса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
18 часов назад, abushyk сказал:

Судя по тому, что все участки описаны у них в секции Жилая, скорее всего они ответят, что проперти-тайп так же будет Жилая.

Выкатываю в студию ответ Яндекса на мой вопрос о назначении "Жилой" для участков:

"Параметр « property-type» не используется для категории «участок»/«lot»"

Судя по всему, в настройках ассоциаций для участков ИЖС и садовых (не коммерческих) параметр "Тип недвижимости" надо указать "Игнорировать"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 13.09.2016 в 20:37, abushyk сказал:

Вот четыре настройки в Настройки - Выгрузка ЯН. Попробуйте указать их и проверить присутствует ли площадь в выгрузке с указанной размерностью. Не забудьте сбросить или очистить кеш выгрузки, если используется Выгрузка в файл.

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

Вторые два делают то же самое, но для объектов типа Дом с участком, где есть две площади - дома и собственно участка.

CMS_Sitebillx2.png

В admin.php переименовал эти поля для понятности:

if ( !$config_admin->check_config_item('apps.yandexrealty.lot_area') ) {
	$config_admin->addParamToConfig('apps.yandexrealty.lot_area','','Системное имя поля с площадью отдельного участка');
}
if ( !$config_admin->check_config_item('apps.yandexrealty.lot_area_dim') ) {
	$config_admin->addParamToConfig('apps.yandexrealty.lot_area_dim','','Параметр площади отдельного участка (sqm|ha|acr)');
}
		
if ( !$config_admin->check_config_item('apps.yandexrealty.add_lot_area') ) {
	$config_admin->addParamToConfig('apps.yandexrealty.add_lot_area','','Системное имя поля с площадью участка дома');
}
if ( !$config_admin->check_config_item('apps.yandexrealty.add_lot_area_dim') ) {
	$config_admin->addParamToConfig('apps.yandexrealty.add_lot_area_dim','','Параметр площади участка дома (sqm|ha|acr)');
}

Попутно появился вопрос, исходя из требований Яндекса. Яшка в новых требования указывает на рекомендуемые значения «кв. м», «sq. m», при этом принимает сотки и гектары, в admin.php указывается (sqm|ha|acr). Что, блин в итоге указывать-то?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попутно обратил внимание в admin.php, примерно 1455 строка, непонятно что в формировании параметра window-view делает параметр floor-covering, может чего не понимаю?

if(isset($form_data_shared['window_view']) && isset($data_item['window_view']) && $data_item['window_view']!=''){
	if($form_data_shared['window_view']['type']=='select_box' && intval($data_item['window_view'])!=0 && isset($form_data_shared['window_view']				['select_data'][$data_item['window_view']])){
	$rs.='<window-view>'.self::symbolsClear($form_data_shared['floor_covering']['select_data'][$data_item['floor_covering']]).'</window-view>'."\n";
		}elseif($form_data_shared['window_view']['type']!='select_box' &&  $data_item['window_view']!=''){
	$rs.='<window-view>'.self::symbolsClear($data_item['floor_covering']).'</window-view>'."\n";
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если кому интересен вывод в фиде названия агентства и ссылка на него, в контактах к каждому объявлению, то сделал так (примерно 974 строка):

if($exporter_type=='a'){
$rs.='<category>agency</category>'."\n";
$rs.='<organization>ЦЕНТР НЕДВИЖИМОСТИ</organization>'."\n";
$rs.='<url>http://realty-centrum.com</url>'."\n";

Работает.

А если еще и нужна выгрузка фото агента с каждым объявлением, то добавил примерно в 922 строке следующее:

$rs.='<photo>http://realty-centrum.com/img/data/user/'.self::symbolsClear($user['imgfile']).'</photo>'."\n";

Вроде тоже работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в admin.php некорректно указан параметр renovation, заполнил как надо (примерно 2132 строка):

$form_data['data']['renovation']['select_data'] = array('0' => 'не выбрано', '1' => 'евро', '2' => 'дизайнерский', '3' => 'частичный ремонт', '4' => 'хороший', '5' => 'с отделкой', '6' => 'черновая отделка', '7' => 'требует ремонта' );

Соответственно в data тоже этот параметр надо поправить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И еще, в строке примерно 2222 указано:

$form_data['data']['floor_covering']['select_data'] = array('0' => 'не выбрано', '1' => 'паркет', '2' => 'ламинат', '3' => 'ковролин', '4' => 'колинолеумвролин');

последний параметр должен быть 'линолеум', то есть так:

$form_data['data']['floor_covering']['select_data'] = array('0' => 'не выбрано', '1' => 'паркет', '2' => 'ламинат', '3' => 'ковролин', '4' => 'линолеум');

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для правильной выгрузки рубля в цене, если указывается на сайте символом ₽ (вставляется правым alt+8), чтобы соответствовал в выгрузке RUR, примерно в 2000 строке добавил:

if(preg_match('/\₽/i',$currency_string)){
	return 'RUR';
}	
if(preg_match('/\&#8381\;/i',$currency_string)){
	return 'RUR';
}	

Проверьте, если \ и / указал неправильно, далёк я от этого... :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то я подумал, может в районе 560 строк, где идет указание на категорию жилая или коммерческая добавить обработчик для существующей нежилой ($EXP_TY_NONRESIDENTIAL), чтобы участки показывались без указания категории, чтобы было <category></category>:

if($data_item['price'] > 0 AND $data_item['city'] !== ''){
	$count++;
		$rs.='<offer internal-id="'.(int)$data_item['id'].'">'."\n";
		$data_topic=$data_item['topic_id'];
		$this_realty_supertype=intval($associations[$data_topic]['realty_type']);
			if($this_realty_supertype==self::$EXP_TY_RESIDENTIAL){
				$rs.='<property-type>жилая</property-type>'."\n";
			}elseif($this_realty_supertype==self::$EXP_TY_COMMERCIAL){
				$rs.='<category>коммерческая</category>'."\n";
			}elseif(isset($data_item['property_type']) && $data_item['property_type']!=''){
				$rs.='<property-type>'.self::symbolsClear($data_item['property_type']).'</property-type>'."\n";
			}else{
				$errors[]=$data_item['id'].' DECLINED: Supertype unknown';
				continue;
			}

В результате, можно будет указать для участков с ИЖС и садовых категорию нежилая (что логично) и в выгрузку не будет лезть жилая, что может восприниматься принимающей стороной как ошибка.

Как это правильно прописать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Блин, похоже не тот кусок кода, но основная мысль не меняется ;)

Пока участки выгружаются, если указать тип недвижимости - жилая, иначе никак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вроде победил :) В районе 565 строки поправил код:

if($this_realty_supertype==self::$EXP_TY_RESIDENTIAL){
	$rs.='<property-type>жилая</property-type>'."\n";
}elseif($this_realty_supertype==self::$EXP_TY_NONRESIDENTIAL){
	$rs.='<category>земельный участок</category>'."\n";	
}elseif($this_realty_supertype==self::$EXP_TY_COMMERCIAL){
	$rs.='<category>коммерческая</category>'."\n";
}elseif(isset($data_item['property_type']) && $data_item['property_type']!=''){
	$rs.='<property-type>'.self::symbolsClear($data_item['property_type']).'</property-type>'."\n";
}else{
	$errors[]=$data_item['id'].' DECLINED: Supertype unknown';
	continue;
}

Собственно, добавил 2 и 3 строки.

Теперь в ассоциациях для участков ИЖС и садовых выбираем "Нежилая" или пустое значение и выгрузка работает правильно, без указания типа жилая или коммерческая, примерно так:

<offer internal-id="116">
<category>земельный участок</category>
<type>продажа</type>
<url>http://realty-centrum.com/uchastki/dlya-ijs/kurovskoe-0/</url>
<creation-date>2016-08-31T20:13:11+03:00</creation-date>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть вопрос: 

в data имеется параметр room-space (Площадь комнат), тип записи safe_string, в которой указываем площади комнат помещения например 12/18/20 (так практически на всех порталах). Однако такой формат не выгружается в файл XML для Яндекса. Кроме того, Яша говорит, что этот параметр должен передаваться отдельными тегами для каждой комнаты, в соответствии с их количеством. Как-бы это победить, чего написать в admin.php ?

Должно быть так:

<room-space>
    <value>12</value>   
    <unit>кв.м</unit> 
</room-space>
<room-space>
    <value>18</value>   
    <unit>кв.м</unit> 
</room-space>
<room-space>
    <value>20</value>   
    <unit>кв.м</unit> 
</room-space>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 16.09.2016 в 15:17, Chernetskiy сказал:

Попутно появился вопрос, исходя из требований Яндекса. Яшка в новых требования указывает на рекомендуемые значения «кв. м», «sq. m», при этом принимает сотки и гектары, в admin.php указывается (sqm|ha|acr). Что, блин в итоге указывать-то?

Это рекомендуемые. так что можно использовать и другие. но, в любом случае, в этих настройках указываем в чем измеряется величина у нас на сайте. если будет требование приводить к одному значению для выгрузки, напр. в м2, то на основании этой настройки можно будет запустить конвертор. но в настройке указываем "в чем у нас величины на сайте".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 16.09.2016 в 20:45, Chernetskiy сказал:

Теперь в ассоциациях для участков ИЖС и садовых выбираем "Нежилая" или пустое значение и выгрузка работает правильно, без указания типа жилая или коммерческая, примерно так:

А почему не Коммерческая - земли коммерческого назначения ?

Я на протяжении обсуждения почему-то совсем пропустил наличие такого типа в вариантах выбора для коммерческой. Видимо путаницу вносит два поля выбора ЖИлая\Коммерческая и категории, которые не связаны между собой механический, но влияют друг на друга логически.

CMS Sitebil4l.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 18.09.2016 в 22:18, Chernetskiy сказал:

Есть вопрос: 

в data имеется параметр room-space (Площадь комнат), тип записи safe_string... Как-бы это победить, чего написать в admin.php ?

если такой параметр есть, то решением может быть разбивка его по разделителю и вывод результата разбивки отдельными блоками.

не вдаваясь в детали, примерно вот так:

$parts=explode('/', $field);
if(!empty($parts)){
	$ret='<room-space><value>'.implode('</value><unit>кв.м</unit></room-space><room-space><value>', $parts).'</value><unit>кв.м</unit></room-space>';
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, abushyk сказал:

А почему не Коммерческая - земли коммерческого назначения ?

Я на протяжении обсуждения почему-то совсем пропустил наличие такого типа в вариантах выбора для коммерческой. Видимо путаницу вносит два поля выбора ЖИлая\Коммерческая и категории, которые не связаны между собой механический, но влияют друг на друга логически.

CMS Sitebil4l.png

Константин, я в постах выше изложил мнение Яндекса по этому поводу: Жилая указывается только для жилой недвижимости, а для участков типа ИЖС и садовые ничего указывать не надо. Для коммерческих земель (сельхозка, промка, лес и т.п.) указывается коммерческая. Соответственно возникала проблема, если указать для участка ИЖС тип Жилая, то этот тип уходит в выгрузку и возникает проблема. Я соответственно поправил этот момент, как указал выше и теперь участки ИЖС и садовые выгружаются без указания типа Жилая. То есть смысл в том, что для участков ИЖС и садовые вообще никакой тип указываться не должен, ни Жилая, ни Коммерческая. Его теперь обделили типом :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, abushyk сказал:

если такой параметр есть, то решением может быть разбивка его по разделителю и вывод результата разбивки отдельными блоками.

не вдаваясь в детали, примерно вот так:


$parts=explode('/', $field);
if(!empty($parts)){
	$ret='<room-space><value>'.implode('</value><unit>кв.м</unit></room-space><room-space><value>', $parts).'</value><unit>кв.м</unit></room-space>';
}

 

Сейчас юрист потыкается... :) Может и программистом станет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, abushyk сказал:

если такой параметр есть, то решением может быть разбивка его по разделителю и вывод результата разбивки отдельными блоками.

не вдаваясь в детали, примерно вот так:


$parts=explode('/', $field);
if(!empty($parts)){
	$ret='<room-space><value>'.implode('</value><unit>кв.м</unit></room-space><room-space><value>', $parts).'</value><unit>кв.м</unit></room-space>';
}

 

Константин, не работает. Вставил код туда, где он логически должен располагаться и уже сравнивая с окружающим кодом, понимаю, что много чего не хватает. Похоже еще где-то надо добавить обработку, откуда брать параметр площадей комнат, у нас-же в data не не room-space а room_space :) Пока выглядит так:

if(!empty($associations) && isset($associations[$data_topic]) && $associations[$data_topic]['realty_category']!=0){
	if(!in_array($associations[$data_topic]['realty_category'], array(4, 15, 16))){
		if(isset($data_item['square_all'])){
			$x=preg_replace('/[^0-9\.,]/','',$data_item['square_all']);
			$x=str_replace(',', '.', $x);
			$x=floatval($x);
			if($x!=0){
				$rs.='<area>'."\n";
				$rs.='<value>'.$x.'</value>'."\n";
				$rs.='<unit>кв.м</unit>'."\n";
				$rs.='</area>'."\n";
			}
		}
		if(isset($data_item['square_live'])){
			$x=preg_replace('/[^0-9\.,]/','',$data_item['square_live']);
			$x=str_replace(',', '.', $x);
			$x=floatval($x);
			if($x!=0){
				$rs.='<living-space>'."\n";
				$rs.='<value>'.$x.'</value>'."\n";
				$rs.='<unit>кв.м</unit>'."\n";
				$rs.='</living-space>'."\n";
			}
		}
						
		$parts=explode('/', $field);
		if(!empty($parts)){
			$ret='<room-space><value>'.implode('</value><unit>кв.м</unit></room-space><room-space><value>', $parts).'</value><unit>кв.м</unit></room-space>';
		}
						
		if(isset($data_item['square_kitchen'])){
			$x=preg_replace('/[^0-9\.,]/','',$data_item['square_kitchen']);
			$x=str_replace(',', '.', $x);
			$x=floatval($x);
			if($x!=0){
				$rs.='<kitchen-space>'."\n";
				$rs.='<value>'.$x.'</value>'."\n";
				$rs.='<unit>кв.м</unit>'."\n";
				$rs.='</kitchen-space>'."\n";
			}
		}
	}
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

$parts=explode('/', $field);

в этой строке я не указывал откуда именно брать исходные данные, а написал абстрактно $field. Но нужно указать именно переменную. Если в модели разбивка комнат лежит в поле с системным именем  room_space, тогда условие пишем следующим образом:

if(isset($data_item['room_space']) && trim($data_item['room_space'])!=''){
	$field=trim($data_item['room_space']);
	$parts=explode('/', $field);
	if(!empty($parts)){
		$ret='<room-space><value>'.implode('</value><unit>кв.м</unit></room-space><room-space><value>', $parts).'</value><unit>кв.м</unit></room-space>';
	}
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Константин, сделал как ты предложил и нифига не работает. Площади комнат в выгрузке вообще не появляются:

if(!empty($associations) && isset($associations[$data_topic]) && $associations[$data_topic]['realty_category']!=0){
	if(!in_array($associations[$data_topic]['realty_category'], array(4, 15, 16, 25))){
		if(isset($data_item['square_all'])){
			$x=preg_replace('/[^0-9\.,]/','',$data_item['square_all']);
			$x=str_replace(',', '.', $x);
			$x=floatval($x);
			if($x!=0){
				$rs.='<area>'."\n";
				$rs.='<value>'.$x.'</value>'."\n";
				$rs.='<unit>кв.м</unit>'."\n";
				$rs.='</area>'."\n";
			}
		}
		if(isset($data_item['square_live'])){
			$x=preg_replace('/[^0-9\.,]/','',$data_item['square_live']);
			$x=str_replace(',', '.', $x);
			$x=floatval($x);
			if($x!=0){
				$rs.='<living-space>'."\n";
				$rs.='<value>'.$x.'</value>'."\n";
				$rs.='<unit>кв.м</unit>'."\n";
				$rs.='</living-space>'."\n";
			}
		}
		if(isset($data_item['room_space']) && trim($data_item['room_space'])!=''){
			$field=trim($data_item['room_space']);
			$parts=explode('/', $field);
			if(!empty($parts)){
				$ret='<room-space><value>'.implode('</value><unit>кв.м</unit></room-space><room-space><value>', $parts).'</value><unit>кв.м</unit></room-space>';
			}
		}
		if(isset($data_item['square_kitchen'])){
			$x=preg_replace('/[^0-9\.,]/','',$data_item['square_kitchen']);
			$x=str_replace(',', '.', $x);
			$x=floatval($x);
			if($x!=0){
				$rs.='<kitchen-space>'."\n";
				$rs.='<value>'.$x.'</value>'."\n";
				$rs.='<unit>кв.м</unit>'."\n";
				$rs.='</kitchen-space>'."\n";
			}
		}
	}
}

Если сделать по образцу соседних - жилой площади или площади кухни, тогда работает, только, по понятным причинам, выдает белиберду, переиначивая значение площадей комнат из data типа 12/18/20 на 121820 кв.м. Как-бы всё это сделать по фэншую? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: Chernetskiy
      После очередного обновления слетела выгрузка земельных участков файлом выгрузки формата XML Яндекс.Недвижимость.
      Поправил файл admin.php для модуля выгрузки и внес некоторые дополнения/правки.
      Если необходимо решить вопрос с выгрузкой по быстрому, заходим на хостинг в apps/yandexrealty/admin/, сохраняем или переименовываем имеющийся файл admin.php в admin.bak и загружаем этот файл.
      Что изменено:
      добавлены параметры для выгрузки земельных участков (ИЖС, садовые) добавлен в выгрузку параметр raion (районы области) добавлен в выгрузку параметр direction (направления, шоссе) добавлен в выгрузку параметр railway_station (станции ж/д) параметры площадей комнат, если указываются на сайте как 10/12/18, выгружаются отдельно для каждой комнаты добавлен в выгрузку параметр lot-number (номер лота) - для показа на сторонних сайтах  номера объявления в вашей базе добавлены соответствия валют в выгрузку - спецсимволов рубля (₽), фунта серлингов (£), гривны (₴), если на сайте валюты указаны спецсимволами. Чуть не забыл, за ненадобностью удалил из файла Беларусский рубль и Казахский теньге, мне не надо было   добавлена ссылка на сайт в выгрузку к сведениями об агенте - в файле найдите https://realty-centrum.com и поменяйте на свою! исправлены/добавлены значения некоторых параметров в выгрузку (ремонт, балконы, покрытие пола и т.п.) Для изучения подробностей, откройте в Notepad++ этот файл и ваш, воспользуйтесь плагином Compare и посмотрите разницу в коде
    • Автор: alex15.master
      Добрый день! Прошу помощи!!!
      Ситуация такая - есть сайт на вашей CMS и шаблон Realia, есть модуль выгрузки в Яндекс.Недвижимость.
      Все прописал подал заявку, но сайт не принимают......написал в саппорт, - сообщение прикрепляю...
      помогите разобраться....
      Скрин из админки модуля тоже прикрепляю....



    • Автор: Владимир
      Это лучший из всех русскоязычных скриптов потому,  что есть выгрузка в Яндекс-недвижимость! Каждый сайт имеет возможность появиться первым по результатам поисковых запросов в Яндексе, если ваши пользователи будут указывать номер дома (сделайте таковое обязательным)!  Для сайта такого типа необходимо, чтоб "Заявка" отправлялась не владельцу агентства, а автору объявления. НО! если все объявления будут отправляться на один е-мейл агентства,  то Яндекс-Недв. сочтет таковой сайт сайтом "Сервисом по бронированию», а согласно его правилам (цитирую) "партнером Яндекс.Недвижимости не может стать агентство недвижимости и сервис по бронированию недвижимости или компания-застройщик." http://help.yandex.ru/webmaster/realty/conditions.xml  Я переписывался с Я-Н и там ответили, что такой сайт они не примут в партнеры, а рассмотреть новый фид в формате XML (YRL) Я-Н может, согласно его правилам,  через 3 месяца (так же и пишут на форумах).
       
      Предлагаю всем желающим сброситься на таковую доработку и заплатить группе технической поддержки!  Потому что доработка, набор объявлений, срок рассмотрения Яндексом займут месяцы. Вижу еще оптимизации под Я-Н, но о них после «почты».
      С уважением, к Дмитрию и ко всем форумчанам, Владимир.