Автообновление каталога для магазина шин и дисков

Автообновление каталога для магазина шин и дисков

Для интернет-магазина крайне важно, чтобы в его каталоге товары всегда были с актуальными ценами и информацией по наличию, а также чтобы ассортимент продукции всегда обновлялся.

Среди наших работ подобные задачи встречаются часто. С такой задачей к нам обратился магазин шин и дисков. У них уже было автоматическое обновление каталогов на сайте, но работало оно некорректно. Обо всём по порядку ниже.

Для начала стоит разобраться почему тот импорт, который уже был у клиента, работал некорректно. При разборе кода импорта выяснилось, что всё обновление каталога делалось прямыми запросами в базу данных. А это само по себе ошибочно по следующим причинам:

1.       Система 1С-Битрикс постоянно обновляется, вместе с ней может обновиться и структура базы данных;

2.       При прямом обновлении записей в базе данных не запускается функционал платформы, который дополнительно просчитывает некоторые важные для работы системы параметры и записывает их в базу;

3.       Велика вероятность упустить какие-либо данные в таблицах базы данных, которые важны для системы, но могут быть просто пропущены или не замечены при разработке импорта напрямую в базу.

Также стало понятно, что данные в базе обновляются всегда, вне зависимости от того: изменились они или нет. Это создаёт дополнительную нагрузку на сервере. К тому же, без пересчёта системой важных для неё параметров при прямом импорте в базу данных была нарушена структура каталогов, что привело к неправильному отображению их на сайте и замедлению работы ресурса в целом.

Мы всегда используем API 1С-Битрикс для выполнения любых задач с сайтами на этой платформе. Это помогает избежать перечисленные выше проблемы, т.к.:

1.       Если структура базы данных в 1С-Битрикс поменяется в результате обновления платформы, то вместе с этим и поменяется код методов API, который уже будет работать с новой структурой;

2.       При обновлении данных в каталоге через API автоматически отрабатывает функционал, который обновляет важные системные параметры в базе данных;

3.       В методах API уже заложена информация об обязательных данных для каждой структуры и, если разработчик эти данные не передаёт, то получит сообщение об этом.

Для снижения нагрузки на сервер в процессе разработки автоматического импорта мы закладываем механизм хеширования данных. Он позволяет не занимая много памяти при импорте сравнивать данные в каталоге на сайте с данными из источника информации для обновления. Если хеш данных отличается, то товар в базе данных обновляется, если нет, то никакой работы над ним не проводится, либо обновляется только та часть данных о товаре, которая изменилась.

По такому же принципу и был реализован функционал автоматического обновления каталогов на сайте клиента по информации о товарах, приходящей из учётной системы.

Ну и, конечное же, было проведено огромное количество тестов для выявления различных закономерностей, типов данных, обязательных параметров и просто ошибок при разработке импорта. Такие тесты при работе с импортами/экспортами данных на сайт/с сайта занимают огромное количество времени, т.к. объём обрабатываемых данных обычно большой и иногда код работает часами, прежде чем мы можем получить отчёт о его работе.


Наши услуги в составе этого кейса


Контакты: Кузница решений
Адрес: 450522 Зубово Республика Башкортостан Россия
Телефон:+7 995 944–50–04, Электронная почта: info@crkr.pro