Разработка интернет-магазина на Bagisto
Bagisto — Laravel-фреймворк для e-commerce, построенный на Laravel 10+ и Vue.js 3. В отличие от Magento или WooCommerce, он даёт полный контроль над кодом без vendor lock-in и платных расширений. Архитектура модульная: каждый компонент — отдельный Laravel-пакет, подключаемый через composer.json.
Когда выбирают Bagisto
Платформа оправдана в задачах, где важна кастомизация на уровне ядра:
- Нестандартная бизнес-логика — сложные правила ценообразования, многоуровневые скидки, групповые тарифы
-
Мультивендорные маркетплейсы — через пакет
bagisto/marketplaceили собственную реализацию - B2B-порталы — оптовые прайсы, кредитные лимиты, заявки на согласование
- Интеграции с ERP/WMS — 1С, SAP, кастомные системы через REST или event-driven подход
Архитектура проекта
bagisto/
├── packages/
│ └── Vendor/
│ └── Module/
│ ├── src/
│ │ ├── Http/Controllers/
│ │ ├── Models/
│ │ ├── Repositories/
│ │ └── Providers/ModuleServiceProvider.php
│ └── composer.json
├── resources/
│ ├── themes/
│ │ └── default/views/
│ └── lang/
└── config/
└── bagisto.php
Каждый модуль регистрируется через ServiceProvider и добавляет маршруты, views и конфигурацию изолированно.
Этапы разработки
1. Проектирование (1-2 недели)
Составляется карта каталога: количество атрибутов, вариативные товары (configurable products), структура категорий. Определяются каналы продаж — Bagisto поддерживает мультиканальность из коробки через channels.
2. Установка и базовая конфигурация (2-3 дня)
composer create-project bagisto/bagisto
php artisan bagisto:install
Настройка: мультивалютность, локализации, налоговые классы, методы доставки (FlatRate, FedEx API, СДЭК через кастомный шиппинг-провайдер).
3. Разработка темы (1-3 недели)
Bagisto использует Blade + Vue.js. Стандартный подход — наследование от default темы:
// config/themes.php
'shop' => [
'name' => 'Custom Theme',
'assets_path' => 'public/themes/shop/assets',
'views_path' => 'resources/themes/shop/views',
'vite' => [
'hot_file' => 'themes/shop/hot',
'build_directory' => 'themes/shop/build',
'package_assets_directory' => 'src/Resources/assets',
],
],
Компоненты Vue регистрируются глобально и переопределяются на уровне темы без изменения ядра.
4. Разработка кастомных модулей (2-4 недели)
Нестандартная логика выносится в пакеты. Например, модуль интеграции с 1С:
// Провайдер модуля
class ModuleServiceProvider extends ServiceProvider
{
public function boot(): void
{
$this->loadRoutesFrom(__DIR__.'/../Routes/api.php');
$this->loadMigrationsFrom(__DIR__.'/../Database/Migrations');
Event::listen('checkout.order.save.after', OrderSyncListener::class);
}
}
5. Платёжные интеграции
Bagisto имеет абстракцию Payment для подключения шлюзов:
class CustomPayment extends Payment
{
public string $code = 'custom_payment';
public function getRedirectUrl(): string
{
return route('custom.payment.redirect', [
'order_id' => $this->getOrder()->id,
]);
}
}
Готовые пакеты: bagisto/paypal, для СНГ — интеграция с Сбербанком, ЮКасса, CloudPayments реализуется вручную.
6. Оптимизация производительности
| Компонент | Решение |
|---|---|
| Каталог (10k+ SKU) | Elasticsearch через bagisto/elasticsearch |
| Сессии и кеш | Redis (CACHE_DRIVER=redis) |
| Очереди | Laravel Horizon + Redis |
| CDN | Cloudflare R2 или AWS S3 для медиафайлов |
| Full-page cache | Nginx FastCGI cache или Varnish |
7. SEO-настройка
Bagisto генерирует мета-теги, sitemap и canonical URLs из коробки. Дополнительно настраиваются: ЧПУ для категорий/товаров, hreflang для мультиязычных магазинов, structured data (Product schema) через кастомный Blade-компонент.
Интеграции
1С-Битрикс / 1С Предприятие — синхронизация через CommerceML или REST API. Очередь Laravel обрабатывает входящие XML-файлы:
dispatch(new SyncProductsFromXml($xmlPath))->onQueue('sync');
CRM (amoCRM, Битрикс24) — передача заказов через webhook или API при событии checkout.order.save.after.
Службы доставки — СДЭК, Почта России, DHL через кастомные Shipping методы с API-запросами к тарифным калькуляторам.
Сроки и команда
Типовой магазин средней сложности (до 50k SKU, 5-10 кастомных модулей):
| Этап | Срок |
|---|---|
| Проектирование + архитектура | 1-2 нед |
| Core + тема | 3-4 нед |
| Модули и интеграции | 3-6 нед |
| Тестирование + деплой | 1-2 нед |
| Итого | 8-14 недель |
Команда: backend-разработчик (Laravel), frontend (Vue.js), DevOps для настройки Nginx/Redis/очередей.
Деплой
Production-окружение на базе Laravel Forge или ручной настройки:
server {
root /var/www/bagisto/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
Supervisor управляет воркерами очередей. Для горизонтального масштабирования — общий Redis и S3-совместимое хранилище для сессий и медиа.







