Встановлення і налаштування Sylius (Symfony)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Встановлення і налаштування Sylius (Symfony)
Середня
від 1 робочого дня до 3 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Встановлення та налаштування Sylius (Symfony)

Sylius встановлюється через Composer як Symfony-додаток. Є два варіанти: sylius/sylius-standard (повний стек з AdminUI та storefront) та окремі компоненти для вбудовування в існуючий Symfony-додаток. Для нового інтернет-магазину — завжди sylius-standard.

Системні вимоги

  • PHP 8.1+ (рекомендується 8.2; підтримка 8.3 з Sylius 2.x)
  • Composer 2.x
  • PostgreSQL 13+ або MySQL 8.0+
  • Node.js 18+ (побудова ассетів)
  • Redis (Symfony Messenger, кешування, сесії)
  • Elasticsearch 7/8 (опціонально, для пошуку через bitbag/elasticsearch-plugin)

Створення проекту

composer create-project sylius/sylius-standard my_shop "~2.0"
cd my_shop

Sylius 2.0 — поточна стабільна версія. Для PHP 8.1 з мінімальним стеком:

composer create-project sylius/sylius-standard my_shop "~1.13"

Налаштування .env

# .env.local
APP_ENV=dev
APP_SECRET=your_32_char_secret_here

DATABASE_URL="postgresql://sylius:[email protected]:5432/sylius?serverVersion=16&charset=utf8"

MAILER_DSN=smtp://user:[email protected]:587?encryption=tls&auth_mode=login

MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages

# Для admin UI
SYLIUS_ADMIN_ROUTE_PREFIX=/admin

# Опціонально
ELASTICSEARCH_URL=http://localhost:9200

Ініціалізація

# БД
bin/console doctrine:database:create
bin/console doctrine:migrations:migrate --no-interaction

# Завантажити початкові дані: країни, валюти, локалі, типи доставки
bin/console sylius:install:setup

# Завантажити приклади даних (тільки dev)
bin/console sylius:fixtures:load

sylius:install:setup — інтерактивний мастер. Запитує:

  • Мову за замовчуванням
  • Валюту за замовчуванням
  • Дані адміністратора

Структура директорій

my_shop/
├── config/
│   ├── packages/
│   │   ├── sylius_core.yaml
│   │   ├── sylius_product.yaml
│   │   └── sylius_payment.yaml
│   └── routes/
│       ├── sylius_shop.yaml
│       └── sylius_admin.yaml
├── src/
│   ├── Entity/              # Кастомні сутності (розширюють Sylius)
│   │   ├── Product/
│   │   ├── Order/
│   │   └── Customer/
│   ├── Repository/
│   ├── Form/
│   └── EventListener/
├── templates/
│   └── bundles/
│       └── SyliusShopBundle/   # Переопределення шаблонів
└── migrations/

Налаштування каналів через fixtures

Для відтворюваної конфігурації — Suite fixtures:

# config/fixtures/channels.yaml
sylius_fixtures:
    suites:
        default:
            fixtures:
                channel:
                    options:
                        custom:
                            web_ua:
                                name: "Інтернет-магазин"
                                code: "WEB_UA"
                                locales:
                                    - "uk_UA"
                                    - "en_US"
                                currencies:
                                    - "UAH"
                                countries:
                                    - "UA"
                                    - "BY"
                                    - "KZ"
                                hostname: "myshop.ua"
                                contact_email: "[email protected]"
                                enabled: true
                                default_locale: "uk_UA"
                                base_currency: "UAH"
                                theme_name: ~
                                tax_calculation_strategy: "order_items_based"
                                skipping_payment_step_allowed: false
                                skipping_shipping_step_allowed: false
                                account_verification_required: false
bin/console sylius:fixtures:load --suite=default

Побудова ассетів

# Встановити npm залежності
yarn install  # або npm install

# Dev
yarn dev

# Production
yarn build

Sylius 1.x використовує Webpack Encore. Sylius 2.x — Vite або Webpack (залежно від версії).

Docker Compose

# docker-compose.yaml
version: "3.9"
services:
  php:
    image: php:8.2-fpm
    volumes:
      - .:/app
      - vendor:/app/vendor
    environment:
      - APP_ENV=prod

  nginx:
    image: nginx:alpine
    ports: ["80:80"]
    volumes:
      - .:/app
      - ./docker/nginx.conf:/etc/nginx/conf.d/default.conf

  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: sylius
      POSTGRES_USER: sylius
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes: [pgdata:/var/lib/postgresql/data]

  redis:
    image: redis:7-alpine

  worker:
    image: php:8.2-cli
    command: php /app/bin/console messenger:consume async catalog_promotions
    volumes:
      - .:/app
    depends_on: [postgres, redis]

volumes:
  pgdata:
  vendor:
# docker/nginx.conf
server {
    listen 80;
    root /app/public;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
    }
}

Налаштування методів оплати

Методи оплати додаються через Admin UI (Конфігурація → Методи оплати) або fixtures. Потрібні відповідні плагіни:

# Stripe
composer require sylius/stripe-plugin

# PayPal
composer require payum/paypal-express-checkout-nvp-php

# Спільнотні шлюзи
composer require prometeytrading/sylius-yookassa-plugin

Налаштування Symfony Messenger для черг

# config/packages/messenger.yaml
framework:
    messenger:
        transports:
            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
                retry_strategy:
                    max_retries: 3
                    delay: 1000
                    multiplier: 2
            catalog_promotions:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
                options:
                    stream: sylius_catalog_promotions

        routing:
            'Sylius\Bundle\CoreBundle\CatalogPromotion\Command\UpdateCatalogPromotionState': catalog_promotions
            'Sylius\Bundle\CoreBundle\CatalogPromotion\Command\ApplyCatalogPromotionsOnVariants': catalog_promotions

Контрольний список після встановлення

  • БД створена, міграції застосовані
  • Початкові дані завантажені (sylius:install:setup)
  • Канали налаштовані (URL, валюта, локалі)
  • Методи доставки створені
  • Податкові категорії та ставки налаштовані
  • Методи оплати додані та активні
  • Ассети побудовані (yarn build)
  • Symfony Messenger Worker запущено
  • Admin UI доступен (/admin)
  • Shop API відповідає (/api/v2/shop/products)