Розробка інтернет-магазину на 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 та додає маршрути, представлення та конфігурацію ізольовано.
Етапи розробки
1. Проектування (1-2 тижні)
Складається карта каталогу: кількість атрибутів, варіативні товари, структура категорій. Визначаються канали продажу — 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С:
// Service Provider
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 для мультимовних магазинів, структуровані дані (Product schema) через кастомний Blade-компонент.
Інтеграції
1С-Бітрикс / 1С Підприємство — синхронізація через CommerceML або REST API. LaravelQueue обробляє вхідні XML-файли:
dispatch(new SyncProductsFromXml($xmlPath))->onQueue('sync');
CRM (amoCRM, Бітрикс24) — передача замовлень через webhook або API при події checkout.order.save.after.
Служби доставки — СДЕК, Укрпошта, DHL через кастомні методи доставки з 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-сумісне сховище для сесій та медіа.







