Клиент — производственная компания ИМЕКС-пласт, специализирующаяся на изготовлении пластиковой тары для косметики (флаконы, баночки, упаковка). Компания нуждалась в полнофункциональном интернет-магазине, который бы не только позволял клиентам заказывать продукцию онлайн, но и автоматически интегрировался с существующей бизнес-системой 1С для синхронизации заказов, контрагентов и складских остатков.
Основные задачи проекта:
- Создать удобный каталог товаров с детальными характеристиками (цвет, тиснение, размеры коробок, количество штук в коробке)
- Реализовать систему оптовых скидок в зависимости от объема заказа (от 3% при заказе от 3000 штук)
- Интегрировать магазин с системой 1С для автоматической передачи заказов и данных клиентов
- Настроить расчет стоимости доставки через API СДЭК с учетом габаритов и веса товаров
- Подключить прием платежей через Сбербанк
- Обеспечить возможность заказа от 1 коробки с минимальной суммой заказа от 10 000 рублей
- Создать удобную админ-панель для управления товарами, заказами и скидками
Проект реализован на базе Django Oscar — мощного фреймворка для создания интернет-магазинов на Python. Это позволило быстро развернуть базовую функциональность и сосредоточиться на специфических требованиях клиента.
Архитектура и технологии:
- Backend: Django 2.2.9, Django Oscar 2.0.1
- База данных: PostgreSQL (с поддержкой SQLite для разработки)
- Поиск: Whoosh/Haystack для полнотекстового поиска по каталогу
- Кэширование: Redis для оптимизации производительности
- Статические файлы: WhiteNoise для эффективной раздачи статики
- Мониторинг: Sentry для отслеживания ошибок в production
Ключевые разработки:
1. Интеграция с 1С: Создан модуль integration_1c.py, который автоматически отправляет данные о новых заказах и контрагентах в систему 1С через REST API. При ошибках интеграции система автоматически отправляет уведомления администраторам по email.
2. Интеграция с СДЭК: Реализован полнофункциональный клиент для работы с API СДЭК v2 (cdek.py), который:
- Рассчитывает стоимость доставки с учетом габаритов и веса товаров
- Предоставляет список пунктов выдачи заказов (ПВЗ) по индексу получателя
- Создает заказы на доставку с автоматическим выбором оптимального тарифа
- Отслеживает статусы доставки
3. Система скидок: Реализована гибкая система оптовых скидок через механизм Offers в Django Oscar. Скидки настраиваются в админ-панели и автоматически применяются в зависимости от количества товаров в корзине. Приоритеты скидок позволяют применять более выгодные предложения автоматически.
4. Расширенный каталог товаров: Создана система атрибутов товаров для коробок с цветом и тиснением, включающая:
- Цвет коробки и крышки (9 вариантов)
- Тип тиснения (без тиснения, золотое, серебряное)
- Габариты коробки (длина, ширина, высота)
- Вес и объем
- Количество штук в коробке
- Цена за коробку
5. Платежная система: Интегрирован модуль оплаты через Сбербанк с поддержкой тестового и боевого режимов. Реализованы страницы успешной и неуспешной оплаты с корректной обработкой статусов заказов.
6. Автоматизация процессов: Созданы cron-задачи для:
- Автоматического создания заказов на доставку в СДЭК
- Удаления неоплаченных заказов и корзин по истечении таймаутов (8 часов для корзин, 24 часа для заказов)
- Пересчета резерва товаров на основе активных заказов
7. API для управления остатками: Реализован REST API endpoint для обновления наличия товаров на складе из внешних систем.
8. Кастомизация Django Oscar: Созданы форки основных модулей Oscar (oscar_fork) для кастомизации логики заказов, доставки, корзины и админ-панели под специфические требования бизнеса.
В результате был создан полнофункциональный интернет-магазин, который полностью автоматизировал процесс продажи пластиковой тары для косметики. Магазин успешно интегрирован с бизнес-процессами компании и работает в production режиме.
Ключевые достижения:
- Автоматизация передачи заказов в 1С сократила время обработки заказов с нескольких часов до нескольких минут
- Интеграция с СДЭК позволила клиентам самостоятельно выбирать удобные пункты выдачи и видеть точную стоимость доставки до оформления заказа
- Система оптовых скидок стимулирует клиентов увеличивать объемы заказов
- Удобный каталог с детальными характеристиками товаров помогает клиентам быстро находить нужную продукцию
- Автоматическая очистка неоплаченных заказов и корзин поддерживает актуальность данных в системе
Магазин позволяет компании принимать заказы 24/7, автоматически обрабатывать их и передавать в производство через систему 1С, что значительно повысило эффективность работы отдела продаж и улучшило клиентский опыт.