Инструкция для работы с ценами Туристического оператора "Библио-Глобус"

1. Авторизация 2. Выгрузка списка цен 3. Удаление списка цен 4. Добавление списка цен 5. Коды ошибок

1. Авторизация

Используется аутентификация через форму и получение/передачу кук.

2. Выгрузка списка цен

Аналог отображения матрицы цен. Для получения списка цен необходимо выполнить запрос:
https://www.bgoperator.ru/accomodation?task=apigetnsprice&nsId=104610284380&pBeg=01.01.2000&pEnd=01.02.2000&groupId=0,

nsId id НСа
pBeg дата начала периода получения цен
pEnd дата конца периода получения цен
groupId номер группы

В формате XML лежит информация:
<prices>
  <pricenode>
    <id>109400010812175280:1</id>
    <price>10.0000</price>
    <agemin>12</agemin>
    <agemax>99</agemax>
    <group>0</group>
    <idspec>0</idspec>
    <percvalue>0.0000</percvalue>
    <paydays>0</paydays>
    <staydays>0</staydays>
    <dbeg>01.01.2000</dbeg>
    <dend>01.02.2000</dend>
    <dspbeg_beg>01.01.1970</dspbeg_beg>
    <dspbeg_end>31.12.4712</dspbeg_end>
    <dspend_beg>01.01.1970</dspend_beg>
    <dspend_end>31.12.4712</dspend_end>
    <daysbeg>0</daysbeg>
    <daysend>0</daysend>
    <ispercent>0</ispercent>
    <isblocked>0</isblocked>
    <valut>EUR</valut>
    <mindaystill>0</mindaystill>
    <maxdaystill>0</maxdaystill>
    <idns>104610284380</idns>
    <idvr>102510005340</idvr>
    <iddu>101910005076</iddu>
    <idbase>null</idbase>
    <dregbeg>01.01.2000 13:23:53</dregbeg>
    <dregend>31.12.4712 00:00:00</dregend>
    <inbase>1</inbase>
  </pricenode>
  ...
</prices>

где:
тег значение
id идентификатор цены
price цена
agemin/agemax минимальный/максимальный возраст проживающего [0;200)
group принадлежность цены к группе; возможные значения [0;8]; значение по умолчанию 0
idspec
idspec идентификатор спецпредложений
109820469834 Раннее бронирование на прилеты (в % от себя)
109832837270 Раннее бронирование на completed stay (в % от себя)
109820435510 Раннее бронирование на даты проживания (в % от себя)
109832398442 Таксы (заносить только в БС)
109810009261 на прилеты
109810009264 на прилеты с указанием кол-ва ночей проживания
109810009262 на период completed stay
109810009263 с указанием даты выезда
109810009260 на даты проживания
109878776851 на даты проживания с указанием кол-ва ночей проживания
109810009265 с ограничением дат прилета и отлета
109820438905 Kick Back на даты проживания (в % от себя, заносить только в БС)
109820493332 Дельта per person per NIGHT на прилеты с указанием кол-ва дней до заезда (заносить только в БС)
109820493334 Дельта per person per NIGHT на период completed stay с указанием кол-ва дней до заезда (заносить только в БС)
109820493331 Дельта per person per NIGHT на даты проживания с указанием кол-ва дней до заезда (заносить только в БС)
109820563003 Дельта per person per TOUR на период completed stay с указанием кол-ва дней до заезда (заносить только в БС)
109820411690 Pay-Stay (бесплатных последних ночей) на даты проживания
109810024930 Pay-stay (бесплатных последних ночей) completed stay
109810009267 Pay-stay (бесплатных последних ночей) на прилеты
109810009268 Pay-stay (бесплатных последних ночей) с указанием дат выезда
109875696572 Pay-stay (бесплатных первых ночей) completed stay
109875696574 Pay-stay (бесплатных первых ночей) на прилеты
109875696575 Pay-stay (бесплатных первых ночей) с указанием дат выезда
109875696571 Pay-stay (бесплатных ночей по средней цене) completed stay
109875696570 Pay-stay (бесплатных ночей по средней цене) на прилеты
109875696569 Pay-stay (бесплатных ночей по средней цене) с указанием дат выезда
109875696566 Pay-stay (бесплатных самых дешевых ночей) completed stay с указанием кол-ва дней до заезда
109875696567 Pay-stay (бесплатных самых дешевых ночей) на прилеты с указанием кол-ва дней до заезда
109875696568 Pay-stay (бесплатных самых дешевых ночей) с указанием дат выезда и кол-ва дней до бронирования
109875696833 Pay-stay (бесплатных самых дорогих ночей) completed stay
109875696565 Pay-stay (бесплатных самых дорогих ночей) на прилеты
109875696564 Pay-stay (бесплатных самых дорогих ночей) с указанием дат выезда
109820411697 Pay-Stay масштабирование (бесплатных последних ночей) на даты проживания с указанием кол-ва дней до заезда
109875696581 Pay-stay масштабирование (бесплатных последних ночей) completed stay
109875696578 Pay-stay масштабирование (бесплатных последних ночей) на прилеты
109875696576 Pay-stay масштабирование (бесплатных последних ночей) с указанием дат выезда
109810357708 Разовая услуга (заносить только в БС)
percvalue значение процента от цены в базовой ячейке
paydays количество ночей pay (если 0 - любое кол-во)
staydays количество ночей stay (если 0 - любое кол-во)
dbeg/dend логическая дата начала/конца действия цены (dd.mm.yyyy)
dspbeg_beg/dspbeg_end приезд от/до (dd.mm.yyyy, по умолчанию 01.01.1970/31.12.4712 - любая дата)
dspend_beg/dspend_end выезд от/до (dd.mm.yyyy, по умолчанию 01.01.1970/31.12.4712 - любая дата)
daysbeg/daysend количество ночей проживания от/до (если 0 - любое кол-во)
ispercent флаг, указывающий, что цена занесена в % от цены в базовой ячейке
1 - флаг установлен => цена указана в процентах (percValue) от цены в базовой ячейке (idBase)
0 - флаг не установлен => цена занесена в абсолютной величине (price)
isblocked признак заблокированной цены:
>0 - цена заблокирована (т.е. не используется в расчетах)
0 - цена не заблокирована
valut валюта цены
mindaystill/maxdaystill количество дней до бронирования (если 0 - любое кол-во)
idns идентификатор Назначенной стоимости (НСа)
idvr идентификатор Варианта размещения (ВРа)
iddu идентификатор Услуги
idbase идентификатор базовой ячейки
заполняется, если isPercent = 1
dregbeg/dregend физическая дата начала/окончания действия цены (dd.mm.yyyy HH:mm:ss)
inbase флаг включения цены в базовую стоимость;
1 - флаг установлен => цену включать в базовую стоимость;
для цены должно выполниться 3 условия:
- тип НСа = Назначенная стоимость
- ВР ячейки = DBL или SGL
- у Услуги ячейки атрибут Включать в услугу части тура = "Нет"
0 - флаг не установлен

3. Удаление списка цен

Аналог удаления цен кнопкой "Удалить цены с выбранным диапазоном возрастов". Чтобы удалить цены на интервале по НС-у и возрастам нужно выполнить запрос:
https://www.bgoperator.ru/accomodation?task=apidelprices&nsId=104610284380&pBeg=01.01.2000&pEnd=01.02.2000&ageMin=12&ageMax=99

nsId id НСа
pBeg дата начала периода удаления цен
pEnd дата конца периода удаления цен
groupId номер группы (если не указывать, удалятся цены во всех группах)
ageMin возраст начала диапазона удаления цен
ageMax возраст конца диапазона удаления цен

4. Добавление списка цен

Аналог копирования всей матрицы цен в текущем номере (на период, из группы). Надо передавать xml в таком же формате, как возвращает Выгрузка списка цен. Сразу можно передать цены нескольких НС-ов в POST-запросе:
https://www.bgoperator.ru/accomodation?task=apiaddprice
Если цен в НС-е много, то необходимо сначала копировать в СС, а потом из СС в НС.

5. Коды ошибок

При обработке запроса возможны следующие ошибки:

100 не хватает прав
101 общая ошибка
102 неверный период при вставке цен
103 общая ошибка при копировании цен
104 общая ошибка при получении цен
105 общая ошибка при удалении цен