ORO inc. was founded by Yoav Kutner and two other Magento co-founders, Jary Carter, the company’s former Vice President of Worldwide Sales and Channel, and Dmitry Soroka, its former lead architect. They said they created the company because there was no existence with Magento 2 performance and bad architectural decisions. In one of his interview Yoav Kutner told:
Magento was a great experience for us since we learned what works well and not so well. We saw first hand what markets were underserved and had to make compromises. At one point, I asked myself, “if we were to do it again, what would we do differently?” So at Oro, we approached technology differently — a lot of advancements had happened since then, and we had more confidence in our abilities.
We chose to maintain ownership of our product but didn’t reinvent the wheel when a better alternative was available. The decision to build on PHP’s Symfony framework is a perfect example.
Former Magento team members are demanded in the eCommerce market because they know how not to build platforms.
Oro Commerce uses Symfony is the most mature PHP framework that provides a wide range of functions that are typical for any web application. Symfony takes care of numerous tasks, for instance:
Receiving a user request and transforming it into a response for the user’s browser
Organizing the source code in a conventional structure
Providing tools for continuous storage of application data, validation of income data against some set of rules.
Using Symfony allows web applications to avoid the development of low-level components responsible for the organization of the application and focus on developing a specific functionality specific to an eCommerce web application.
Oro widely uses Symfony conventions to configure the application and certain YAML features ( possibly to use PHP, JSON, XML) configuration files.
On the application level (according to Symfony conventions), the configuration is divided into infrastructure-related (config/parameters.yml) and application-related (config/config.yml file).
On the bundle level, Oro applications have small changes in the technologies of configuration but a considerable shift in the role and purpose of the configuration files.
Symfony Templating is widely extended in Oro Applications by the Layouts Magento concept, which allows addressing Symfony’s limitations in UI extension and composition.
However, all the TWIG templating engine and Symfony Templating Component features are widely used in Oro applications in UI building.
Databases Management (Doctrine ORM)
Oro Commerce versus Magento has mature and modern ORM.
Oro applications support the storage of application data in relational databases, such as MySQL, MariaDB, PostgreSQL, EnterpriseDB, Oracle.
Oro applications widely use all Doctrine features to manage persistent data: Database Abstraction Layer, Object Relation Mapping, Event Manager, etc.
However, Doctrine Migrations, was entirely replaced by proprietary. This was done in order to allow versioning management of the databases scheme using specific migration classes on the bundle level, not the application level.
Supports DQL – proprietary object-oriented SQL dialect called Doctrine Query Language implemented in Doctrine ORM:
$query = $dql->createQuery(‘SELECT u.name FROM CmsUser u WHERE u.id BETWEEN ?1 AND ?2');$query->setParameter(1, 123);$query->setParameter(2, 321);$usernames = $query->getResult();
Good buy EAV
Oro not using EAV, applying custom fields to schema. Flat Catalog by default without wired indexes.
A serialized field is stored as additional data on an entity (e.g., a product or customer) and is meant for purely descriptive information. Oro's big advantage is that serialized fields can be created without the need for a schema update.
You have the next storage types:
1. Serialized fields cannot be used for grid filters, reporting, chart generation, data audit, or creating segments and relations.
Serialized fields cannot be used for files, multi-selects, or option sets.
2. Table Column store field values to a database table. A schema update is necessary for this field to be available. Save everything in an optimal way without EAV.
So there is no reason to use an antiquated Magento 2 framework. The 2 best and most modern PHP frameworks like Symfony.
PHP eCommerce technology trends 2020:
Zend and Magento 2 are dead technologies nowadays.
Magento 2 frontend architecture is totally a failure. You can’t use Magento with other JS libraries than the broken Magento UI library based on XML, LESS, KnockoutJS, JQuery, PrototypeJS, ExtJS, and RequireJS.
Oro has a modern and easy to customize frontend. It uses Webpack 4 watch mode to automatically recompile and rebuild Oro frontend output whenever you change any application files.
Oro uses modern SASS CSS preprocessor vs. M2 LESS CSS
Libraries used by OroPlatform on the client-side:
- jQuery + jQuery-UI
- Backbone + underscore 8KB
- Chaplin 20K
Overall JS bundle size around 60K vs. Magentos 3MB JS bundle.
Java Script stack is not bloated and can be easily extended by any modern framework.
When with Magento, you are stuck with its UI customizations and development.
Oro Commerce vs. Magento 2.4 performance
eCommerce Scenarios tested:
- Product Page
- Category Page
- CMS Page
- Cart Page