metrpro

Выбор объявлений для выгрузки в Я.Недвижимость

Recommended Posts

Возможно, уже обсуждалось, но я искал и не нашел.

 

Сабж такой, что есть сколько-то объявлений, но выгрузить я хочу только некоторые из них - как указать этот параметр при формировании xml-файла?

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


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

Пока выгружается всё, что определено настройками в таблице ассоциаций в Приложениях->Выгрузка Яндекс.Недвижимость , отдельного чекбокса "выгружать Яше" в объявлениях нет... 

Надо делать чекбокс в таблицу data, по принципу выгрузки для AFY, ЦИАН и т.п.

Константин... ?!

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


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

Постараюсь через выходные сделать. Это действительно полезная и назревшая штука. Единственное, что я не могу пока определиться, делать ли это в виде чекбокса или в виде фильтрационной программы, например "country_id=1&user_id=5&price_min=1000".

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


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

Наверное лучше в виде чекбокса, чтобы по умолчанию был включен, если кому надо - снимут галку.

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


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

Плюсую, однозначно чек/бокс, можно еще рассмотреть вариант листбокса с мультвыбором

 

Мультивыбора чего? Там же вроде только выгружать\не выгружать.

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


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

Плюсую, однозначно чек/бокс, можно еще рассмотреть вариант листбокса с мультвыбором

Мы тут говорили о чекбоксе для выгрузки при размещении объявления...

 

Мультивыбора чего? Там же вроде только выгружать\не выгружать.

Но по ходу дела, нарисовалась еще одна идея - чекбоксы для выгрузки сделать в списке объявлений в ЛК и дать возможность выделять/отключать их списком ...

 

А может чекбоксы еще и сделать платными? Как спецпредложения? :)

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


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

Я выдал в репозиторий обновления по ЯН с возможность указания признака по которому будут выбираться объявления для выгрузки. Скоро Дима выдаст его под обновление, но кому не терпится применить у себя, могут писать тут, я внесу корректировки сразу на сайтах до выхода обновления.

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


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

Настройка носит имя Системное имя поля типа checkbox фильтрующего записи для выгрузки (apps.yandexrealty.filtering_checkbox_name)

 

В него нужно\можно указать системное имя поля в модели которое будет фильтровать записи. Формально поле должно быть типа checkbox, но не формально может быть любое поле, значение которого в БД принимает варианты 1 или 0. Если вписать туда имя поля, то все основные условия выборки дополнятся фильтром по этому полю. Если например я хочу отдавать только спецпредложения, я могу указать там значение

hot

и тогда в выгрузку пойдут все активные объявления согласно установленного лимита времени и которые отмечены как спецпредложения.

Так же можно завести отдельное поле типа чекбокс с именем напр. export_yandex и указать это имя в настройке. Тогда дополнительная фильтрация будет осуществляться с учетом значения этого поля.

 

Установка этой настройки не отменяет встроенной фильтрации по активности и по параметру Количество дней за которое будут выбраны объявления для выгрузки (apps.yandexrealty.days_interval), а лишь дополняет их.

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


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

Хорошо бы добавить и редактируемое поле отвечающее за признак продажи! Как в Афи

По умолчанию оно price, но далеко не всегда и не у всех, в моем случае это price_discount.

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


Ссылка на сообщение
Поделиться на других сайтах
В 18.10.2016 в 14:08, Александр Лубянский сказал:

отвечающее за признак продажи! Как в Афи

устанавливать настроечно поле, которое будет считаться таким, что содержит в себе цену продажи?

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


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

Совершенно верно!

В Афи я указал Поле отвечающее за признак продажи price_discout и все равно выводит сумму из price(((

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


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

Совершенно верно!

В Афи я указал Поле отвечающее за признак продажи price_discout и все равно выводит сумму из price(((

Надо заглянуть в модуль генерации XML, может там кроме price ничего другого и нет, тогда придется добавить условие, что если есть цена со скидкой, то выбор из price игнорируем и выводим из price_discount

Второй вариант - кеш и сроки формирования XML, вы экспериментируете а в XML старая генерация, смотрите дату и время формирования фида/файла XML 

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


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

Собственно что вижу:

        
        $ret.='<price>';
        
        $currency=$this->currencyCheck($d['currency_id']['value_string']);
        if(!$currency && ''!=trim($this->getConfigValue('apps.afyexporter.default_currency_code'))){
            $ret.='<currency>'.self::symbolsClear($this->getConfigValue('apps.afyexporter.default_currency_code')).'</currency>';
        }elseif(!$currency){
            $hasError=true;
            $logs[]=date('d-m-Y H:i:s', time()).' '.'ERROR: Record ID '.$d['id']['value'].' cant be exported. Unknown currency.';
        }else{
            $ret.='<currency>'.$currency.'</currency>';
        }
        
        
        
        if(isset($d['price']) && $d['price']['value']!=''){
            $ret.='<value>'.(int)str_replace(' ', '', $d['price']['value_string']).'</value>';
        }else{
            $hasError=true;
            $logs[]=date('d-m-Y H:i:s', time()).' '.'ERROR: Record ID '.$d['id']['value'].' cant be exported. Unknown price.';
        }
        if(in_array($associated_id, array(175, 187, 208, 213, 189, 190, 234, 102, 50, 124, 195, 202, 203, 201))){
            if(isset($d['price_per']) && (int)$d['price_per']['value']==0){
                $ret.='<unit>total</unit>';
            }else{
                $ret.='<unit>total</unit>';
                //$hasError=true;
                //$logs[]=date('d-m-Y H:i:s', time()).' '.'ERROR: Record ID '.$d['id']['value'].' cant be exported. Invalid price_per value.';
            }

Отвечает за вывод.

Генерация по крайнему объекту, стоимость указана только в price_discoun, в price пусто, по умолчанию 0

<price><currency>RUR</currency><value>0</value><unit>total</unit></price>

Сорри это был афи

                $rs.='<price>'."\n";
                $rs.='<value>'.self::symbolsClear($data_item['price']).'</value>'."\n";
                if(isset($form_data_shared['currency_id']) && isset($data_item['currency']) && $data_item['currency']!=''){
                    $currency=self::currencyCheck($data_item['currency']);
                }else{
                    $currency=$this->currency;
                }
                $rs.='<currency>'.$currency.'</currency>'."\n";
                
                if($operational_type=='rent' && isset($data_item['period']) && $data_item['period']!=''){
                    $rs.='<period>'.self::symbolsClear($data_item['period']).'</period>'."\n";
                }
                if(isset($form_data_shared['unit']) && isset($data_item['unit']) && $data_item['unit']!=''){
                    $rs.='<unit>'.self::symbolsClear($data_item['unit']).'</unit>'."\n";
                }
                
                $rs.='</price>'."\n";
                

Яндекс

 

$rs.='<value>'.self::symbolsClear($data_item['price_discount']).'</value>'."\n";  Меняем....

В настройках жмем Экспорт

Афи

if(isset($d['price_discount']) && $d['price_discount']['value']!=''){
            $ret.='<value>'.(int)str_replace(' ', '', $d['price_discount']['value_string']).'</value>';

P.S. Но... все равно не дело! Слетит после обновления

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


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

Сразу сделай резервную копию admin_bak.php там-же, в модуле выгрузки, на случай обновления. Чего дожидаться-то?

А в итоге вывод значения из price вообще убрал? Не совсем понял, уже 3 ночи и мозг не соображает... Если будет объект с ценой без скидки, то выгрузится 0 или без цены?  Лучше будет задать условие - выводить price если price_discount не заполнено, иначе price_discount, тогда будет присутствовать первое или второе значение цены.

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


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

Сразу сделай резервную копию admin_bak.php там-же, в модуле выгрузки, на случай обновления. Чего дожидаться-то?

А в итоге вывод значения из price вообще убрал? Не совсем понял, уже 3 ночи и мозг не соображает... Если будет объект с ценой без скидки, то выгрузится 0 или без цены?  Лучше будет задать условие - выводить price если price_discount не заполнено, иначе price_discount, тогда будет присутствовать первое или второе значение цены.

Всегда теплица надежда, что оперативно будет обнова!)))

Совсем затер price! Выгрузки так или иначе нет по двум параметрам цены!

 

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


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

В Афи я указал Поле отвечающее за признак продажи price_discout и все равно выводит сумму из price(((

Значения в настройках приложения под именем "Признак продажи\аренды" обозначают именно признак продажи или аренды. Например поле Тип операции (optype) обозначет тип контракта в виде селекта выбора 1-аренда, 2-продажа. Тогда в афи-настройках следует указать optype:1 для признака аренды и optype:2 для признака продажи. Это не цена продажи, а именно признак того, как определить объект, который продается, а не сдается и наоборот.

Указателя откуда брать цену в афи нет. подобное было реализовано только в афито-выгрузчике кажется и парочке узкоспециальных приложений. Большинство приложений ожидает цену (при чем без разницы аренды или продажи) в поле price.

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


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

Значения в настройках приложения под именем "Признак продажи\аренды" обозначают именно признак продажи или аренды. Например поле Тип операции (optype) обозначет тип контракта в виде селекта выбора 1-аренда, 2-продажа. Тогда в афи-настройках следует указать optype:1 для признака аренды и optype:2 для признака продажи. Это не цена продажи, а именно признак того, как определить объект, который продается, а не сдается и наоборот.

Указателя откуда брать цену в афи нет. подобное было реализовано только в афито-выгрузчике кажется и парочке узкоспециальных приложений. Большинство приложений ожидает цену (при чем без разницы аренды или продажи) в поле price.

У меня несколько иначе реализована Аренда, это отдельная категория с подкатегориями, я в соседней ветке описал, что как мне кажется, логика вывода стоимости и стоимости со скидкой работает неверно 

 

Отсюда все танцы с бубнами!

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


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

У меня несколько иначе реализована Аренда, это отдельная категория с подкатегориями

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

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


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

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

Возможно... но мне кажется это не совсем верно мешать аренду и продажу в рамках одного раздела))

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


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

Возможно... но мне кажется это не совсем верно мешать аренду и продажу в рамках одного раздела))

и опять все упирается в то, что будет подразумеваться под пунктом раздела (или того, что записано в Структура). Ведь его можно мыслить как тип недвиги (квартира, дом, участок), а можно как рубрику (продажа квартир, элитная недвига, учатки в аренду). И первое значительно уже чем второе, что более гибко, так как "простые" типы я могу смешивать с другими свойствами и получать диковинных зверей - напр. тип "квартира" + количество комнат=3 получается трехкомнатные квартиры. Прибавив к этому признак контракта я получу продажу\аренду трешек. А смешав тот же тип и галочку у моря у меня будет "квартиры у моря". А вот комбинирование типа "продажа квартир" уже меня ограничивает именно "продажей".

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

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


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

и опять все упирается в то, что будет подразумеваться под пунктом раздела (или того, что записано в Структура). Ведь его можно мыслить как тип недвиги (квартира, дом, участок), а можно как рубрику (продажа квартир, элитная недвига, учатки в аренду). И первое значительно уже чем второе, что более гибко, так как "простые" типы я могу смешивать с другими свойствами и получать диковинных зверей - напр. тип "квартира" + количество комнат=3 получается трехкомнатные квартиры. Прибавив к этому признак контракта я получу продажу\аренду трешек. А смешав тот же тип и галочку у моря у меня будет "квартиры у моря". А вот комбинирование типа "продажа квартир" уже меня ограничивает именно "продажей".

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

Есть такое! Но в рамках сео я бы создавал готовые конструкции и скармливал поисковикам! + актуальные моменты выводил в отдельном блоке.

В поведенческой логике много вариантов, мОзгу посетителей лучше скармливать готовые алгориты ;-)

Social engineering rules!

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


Ссылка на сообщение
Поделиться на других сайтах
Ошибка синтаксического анализа XML: некорректно
Адрес: http://realizator.info/yandexrealty/
Строка 11009, символ 44:	2 независимых источника электроснабжения, 70 Вт на 1 кв.м.
--------------------------------------------------^

Шо делать?! Куда курить?

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


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

А нефиг объявления копировать без очистки. Проблема в левом символе, вот строка:

стр. 11202	2 независимых источника электроснабжения, 70 Вт на 1 кв.м.
стр. 11238	Стоимость аренды включает НДС, эксплуатационные расходы и1 машиноместо.

блин, не перенеслось сюда. Короче,

  • перед 70 стоит маркер разметки маркированного списка (точка как в начале этой строки)
  • между и*1 машиноместо тоже присутствует левый символ,

убери в объявлении

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


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

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

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

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

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

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

Войти

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

Войти сейчас