Взаимодействие с 1С
Модуль «Взаимодействие с 1С», синхронизируя пользователей в 1С и в системе Nemo.Travel, дает возможность выставлять счета после бронирования перелета в Nemo.Travel, на основе ответа из 1С. Cчет формируется на основе таких данных, полученных их 1С, как сбор и комиссия по перелету и пр. Также ответ 1С может определять, возможна ли выписка билета, в зависимости от размера депозита/кредита, заведенного в 1С.
Содержание
Процесс взаимодействия
Если на момент включения модуля у клиента уже есть сеть компаний, информация о которых заведена в 1С, то данные об этих компаниях можно массово импортировать в систему Nemo.Travel. Процесс загрузки пользователей, настройка шаблонов для оповещения компаний и регистрация новых пользователей подробно описаны в статье Самостоятельная регистрация компаний
Получение счета из 1С
Модуль Взаимодействие с 1С позволяет с момента создания бронирования в асинхронном режиме получать из системы 1С данные о счете, выставленном в системе 1С: его номер, срок оплаты, комиссию компаний (далее субагента), реквизиты субагента, статус активности субагента (опционально). На основании этих данных система Nemo.Travel формирует бланк счета, который отображается пользователю для печати. Счет формируется однократно, сразу после получения данных из 1С. Созданный счет сохраняется в Nemo.Travel как документ. Ссылка на загрузку счета показывается на странице просмотра заказа. Счет перезапрашивается в случае изменения брони после сихронизации. Изменённый счет будет иметь новую дату создания и также доступен на странице заказа.
Описание процесса
Сразу после создания бронирования система Nemo.Travel отправляет XML запрос в систему 1С на получение данных для выставления счета на оплату. Передаваемые данные описаны в следующем файле:
Файл:Поля соответствия xml для счета.xlsx.
Статус ответа запрашивается асинхронно. Получаем из 1С следующие данные:
- Номер счета
- Дата счета
- Номер PNR
- Комиссия субагента — скидка.
- Сбор субагента — сбор.
- Реквизиты субагента — 1С код контрагента.
- Сумма к оплате — итоговая сумма.
Счет формируется сразу после получения данных из 1С. Все созданные счета хранятся в Nemo.Travel в виде документа.
При использовании модуля «Платежки 2.0» каждый способ оплаты типа «Счет» («Инвойс») использует собственный шаблона счета, который определяется в разделе «Финансы и платежи» → «Платежные методы» → «Управление шлюзами» → «Инвойс» → «Реквизиты».
Во время получения данных о счете пользователю доступна кнопка «Выписать».
В случае если скрипт не получит в течение определенного времени (php_timeout
) ответа от 1С, пользователю показывается сообщение «Проблема связи, попробуйте еще раз, либо позвоните по тел…». Если от 1С получен отрицательный ответ, то пользователю показывается текст сообщения, полученный из 1С. При нажатии на кнопку «Выписать» она становится неактивной во избежание частых повторных нажатий. После обновления страницы она снова становится доступной.
В таблице заказов в личном кабинете в столбце «Действия» появляется ссылка «Получить счет», с помощью которой клиент может получить счет, если ответ не был получен сразу. Причем ссылка «Получить счет» активна только в том случае, если есть связь с 1С.
Расширение ответа о возможности выписки
Сразу после бронирования авиаперелета пользователям В2В доступна кнопка «Выписать». При этом не имеет значения, имеется ли счет или нет. Субагент может нажать на кнопку «Выписать», после этого отправляется запрос на возможность выписки в 1С. В запросе передаются следующие данные:
- ID компании из 1С.
- Номер счета в 1С (если есть).
- Тариф.
- Таксы.
- Комиссия валидирующего перевозчика.
- Номер ПНР.
- Скидка из счета (если есть).
- Сбор из счета (если есть).
- Сумма к оплате из счета (если есть).
- Сумма к оплате – Total price.
- Валюта поставщика – GDSCurrency.
- Валюта заказа – OrderCurrency.
- Курс валюты заказа – OrderCurrencyRate.
- Дата начала.
Поля 2, 7, 8 и 9 являются необязательными. Если счет уже загружался, то в запросе будет полный набор полей. Если счет еще не загружался, то поля 2, 7, 8, 9 будут передаваться пустыми. В ответе из 1С получаем один из возможных вариантов: «Да» или «Нет». Если получен ответ «Да», то автоматически будет отправлен запрос в ГРС непосредственно на выписку билета. Если получен ответ «Нет», система выведет причину такого ответа на страницу заказа:
<m:Opportunity>Да</m:Opportunity> <m:Message1>Тест</m:Message1>
Бронь будет действительна до наступления таймлимита и аннулируется автоматически или выписывается в случае, если субагент уладил финансовые вопросы и снова нажал «Выписать».
Расширение протокола (данные о выписанном заказе)
При включенном модуле «Взаимодействие с 1С» после выписки авиабилета система Nemo.Travel передает данные, описанные в файле «Поля соответствия xml для счета». Обмен данными осуществляется в рамках одного запроса к 1С. В ответе на запрос в 1С приходит следующая информация:
- Необходимые данные для формирования обновленного счета на стороне Nemo.Travel в агентском личном кабинете и на странице заказа.
- Ответ
success «1»
– запись удачна илиerror «0»
– запись не прошла. - Два сообщения:
message 1
(предназначено для информирования клиента), если не пусто, то отображается всплывающим сообщением для клиента (если он в системе) иmessage 2
, если не пусто, то отображается всплывающим сообщением для клиента (если он в системе).
Если в момент передачи данных о выписанном заказе в Nemo.Travel нет номера счета, то формируется счет по полученным в ответе данным.
Если получен ответ «0», Nemo.Travel повторяет попытку передать неуспешно выгруженный заказ в 1С каждые 15 минут. Ограничение: всего может быть до 30 попыток.
В случае войдирования заказа в 1С обязательно передается следующая информация: PNR, номера электронных билетов, статус билета (0 = войд).
В ответ получаем либо success «1»
– запись удачна, либо error «0»
– запись не прошла.
Аналогично, если получен ответ «0», Nemo.Travel повторяет попытку передать неуспешно выгруженный заказ в 1С каждые 15 минут. Ограничение: всего может быть до 30 попыток.
Все заказы с «error» попадают в специальную очередь в личном кабинете: «Проблемы экспорта». Там можно увидеть все неудачные выгрузки на текущий момент.
В личном кабинете в таблице заказов появляется специальный столбец: «Ручная загрузка» с двумя возможными значениями: «Загрузить» или «Загружен». Причем «Загрузить» отображается в виде ссылки, нажатие на которую означает, что выгрузка по этому заказу прошла успешно и более не нужно повторять попыток выгрузить его. Т.е. статус этого заказа меняется с «0» на «1». При этом значение столбца «Ручная загрузка» для этого заказа автоматически станет «Загружен» (уже не в виде ссылки).
Также под таблицей очереди «Проблемы экспорта» есть кнопка (для ручного инициирования загрузки) «Загрузить билеты со статусом «error» повторно», нажатие которой запускает массовую выгрузку в 1С по всем заказам со статусом «0».