Magento / Adobe Commerce Development
We offer professional Magento 2 development services. Let's be honest: when SaaS platforms fail to handle load, customization runs into API limits. At that point, it's time to look at Magento. We design and launch enterprise stores on this platform. We solve high‑complexity challenges: multisite from a single installation, thousands of attributes, and custom business processes. Over 7 years we've delivered 20+ projects — from small shops to large marketplaces with millions of products.
Magento 2 gives you full control over code and architecture. You're not limited by templates or third‑party plugins. This is especially important for projects with unique business requirements, such as complex discount systems or integration with non‑standard APIs.
Magento Open Source vs Adobe Commerce
The choice depends on scale, needed modules, and budget. Open Source has no licensing fees, which can save up to $22,000 per year compared to Adobe Commerce. Both platforms have strengths, and we'll help you pick the optimal version. Our Adobe Commerce development expertise includes B2B and cloud integrations.
| Feature | Magento Open Source | Adobe Commerce |
|---|---|---|
| License | MIT (free) | Commercial |
| Hosting | Self‑hosted | Self‑hosted or Cloud |
| B2B module | No | Built‑in |
| Page Builder | Basic | Advanced |
| Staged Content | No | Yes |
| Customer Segments | No | Yes |
| Live Search | No | Yes (SaaS) |
| Product Recommendations | No | Yes (AI‑based) |
| Adobe Experience Cloud | No | Integration |
For most projects Open Source provides everything needed. Adobe Commerce is justified for B2B scenarios with complex pricing, personalisation, or Adobe Analytics integration.
Benefits of Upgrading to Magento 2
Magento 1 stopped receiving updates several years ago. Magento 2 has been completely rewritten: uses PHP 8, Dependency Injection, Plugin System, and a flexible GraphQL API. Performance is significantly higher — cached pages load up to 10 times faster thanks to Varnish and Redis. The modular architecture allows adding any functionality without hacking the core.
Recommended Component Versions
| Component | Version |
|---|---|
| PHP | 8.1–8.3 (optimal 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 (optional) |
| CPU (dev/prod) | 4 / 8 cores |
| RAM (dev/prod) | 8 / 16 GB |
Full system requirements
Magento 2 requires PHP 8.1–8.3, MySQL 8.0 or MariaDB 10.6, Elasticsearch/OpenSearch, Redis, RabbitMQ for queues. Minimum 4 CPU and 8 GB RAM for development, for production 8 CPU and 16 GB RAM.Technical Implementation
Modular System Architecture
Magento is built on modules. Each module resides in app/code/Vendor/Module/ and contains:
-
Block/— PHP classes for presentation (deprecated) -
Controller/— HTTP request handlers -
etc/— configs:module.xml,di.xml,routes.xml,events.xml -
Model/— business logic -
Plugin/— interceptors (before/after/around) -
Observer/— event subscription -
Setup/— install scripts and data patches -
view/frontend/— layout XML and phtml templates
Dependency Injection and Plugins
Instead of new — injection via constructor. In di.xml you define preferences and plugins:
<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>
Example plugin with after method:
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;
}
}
Custom Product Attribute
Data patch adds the "Delivery time (days)" attribute without core hacking:
// 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' => 'Delivery time (days)',
'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 []; }
}
Magento GraphQL API
For headless frontend, use the built‑in GraphQL. Our team implements Magento GraphQL and Magento PWA for headless architecture. Headless Magento architecture is our specialty.
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 } } }
}
}
}
}
}
}
Typical Development Stack
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=ru_RU \
--currency=RUB \
--timezone=Europe/Moscow \
--use-rewrites=1 \
--search-engine=opensearch \
--opensearch-host=localhost \
--opensearch-port=9200
# After changes
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy ru_RU en_US -f
bin/magento cache:flush
Step‑by‑Step: Creating a Custom Module
- Create directory
app/code/Vendor/Module/etc/and filemodule.xml. - Declare dependencies in
composer.jsonandregistration.php. - Define routes in
routes.xml. - Implement
Controller,Model,Blockas needed. - Add
di.xmlfor plugins or preferences. - Run
bin/magento setup:upgradeto install.
We develop custom Magento modules for specific business needs. Our team has deep experience with Magento 2 Open Source.
What's Included in the Work
When you order a turnkey Magento project, we provide:
- Architectural design: module selection, infrastructure setup, Varnish/Redis/Elasticsearch configuration
- Custom module and extension development with full README documentation and code comments
- Integration with external systems: ERP, CRM, 1C, marketplaces — including Magento 1C integration for Russian market
- Multisite and store view configuration
- Performance optimisation: caching, CDN, minification — we focus on Magento performance optimization, Magento Varnish setup, and Magento Redis configuration
- Deployment with CI/CD (GitLab/GitHub Actions)
- Post‑launch technical support (with 30-day warranty period)
- Documentation, access to Git repositories, and administrator training
Timeline & Pricing
Our Magento development projects typically range from $15,000 to $200,000 depending on complexity. Choosing Open Source can save up to $22,000 per year in licensing fees. Launching a store on Open Source with a ready theme and standard module set — 4 to 8 weeks. Custom development with several modules and ERP integration — 3 to 6 months. Adobe Commerce with B2B module, personalisation, and integrations — from half a year. Exact timelines are estimated after auditing your requirements.
Get an engineer consultation for your project — we'll assess the scope and propose an architectural solution. Our experience: over 7 years of Magento development, 20+ stores launched. Contact us to discuss your needs.
According to Adobe, over 250,000 stores run on Magento. Magento 2 is up to 10 times faster than Magento 1 with Varnish caching.







