Типичная ситуация: магазин на OpenCart тормозит при каталоге 50 000 товаров, а миграция на Shopify невозможна из-за специфических пользовательских атрибутов. Craft CMS — open-source система управления контентом на Yii2, а его коммерческий плагин Craft Commerce позволяет создать каталог любой сложности без шаблонных ограничений. В отличие от монолитных платформ, мы не навязываем тему или структуру: всё строится через гибкую систему полей, секций и Twig-шаблонов, включая headless-режим. За пять лет работы мы развернули более 30 магазинов на Craft Commerce, и ни один не потребовал переписывания ядра. Экономия операционных затрат на обслуживание такого магазина составляет 20–30% по сравнению с аналогичными решениями. Получите консультацию по вашему проекту.
Проблемы, которые решаем
Первая проблема — N+1 запросы при отображении каталога с вариантами. Если у вас 1000 товаров, каждый с 5 вариантами (размер, цвет), наивный запрос генерирует 5001 SQL-запрос. Это приводит к TTFB более 3 секунд. Мы используем Eager Loading через with() и withTransforms() для изображений, сокращая число запросов до двух. Как отмечает официальная документация Craft Commerce, этот механизм встроен в ядро и не требует дополнительных плагинов.
Вторая проблема — гибкость атрибутов. Стандартные платформы не дают создавать кастомные поля для каждого типа товара. В Craft Commerce каждый Product Type имеет свой Field Layout, что позволяет хранить разные наборы характеристик для одежды, электроники и продуктов питания в одном каталоге. Например, для обуви нужны размер, ширина, материал, а для ноутбуков — процессор, RAM, объём диска. Это реализуется без костылей.
Третья проблема — производительность корзины. При большом количестве Line Items сессионное хранение тормозит. Мы переносим корзину в Redis и настраиваем Queue для фоновых задач. Сравните варианты хранения:
| Метод хранения | Производительность | Сложность настройки |
|---|---|---|
| Сессии PHP | Низкая (до 1000 Line Items) | Минимальная |
| Redis | Высокая (до 100 000 Line Items) | Средняя |
| MySQL | Средняя | Низкая |
Для проектов с большим количеством одновременных пользователей Redis — оптимальный выбор. Стоимость внедрения Redis окупается за счёт снижения нагрузки на сервер базы данных.
Почему Craft Commerce лучше OpenCart для сложного каталога?
OpenCart не поддерживает варианты товаров как самостоятельные элементы — каждый вариант требует отдельного продукта. Craft Commerce использует Product Variants, каждый из которых является элементом с собственным полем SKU, ценой и остатком. Это упрощает управление тысячами размерных комбинаций. Сравните в таблице:
| Критерий | OpenCart | Craft Commerce |
|---|---|---|
| Варианты товаров | Плоская таблица | Вложенные элементы |
| Кастомные поля | Только для всего товара | Для каждого типа товара |
| GraphQL API | Третий плагин | Нативно (Craft Pro) |
| Мультивалютность | Доп. модули | Встроенная |
| Управление акциями | Базовая скидка | Sales + Discounts |
Как мы это делаем: стек и конфиги
Мы используем актуальный стек: PHP 8.3, MySQL 8, Redis, Nginx. Типовая настройка .env:
CRAFT_ENVIRONMENT=production SECURITY_KEY=256-bit-random-key DB_DRIVER=mysql DB_SERVER=127.0.0.1 DB_PORT=3306 DB_DATABASE=craftstore DB_USER=craftuser DB_PASSWORD=securepassword Для headless-сценариев подключаем Next.js через Apollo Client. Пример запроса продуктов:
query ShopProducts($type: [String], $limit: Int, $offset: Int) { products(type: $type, limit: $limit, offset: $offset) { id title slug variants { id sku price stock ... on clothing_Variant { size { label value } color { label value } } } } } Процесс работы
Мы разбили настройку на этапы, каждый — с чёткими артефактами:
- Аналитика — аудит текущего каталога, выявление бизнес-правил (налоги, доставка, скидки).
- Проектирование — разработка структуры Product Types, матрицы вариантов, карты атрибутов.
- Реализация — установка Craft Commerce, настройка Product Types, интеграция шлюза Stripe, написание кастомных модулей (контроллеры, валидация).
- Тестирование — проверка всех сценариев оформления заказа, нагрузочное тестирование корзины.
- Деплой и поддержка — настройка кэша Redis, мониторинг через New Relic, передача доступа к Control Panel и документации.
Детали реализации кастомного модуля
Для специфической бизнес-логики (например, расчёт скидки по формуле) мы создаём модуль на Yii2, который подключается через config/app.php. Это позволяет расширять функциональность без изменения ядра Craft Commerce.
Что входит в работу
Мы передаём:
- Документацию — описание архитектуры, инструкцию по заполнению каталога.
- Доступы — к Control Panel, серверу, репозиторию.
- Обучение — 2 часа сессии для контент-менеджеров.
- Поддержка — 30 дней постпродакшн-гарантии, включая фиксацию ошибок.
Закажите настройку Craft Commerce — и получите готовый интернет-магазин с оптимизированной производительностью.
Как настроить мультивалютность без головной боли?
Craft Commerce Pro поддерживает мультивалютность из коробки. Достаточно задать курсы в config/commerce.php:
'paymentCurrencies' => [ 'USD' => ['rate' => 1], 'EUR' => ['rate' => 0.92], 'RUB' => ['rate' => 90.5], ], И добавить переключатель валюты на фронтенде. Все цены, скидки и налоги пересчитываются автоматически.
Сроки ориентировочно
- Базовая установка + 1 Product Type + оформление заказа: от 1 до 2 недель.
- Полноценный магазин с 3–5 типами товаров, скидками, мультивалютностью: от 4 до 6 недель.
- Headless-магазин (Craft GraphQL + Next.js фронтенд): от 6 до 10 недель.
- Миграция с другой платформы: от 4 до 8 недель, зависит от объёма каталога.
Стоимость рассчитывается индивидуально. Типовой проект обходится в 2–3 раза дешевле аналогичного на Magento, а инвестиции окупаются за 6–12 месяцев. Чтобы оценить ваш проект, напишите нам — мы проанализируем архитектуру и предложим решение с гарантией качества и двухлетней поддержкой.







