Предложенное здесь решение является рекомендуемым.
Схема обмена данными:
Описание процесса обмена данными:
- Любое действие по добавлению нового заказа или покупателя или их изменение через раздел администратора или публичную часть сайта генерирует событие, порождающее вызов функций обмена.
- Новые/измененные данные собираются и отправляются по Email. Так как данный процесс происходит при возникновении 1 события, то Email содержит информацию только об 1 объекте.
- После обработки полученных данных внешней системой, их необходимо импортировать в Amiro CMS для сохранения целостности информации следующим образом:
- Импортируемый файл (заказов, покупателей) размещается в директории на Amiro CMS через FTP или другой протокол, например SSH.
- Через HTTP производится вызов модуля импорта Amiro CMS
Следует обратить внимание:
- Процесс импортирования данных может занимать достаточно большое время, если количество импортируемых данных велико. Поэтому перед загрузкой файла в требуемую директорию в Amiro CMS, необходимо убедиться, что такие файлы в данные момент там отсутствуют. В противном случае перезапись импортируемого файла может привести к потере некоторых данных.
- Клиент, вызывающий функцию импорта через HTTP, не должен закрывать открытое соединение по жестко зафиксированному таймауту, потому что Amiro CMS в течение всего процесса импортирования выдает в HTTP поток данные для поддержки открытого соединения. Таким образом, не должно быть лимита на время, отводимое на импорт данных.
- Порядок импортирования в Amiro CMS всегда должен быть следующим: сначала необходимо произвести импорт покупателей, а только затем заказы. Это необходимо вследствие того, что заказы должны ссылаться на уже существующих покупателей. В случае отсутствия необходимого покупателя, будет сообщено об ошибке или создан объект покупателя (в зависимости от настроек).
- Всегда необходимо проверять результаты работы импорта, какие данные были импортированы, а какие импортировать не удалось.
|