Онлайн-склад для интернет-магазина

Что не давало сайту интернет-магазина правильно отображать остаток товаров

настройка запроса для поиска по поставщикам
исправление кода для проверки изменений на складе
Хотите так же?

О клиенте

Клиент владеет интернет-магазином, продающим электротовары и осветительную технику. Магазин работает с брендами — производителями и поставщиками продукции. Бренды держат информацию о товарах на виртуальных обновляемых складах, откуда сайт клиента подгружает её себе в виде .xml-файла.

Проблема

Когда на складе у некоторых поставщиков кончался товар, в формируемом .xml-файле напротив этого товара ставился знак 0. Но на сайте клиента всё ещё было указано прежнее количество товаров.    

Если утрировать, то сайт клиента не понимал ноля. 

интернет магазин электрооборудования и осветительной техники

Изучая проблему, мы увидели, что сайт написан очень плохим кастомным кодом, который можно было бы реализовать Drupal-модулями. Задача кода — отрабатывать импорт товаров и разного рода проверки. Он писался постепенно: приходит новый поставщик — пишется код, причём не всегда похожий на код для другого поставщика. Этот код копился и дублировал друг друга, и в итоге логики работы поставщиков пересекались. 

Решение

Когда сайт клиента делал запрос к базе данных, поиск шёл по неправильным полям. В базе есть поля с id-номерами товаров и идентификаторами поставщика. Также в запрос была вставлена логика запроса из 1С, в чей склад тоже подгружаются данные о товарах из .xml-файлов поставщиков. В итоге данные со склада поставщика и склада 1С перемешиваются, и запрос идёт некорректно. 

онлайн склад для интернет магазина электротоваров

Поставщики не обрабатывались, потому что поиск по ним шёл не по полю с идентификатором поставщика, а по полю с алиасом (именем поставщика, указанном в ссылке в браузере), который у поставщика со временем мог измениться. По этой причине запрос формировался неправильно, но мы его исправили, добавив в него префикс поставщика.  

Следом нашлась другая проблема: функция проверки изменений на складе не работала правильно — она всегда считывала какие-то изменения и в любом случае запускала новый импорт. Функция не работала из-за устаревшего кода, в который залезали только когда что-нибудь сломается. Поэтому мы заменили устаревшую функцию на новую, которая учитывает свежие версии Drupal и PHP.

Итоги

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

Напишите нам!

Мы регулярно просматриваем не только почту, но и спам. Ваша заявка от нас не ускользнёт.

Напишите нам!

Но сначала правильно заполните обязательные поля.