Проект по интеграции сайта с 1С был направлен на автоматизацию обмена данными между двумя системами. Основная цель заключалась в обеспечении актуальности информации на сайте в реальном времени, что позволило бы улучшить пользовательский опыт и повысить эффективность бизнес-процессов.
Анализ бизнес-логики
Перед началом работ был проведен тщательный анализ бизнес-логики. В результате были выявлены расхождения номенклатур и свойств между сайтом и 1С. Это потребовало приведения данных к единому стандарту.
Планирование
Были запланированы следующие этапы и подзадачи:
- Настройка обмена номенклатурами
- Настройка обмена остатками
- Настройка обмена свойствами
- Настройка обмена заказами
Техническое задание было уточнено у заказчика, чтобы избежать недоразумений и обеспечить выполнение всех требований.
Подготовка данных
Перед началом разработки требовалось привести в порядок и создать одинаковый пул данных в 1С. Это было необходимо для обеспечения корректного обмена данными между системами.
Разработка
Для реализации интеграции была разработана событийная модель для актуализации параметров товара. 1С отправляла на сервер сайта запросы, которые обрабатывались в реальном времени. Это позволило распределить нагрузку по времени и обеспечить актуальность данных для клиентов.
Интеграции
1. Номенклатура
При создании нового товара в 1С на сайт отправляется webhook, который создает соответствующую позицию. Задача по удалению номенклатурных позиций не ставилась. Трудности возникли из-за наличия торговых предложений с товарами, имеющими разные характеристики.
2. Остатки
Раз в сутки 1С отправляет файл с остатками. Сайт опрашивает папку на наличие новых файлов и загружает данные. Трудности возникли из-за мультирегиональности сайта и необходимости создания складов под определенные регионы. Все обмены можно проверить визуально в админке сайта на 1С-Битрикс, а также выгрузить в отдельную таблицу или посмотреть историю изменений внутри админки.
3. Свойства
Для товаров был настроен обмен свойствами между 1С и сайтом как при создании, так и при изменении товара. Возникли трудности, так как заказчик не захотел менять логику в 1С, что привело к дублированию некоторых свойств (например, цвета «красно/коричневый»). Это усложнило интеграцию этих свойств в систему фильтрации на сайте.
4. Заказы
При настройке обмена заказами по логике ТЗ заказчика после оплаты заказ отправлялся в 1С, включая информацию об оплате. Трудности возникли из-за сложной кастомной логики проекта, так как внешние заказы, сделанные не на сайте, также должны были создаваться и отправляться в 1С. Бонусные купоны считались не скидкой, а оплатой, что усложняло интеграцию.
Тестирование
Тестирование проводилось на тестовом сервере в полуавтоматическом режиме с использованием авто-тестов. Это позволило выявить и устранить большинство ошибок до запуска проекта в продакшн.
Дальнейшая интеграция
Запланирована интеграция отдельного хранилища фотографий с 1С и сайтом. Несмотря на сложность проекта и наличие кастомной логики, интеграция была выполнена с небольшой задержкой по срокам из-за скрытых функций и расширения первоначального ТЗ.
Заключение
Проект по интеграции сайта с 1С был успешно завершен. Несмотря на возникшие трудности и задержку сроков, все задачи были выполнены. Интеграция позволила автоматизировать обмен данными, что существенно улучшило работу системы и повысило удовлетворенность клиентов.
Далее планируется интеграция отдельного хранилища фотографий, что еще больше улучшит функционал и удобство использования системы.