Типова ситуація: магазин на 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 місяців. Щоб оцінити ваш проект, напишіть нам — ми проаналізуємо архітектуру та запропонуємо рішення з гарантією якості та дворічною підтримкою.







