Оглавление / Агентства недвижимости / Импорт объектов из файла в формате Яндекс Недвижимость XML и Авито XML

    Инструкция по написанию кода обработчика XML

    code_manual

    Все настройки импорта можно сконфигурировать в одном PHP коде

    Основные поля

    Что бы заполнить основные данные используйте следующий код

    $stock->value('--- Поле ---' , '--- Значение ---');

    Доступные поля

    parent - Категория объекта (Идентификатор категории)

    supervisor - Ответственный (Идентификатор сотрудника , если несколько то массив идентификаторов). Для продвинутой работы с ответственными можно использовать специальный метод

    name - Название объекта

    object_id - уникальный идентификатор объекта (Используется для импортов только новые, и новые + обновление уже импортированных) Можно не использовать, но тогда возможно только импорт всех объектов.

    Дополнительные поля

    Что бы заполнить доп. поля используйте следующий код

    $stock->ext('--- id доп. поля ---' , '--- Значение ---');

    для некоторых полей необходимо передавать специфически данные

    гео точка array(x => lat  , y => lng )

    файл (ссылка на файл или массив ссылок)

    Поле выбора да нет (1 - да , 0 - нет)

    Действия с полями в режиме "Новые + изменения"

    При обновлении объектов в CRM при импорте можно оставить без изменения нужные поля объекта

    $stock->synhignore(/* название совйства : 'name' или id доп свойства */ , /* flag (true - не менять свойство , false - менять) (если параметр не указан вернет текущее состояние) */)

    (supervisor) Ответственный

    Для поиска и добавления ответсвенного.

    Для получения текущего значения

    $stock->supervisor();
    
    Возвращает массив с ID ответсвенных. Если не установлено - массив будет пустой


    Для поиска и прикрепления ответственных к объекту

    $stock->supervisor($search_string , $index);
    

    $search_string - Строка поиска (ФИ(О) или телефон сотрудника)

    $index - Индекс найденного сотрудника

         false - Все найденные сотрудники

         0 - Первый найденный сотрудник

         -1 - Последний найденный сотрудник

         1+ - Индекс найденного сотрудника

    Поля в xml

    Доступ к полям осуществляется следующим кодом

    $object_node->get(/* путь до поля в XML например : 'property' */)

    Возвращается объект у которого есть след методы

    get - Получить массив со всеми данными (Тк по пути может быть несколько значений , например фото), можно передать индекс , например get(0) - Вернет первое значение , get(1) - Вернет второе значение и т. д. , можно использовать get(-1) что бы получить последнее значение


    eq - Сравнить значения в xml с другим значением например

    if ($object_node->get('property')->eq('test')) {    /*Код будет выполнен если в xml по пути property хотя бы одно значение равно test*/}
    Так же вторым параметром можно передать true , что укажет методу что проверку нужно проводить регистрозависимую, например в поле property у нас Test

    if ($object_node->get('property')->eq('Test' , true)) {    /*Код выполнится*/}if ($object_node->get('property')->eq('test' , true)) {    /*Код не выполнится*/}

    one_of - Проверка на совпадение с несколькими значениями, похож на метод eq. Например

    if ($object_node->get('property')->one_of('test' , 'test2' , 'test3')) {    /*Код будет выполнен если в xml по пути property хотябы одно значение равно test или test2 или test3*/}

    Так же первым параметром можно передать true , что укажет методу что проверку нужно проводить регистрозависимую, например в поле property у нас Test

    if ($object_node->get('property')->one_of('test' , 'test2' , 'test3')) {    /*Код выполнится*/}if ($object_node->get('property')->one_of(true , 'test' , 'test2' , 'test3')) {    /*Код не выполнится*/}

    Пример кода

    $stock_parent = false;$stock_type = false;if ($object_node->get('Category')->one_of('Квартиры','Комнаты')) {  $stock_type = 1;  $stock_parent = 3;} else if ($object_node->get('Category')->one_of('Дома, дачи, коттеджи','Земельные участки')) {  $stock_type = 3;  $stock_parent = 8;}if ($stock_parent) {  $stock->value('parent' , $stock_parent);  $stock->value('object_id' , $object_node->get('Id')->get());  if ($x = $object_node->get('Latitude')->get(-1)) {    if ($y = $object_node->get('Longitude')->get(-1)) {      $stock->ext(487 , array('x' => $x , 'y' => $y));    }  }} else {  $stock->ignore = true;}

    Возможно вам также будет интересно: Приложение «Часовые пояса»

    Вернуться к оглавлению


    Система реализуется как облачное решение SaaS, т. е. размещается на наших серверных мощностях. CRM гибко настраивается персонально под ваш бизнес. При использовании сервиса у вас будет аккаунт-менеджер для консультации и помощи в настройках