О заказчике
Интернет-магазин TeslaGear — компания, специализирующаяся на продаже запчастей. Каталог насчитывает около 30–35 тысяч товарных позиций. Магазин работает с 4–5 поставщиками, прайс-листы которых содержат до 60 тысяч позиций каждый.
Ключевая задача — автоматизировать процесс импорта остатков и цен от поставщиков, а также гибко отображать эту информацию на карточках товаров.
Задача клиента
Клиент обратился с задачей доработать интернет-магазин на Webasyst Shop-Script. Основные требования:
- • Импорт остатков и цен от поставщиков — загрузка Excel/CSV-файлов с артикулом, количеством и ценой
- • Отображение складов на карточке товара — основной склад + склады поставщиков с ценами
- • Возможность добавления в корзину с любого склада — с учётом цены конкретного поставщика
- • Автоматическое создание новых товаров при импорте — если артикул не найден
- • Крон-загрузка прайсов — автоматическое обновление цен и остатков по расписанию
Что было сделано
✅ Подготовка и настройка
- 🔹 Развёрнут тестовый сервер для безопасной разработки
- 🔹 Установлен и настроен Webasyst Shop-Script
- 🔹 Загружена база данных клиента (30–35 тыс. товаров)
✅ Разработка плагина для импорта прайсов
- 🔹 Реализован ручной импорт Excel/CSV-файлов с артикулом, количеством и ценой
- 🔹 Добавлена опция «обнулять остатки склада перед импортом» — товары, которых нет у поставщика, не висят в наличии
- 🔹 Реализована опция «создавать новый товар при импорте» — если артикул не найден, карточка создаётся автоматически
- 🔹 Настроена гибкая логика работы с ценой: если цена не указана — показывается цена карточки или надпись «уточнить цену»
- 🔹 Добавлена возможность загрузки файлов в разных кодировках (автоопределение или ручной выбор)
- 🔹 Настроено сопоставление полей: часть данных берётся из файла, часть — фиксируется вручную (сроки поставки и т.д.)
✅ Автоматическое обновление через крон
- 🔹 Созданы профили прайсов для каждого поставщика
- 🔹 Настроена загрузка прайсов по ссылке (Excel/CSV) через cron-задания
- 🔹 Реализовано кэширование данных (Redis) для работы с большими объёмами (до 60 тыс. позиций)
- 🔹 Добавлен столбец «Количество успешно изменённых товаров» в логах импорта
- 🔹 Настроена отправка уведомлений о результатах импорта (на email и в интерфейсе)
✅ Отображение складов и цен на карточке товара
- 🔹 Реализован вывод основного склада (с галочкой) и складов поставщиков в отдельном блоке
- 🔹 Для каждого склада отображается своя цена и остаток
- 🔹 Добавлена возможность добавления товара в корзину с любого склада
- 🔹 Настроен приоритет настроек: индивидуальные настройки поставщика имеют приоритет над общими
✅ Бэкенд-правки и доработки
- 🔹 Доработаны настройки плагина: добавлены подсказки для каждого поля, уточнена логика работы
- 🔹 Реализован приоритет настроек конкретного поставщика над общими
- 🔹 Добавлена возможность отключать столбцы при импорте (галкой)
Результат
Разработан и внедрён плагин для автоматизации работы с поставщиками:
- ✅ Настроен импорт остатков и цен от 4–5 поставщиков (ручной и автоматический через крон)
- ✅ На карточке товара отображаются все склады с актуальными ценами и остатками
- ✅ Клиенты могут выбрать поставщика и добавить товар в корзину по его цене
- ✅ Новые товары создаются автоматически при импорте — не нужно заводить вручную
- ✅ Реализовано кэширование для работы с большими объёмами данных
Используемые технологии и решения
Webasyst Shop-Script | PHP | MySQL | Redis (кэширование) | Excel/CSV-импорт | Cron-задания | API-интеграции | HTML/CSS/JS
Объем трудозатрат:
| Задача | Часы |
|---|---|
| Развёртывание тестового сервера | 1 |
| Установка и настройка Webasyst, загрузка БД | 8 |
| Перенос плагина на боевой сервер | 1 |
| Разработка плагина импорта (ручной + крон) | 13 |
| Настройка отображения складов и цен на карточке | 8 |
| Правки бэкенда (настройки, приоритеты, логика) | 5 |
| Настройка кэширования (Redis) и оптимизация | 2 |
| Тестирование, доработки, финальная проверка | 3 |
| Итого | 41 |


