Интеграция 1С-Битрикс и Selena-online
Цена договорная
•
наличный расчёт, безналичный расчёт, электронные деньги
Существует текущий обмен сайта и сервиса по 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 - изменения в описании остановок и стоянок по ходу тура.
Если будут вопросы или предложения - обращайтесь, обсудим.
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 - изменения в описании остановок и стоянок по ходу тура.
Если будут вопросы или предложения - обращайтесь, обсудим.
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.