Розробка сайту на Magento / Adobe Commerce
Зазначимо: коли SaaS-платформи перестають справлятися з навантаженням, кастомізація впирається в обмеження API. У таких випадках варто подивитися в бік Magento. Ми проектуємо та запускаємо enterprise-магазини на цій платформі. Вирішуємо завдання високої складності: мультисайт з єдиної інсталяції, тисячі атрибутів та кастомні бізнес-процеси. За 7 років ми реалізували 20+ проектів — від невеликих магазинів до великих маркетплейсів з мільйонами товарів.
Magento 2 дає повний контроль над кодом та архітектурою. Ви не обмежені шаблонами та плагінами сторонніх розробників. Це особливо важливо для проектів з унікальними бізнес-вимогами, наприклад, складна система знижок або інтеграція з нестандартним API.
Magento Open Source vs Adobe Commerce
Вибір редакції залежить від масштабу, необхідних модулів та бюджету. Open Source не потребує ліцензійних відрахувань, що дає економію до $22,000 на рік порівняно з Adobe Commerce. Обидві платформи мають сильні сторони, і ми допоможемо підібрати оптимальний варіант.
| Характеристика | Magento Open Source | Adobe Commerce |
|---|---|---|
| Ліцензія | MIT (безкоштовна) | Комерційна |
| Хостинг | Self-hosted | Self-hosted або Cloud |
| B2B-модуль | Немає | Вбудований |
| Page Builder | Базовий | Розширений |
| Staged Content | Немає | Є |
| Customer Segments | Немає | Є |
| Live Search | Немає | Є (SaaS) |
| Product Recommendations | Немає | Є (AI-based) |
| Adobe Experience Cloud | Немає | Інтеграція |
Для більшості проектів Open Source дає все необхідне. Adobe Commerce виправданий при B2B-сценаріях зі складним ціноутворенням, персоналізацією або інтеграцією з Adobe Analytics.
Чому варто перейти на Magento 2?
Magento 1 перестав отримувати оновлення кілька років тому. Magento 2 повністю переписаний: використовує PHP 8, Dependency Injection, Plugin System, гнучкий GraphQL API. Продуктивність вища завдяки Varnish, Redis, Elasticsearch — з Varnish сторінки завантажуються в 10 разів швидше ніж без кешування, а в порівнянні з Magento 1 цей показник сягає 15-кратного прискорення. Модульна архітектура дозволяє додавати будь-яку функціональність без зламу ядра.
Рекомендовані версії компонентів
| Компонент | Версія |
|---|---|
| PHP | 8.1–8.3 (оптимально 8.2) |
| MySQL/MariaDB | 8.0 / 10.6 |
| Elasticsearch/OpenSearch | 8.x / 2.x |
| Redis | 7.x |
| RabbitMQ | 3.11+ |
| Nginx/Apache | 1.24+ / 2.4 |
| Varnish | 7.x (опціонально) |
| CPU (dev/prod) | 4 / 8 cores |
| RAM (dev/prod) | 8 / 16 GB |
Повний список системних вимог
Magento 2 потребує PHP 8.1–8.3, MySQL 8.0 або MariaDB 10.6, Elasticsearch/OpenSearch, Redis, RabbitMQ для черг. Мінімально 4 CPU та 8 GB RAM для розробки, для продакшена — 8 CPU та 16 GB RAM.Скільки коштує розробка магазину на Magento?
Вартість залежить від складності. Базовий магазин на готовій темі стартує від $5,000. Кастомний проект з власними модулями та інтеграціями коштує від $20,000. Adobe Commerce з B2B-модулем починається від $50,000. Ми пропонуємо безкоштовний аудит, після якого ви отримаєте точний кошторис.
Технічна реалізація
Архітектура модульної системи
Magento побудований на модулях. Кожен модуль розташовується в app/code/Vendor/Module/ та містить:
-
Block/— PHP класи для представлення (застаріває) -
Controller/— обробники HTTP-запитів -
etc/— конфіги:module.xml,di.xml,routes.xml,events.xml -
Model/— бізнес-логіка -
Plugin/— interceptors (before/after/around) -
Observer/— підписка на події -
Setup/— інсталяційні скрипти та data patches -
view/frontend/— layout XML та phtml-шаблони
На одному з недавніх проектів для великого маркетплейсу ми провели міграцію з Magento 1 на Magento 2, оптимізували запити до БД та впровадили Varnish-кешування. Час завантаження сторінки скоротився з 4 с до 0,8 с, а кількість одночасних користувачів зросла втричі без додаткових витрат на серверне обладнання.
Dependency Injection та Plugin
Замість new — ін'єкція через конструктор. У di.xml задаються преференції та плагіни:
<preference for="Magento\Catalog\Model\Product"
type="MyCompany\Catalog\Model\Product"/>
<type name="Magento\Catalog\Model\ResourceModel\Product\Collection">
<plugin name="mycompany_catalog_collection_plugin"
type="MyCompany\Catalog\Plugin\ProductCollectionPlugin"
sortOrder="10"/>
</type>
Приклад плагіна з after-методом:
namespace MyCompany\Catalog\Plugin;
use Magento\Catalog\Model\ResourceModel\Product\Collection;
class ProductCollectionPlugin
{
public function afterLoad(Collection $subject, Collection $result): Collection
{
foreach ($result as $product) {
$margin = ($product->getPrice() - $product->getCost()) / $product->getPrice() * 100;
$product->setData('margin_percent', round($margin, 2));
}
return $result;
}
}
Кастомний атрибут продукту
Data patch додає атрибут "Термін доставки (днів)" без зміни ядра:
// Setup/Patch/Data/AddProductAttributes.php
namespace MyCompany\Catalog\Setup\Patch\Data;
use Magento\Framework\Setup\Patch\DataPatchInterface;
use Magento\Catalog\Setup\CategorySetupFactory;
class AddProductAttributes implements DataPatchInterface
{
public function __construct(
private readonly CategorySetupFactory $categorySetupFactory,
private readonly \Magento\Framework\Setup\ModuleDataSetupInterface $moduleDataSetup,
) {}
public function apply(): void
{
$setup = $this->categorySetupFactory->create(['setup' => $this->moduleDataSetup]);
$setup->addAttribute('catalog_product', 'delivery_days', [
'type' => 'int',
'label' => 'Термін доставки (днів)',
'input' => 'text',
'required' => false,
'visible' => true,
'user_defined' => true,
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => true,
'used_in_product_listing' => true,
'unique' => false,
'apply_to' => '',
]);
$setup->addAttributeToSet('catalog_product', 'Default', 'General', 'delivery_days');
}
public static function getDependencies(): array { return []; }
public function getAliases(): array { return []; }
}
GraphQL API Magento
Для headless-фронту використовуємо вбудований GraphQL:
query GetProduct($urlKey: String!) {
products(filter: { url_key: { eq: $urlKey } }) {
items {
id
sku
name
price_range {
minimum_price {
regular_price { value currency }
final_price { value currency }
discount { amount_off percent_off }
}
}
... on ConfigurableProduct {
configurable_options {
label
values { label uid }
}
variants {
attributes { label uid }
product {
sku
stock_status
price_range { minimum_price { final_price { value } } }
}
}
}
}
}
}
Типовий стек розробки
composer create-project --repository-url=https://repo.magento.com/ \
magento/project-community-edition=2.4.7 my-magento
bin/magento setup:install \
--db-host=localhost \
--db-name=magento \
--db-user=magento \
--db-password=secret \
--base-url=https://magento.local/ \
--admin-firstname=Admin \
--admin-lastname=User \
[email protected] \
--admin-user=admin \
--admin-password=Admin123! \
--language=uk_UA \
--currency=UAH \
--timezone=Europe/Kyiv \
--use-rewrites=1 \
--search-engine=opensearch \
--opensearch-host=localhost \
--opensearch-port=9200
# Після змін
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy uk_UA en_US -f
bin/magento cache:flush
Покрокова інструкція: створення кастомного модуля
- Створіть директорію
app/code/Vendor/Module/etc/та файлmodule.xml. - Оголосіть залежності в
composer.jsonтаregistration.php. - Визначте маршрути в
routes.xml. - Реалізуйте
Controller,Model,Blockза необхідності. - Додайте
di.xmlдля плагінів або преференцій. - Запустіть
bin/magento setup:upgradeдля встановлення.
Що входить в роботу
При замовленні розробки Magento-проекту під ключ ми надаємо:
- Архітектурне проектування: вибір модулів, налаштування інфраструктури, конфігурація Varnish/Redis/Elasticsearch
- Розробка кастомних модулів та розширень з повною документацією у форматі README
- Інтеграція із зовнішніми системами: ERP, CRM, 1С, маркетплейси
- Налаштування мультисайту та store view
- Оптимізація продуктивності: кешування, CDN, minification
- Деплой з CI/CD (GitLab/GitHub Actions)
- Технічна підтримка після запуску (з гарантійним періодом)
Строки
Запуск магазину на Open Source з готовою темою та стандартним набором модулів — від 4 до 8 тижнів. Кастомна розробка з кількома модулями та інтеграцією з ERP — від 3 до 6 місяців. Adobe Commerce з B2B-модулем, персоналізацією та інтеграціями — від півроку. Точні строки оцінюємо після аудиту ваших вимог.
Отримайте консультацію інженера по вашому проекту — ми оцінимо обсяг робіт і запропонуємо архітектурне рішення. Наш досвід: понад 7 років розробки Magento, 20+ запущених магазинів. Зв'яжіться з нами для обговорення ваших завдань.
За даними Adobe, понад 250 000 магазинів працюють на Magento.







