Интеграция 1С-Битрикс и Selena-online

Цена договорная • наличный расчёт, безналичный расчёт, электронные деньги
06 февраля 2019, 10:17 • 3 отклика • 45 просмотров
Существует текущий обмен сайта и сервиса по API
https://selena-online.ru/rest/documentation/fronta...

по которому все хорошое обменивается, но задача сделать обмен через новые метод с использованием событий. Что бы при обмене, обновлялись только нужные данные, а не все подряд, как это сделано сейчас.
Описание событий https://selena-online.ru/rest/documentation/syncap...


Ответ от разработчиков сервиса Селена: Сначала делаете полное обновление, как сейчас. Запоминаете UTC-время начала этого обновления, допустим, время Х.

Затем выполняете регулярную процедуру опроса регистра событий ресурсом events/getlist, начиная со времени Х.
Анализируете каждое событие, и выполняете обновление информации, актуальность которой зависит от этого события. После обновления сохраняете время его окончания как Х, и следующую проверку выполняете от этого времени.


Что именно обновлять в вашем случае - сказать по понятной причине не могу, т.к. это зависит от того, какая у вашей системы архитектура. Следующие заметки могут помочь сориентироваться.


apartment
INSERT,UPDATE - изменение основных характеристик категории номера (каюты).


Если был INSERT, добавляете категорию в свой справочник. Добавление всех остальных подчинённых объектов (номеров, цен) можно выполнить после на основе последующих событий для этих объектов.
Если меняется (UPDATE) кол-во основных мест, нужно выполнить обновление наличия мест offers с соотв. параметром apartmentid.


aprice
INSERT,UPDATE - изменение цены категории номера (каюты).

Событие возвращает id строки прайса (priceid), который можно использовать в запросе apartmentprice. Этот запрос вернёт также apartment_id.


order
DELETE,INSERT,UPDATE - изменения в заказе с указанным id. Если вы не храните на своей стороне подробную информацию о заказах, то это событие анализировать необязательно.

order_payment
DELETE,INSERT,UPDATE - изменения в платежах, связанных с заказом, чей id содержит событие. Если вы не обрабатываете на своей стороне платежи в заказах, то это событие анализировать необязательно.

room
DELETE,INSERT,UPDATE - изменения в комнатах (каютах). Отражается на наличии мест.


room_lock
DELETE,INSERT,UPDATE - изменения в блокировке комнаты (каюты). Блокировка ставится (INSERT) или снимается (DELETE) на всю каюту целиком. Отражается на наличии мест.

room_place_lock
DELETE,INSERT,UPDATE - блокировка или освобождение ОДНОГО места (основного) в номере (каюте). Например, в связи с бронированием или переразмещением туристов. Для 4-местной комнаты бронирование или освободжение вызовет сразу 4 таких события, и в общем случае потребуется только 1 раз уточнить наличие мест для соответствующей категории кают. Также событие может возникнуть при изменении пола туриста.


sprice
DELETE,INSERT,UPDATE - изменение цены на услугу.

tour
DELETE,INSERT,UPDATE - изменение в туре (круизе). Могут измениться даты тура, название, маршрут и т.д.


tour_stop
DELETE,INSERT,UPDATE - изменения в описании остановок и стоянок по ходу тура.

Если будут вопросы или предложения - обращайтесь, обсудим.

Отзывы
Отличный исполнитель, рекомендую.
~ 5 лет назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
Заказчик оперативно отвечал на поставленные вопросы, Правильно составил задачу.
~ 5 лет назад