- How to choose the right eCommerce software?
- Which is the best eCommerce platform for your store?
- Sylius vs Spryker – main differences
- Webinar: Sylius vs Spryker
When developing eCommerce businesses, it can be very hard to decide which platform to choose, and many things should be considered before. It is an enormous decision that will impact your future business plans, probably for the next couple of years.
This article provides an exhaustive analysis of two solutions in the context of B2B eCommerce – Sylius and Spryker.
How to choose the right eCommerce software?
When you start an eCommerce business, you should think about several things. First, one eCommerce software may differ from other eCommerce solutions – you should consider your business needs individually. Like running physical retail or a production facility, the same level of strategic thinking and planning also goes into building and running your eCommerce business.
Which is the best eCommerce platform for your store?
From a top level, some key considerations that need to be looked at when selecting a platform are:
- Pricing / Licensing Model
- Tech stack
- Business orientation
- Platform eco-system
- Native feature-set
From this point, we will take into consideration two eCommerce solutions: Sylius and Spryker.
Spryker Commerce OS is an effective PaaS (Platform as a Service) headless eCommerce platform (partially) based on microservice architecture. This solution is perfect for enterprise clients with sophisticated business needs. It supports different business models like B2C, B2B, and marketplaces.
Spryker eCommerce pricing
Although Spryker is a commercial product, the company chose to publish the software to the community. It is an approach to distributed programming called open code.
Open-source is not the same as open code, but there are some similarities:
- You can retrieve the source code on Github and evaluate the framework if it fits your needs
- There is a contribution agreement. But the big difference to open source is the license that only allows evaluation
- This open code license applies to the core code of Spryker. Besides this, Spryker has some open-source components.
- There is the Demoshop developed under the MIT license, which serves as a boilerplate for new projects
The pricing model is not provided, so for pricing details, contact Spryker Systems.
Spryker is an eCommerce solution written in PHP which promotes SOLID principles and clean code. Its purpose is to enable fast development in creating a customized solution for eCommerce businesses. Spryker uses the Symfony framework under the hood.
It utilizes a set of well-known tools:
Redis (Remote Dictionary Service) is a modern NoSQL (non-relational) key-value database. Spryker uses it as a client-side data source for localized content. This type of database avoids the need to make queries to the SQL database, allowing faster data access and reducing costs. The data stored in Redis is synchronized with the data stored in the SQL database using specialized cron jobs. Redis supports replication, so it is a scalable solution.
Elasticsearch is a search engine that offers an easy-to-configure (and integrate) solution that significantly speeds up the search process. Relevant search data is stored in a dedicated memory, avoiding costly SQL database queries. In addition, data stored in Elasticsearch is updated via cronjobs.
Symfony is the leading PHP framework for creating web applications. Symfony Components are able to create any type of framework, not just the ones that follow the MVC architecture. Still, in this case, Spryker implements the model-view-controller design pattern with Symfony. MVC design pattern aims to separate the business logic from the view, making the source code easier to understand and maintain due to this separation.
Twig is a fast and modern template engine for PHP.
Propel is an open-source Object-Relational Mapping (ORM) for PHP. It is part of the Symfony framework. The main goal of Propel is to provide the mapping between database tables and PHP classes. It includes a source code generator for creating PHP classes based on the data model definition provided in the XML file. As the data definition model is independent of the database used, Spryker provides a single interface that allows access to various database management systems.
Jenkins is one of the most popular Continuous Integration and Continuous Delivery systems. Cronjobs can be easily configured in the jobs configuration file.
Database: MySQL, MariaDB, or PostgreSQL
Spryker supports MySQL, MariaDB, or PostgreSQL.
Spryker will be suitable for companies that are open to using innovative technologies to implement ambitious and complex business projects.
It is focused on the enterprise market, so large enterprises with sophisticated business models will be a good fit.
It supports different business models, complex – B2B, B2C, D2C, marketplaces.
The Spryker Commerce is a modular, high-performing, seamless and flexible commerce solution.
The application of the Spryker Commerce OS is the Spryker Glue REST API (which is a JSON REST API), which allows for integrating the backend with any possible touchpoint or third-party systems.
A part of the Spryker standard is the seamless fusion of individual microservices into packaged business capabilities. With over 900 modules, the Spryker Commerce OS adapts to customers’ individual needs and enables purchase processes with current and future touchpoints.
The Spryker layer structure consists of:
- Glue Application Layer (infrastructure for API with mixed data access) – an application providing resources for customers’ interaction, based on JSON API
- Yves Application Layer (frontend functionality with lightweight data access) – Front-end-presentation layer for customers, based on Symfony components
- Client Application Layer (data access infrastructure)
- Zed Application Layer (backend functionality with complicated calculations) – contains all business logic and the backend GUI, based on Symfony components
- Shared Application Layer (shared code abstractions that will be used in other Application Layers of the same module)
- Service Application Layer (infrastructure for the stateless operations)
B2B Suite in Spryker
As many B2B buyers want a B2C-like shopping experience, Spryker prepared dedicated features to meet the most demanding expectations. All of the features are clustered into Business Capabilities, each designed to provide specific solutions to common needs.
Take a look at dedicated B2B eCommerce features:
- Approval Process
- Business on Behalf
- Business Units
- Cart Roles and Permissions
- Comments Widget
- Company Account
- Company User Permissions
- Company User Roles
- Configurable Bundles
- Custom Order Reference
- Customer Specific Prices
- Information Restrictions
- Item Split in Back Office
- Permission Management for Shopping Lists
- Product Restrictions for B2B Customers
- Punchout Integration
- Quick Order
- Quotation and Offer Management
- Registration of the New Company
- Session Management
- Shared Cart
- Shopping List Management
What stands behind Spryker?
Supporting the growth of the business is a key value for modern entrepreneurs. Spryker allows you to integrate many touchpoints e.g. desktop, mobile, POS, voice commerce, and bot commerce. You decide where you want to sell.
The headless architecture ensures that every change made does not affect other parts of the system. It accelerated the software development by preventing possible errors.
The modules grouped into functional packages allow you to use many combinations in B2B and B2C eCommerce stores and marketplaces development.
The microservice architecture ensures that the system will be able to handle even the highest traffic peaks.
Grow the business in foreign markets by creating multiple stores with multiple currencies per store, bearing in mind international taxes or language support.
The Marketplace Suite from Spryker supports two business models:
- Traditional, where the operator does not sell itself
- Enterprise, where the owner enriches its own offer with the offer of other sellers
Sylius is a Symfony-based, headless open-source eCommerce platform. It focuses mainly on the backend, enabling users to have highly personal and scalable sites. As Sylius has a flexible and well-written modular architecture and its approach is far away from monolithic solutions, it enhances eCommerce development. Furthermore, it allows to easily perform third-party integrations (CRM, PIM, ERP, and many more) using the REST API. What differs it most from Spryker is that it is an eCommerce framework rather than a platform. It means that it provides around 70-80% common eCommerce features available for great extendability, allowing development teams to build custom tailor-made solutions for the online commerce business. Therefore it could be adopted to solve many complex business problems and fit various strategies.
Sylius eCommerce pricing
Sylius appears in two versions: the open-source, developed under the MIT license – Sylius, and the commercial one – Sylius Plus.
Whereas Sylius open-source has a license that allows to use it for free, Sylius Plus offers advanced features from the beginning, including :
- Advanced multi-store management
- Returns management
- Partial order fulfillment
- Multi-source inventory
- Advanced user permissions
- Admins per channel
- Loyalty system
The annual license price depends on the value of transactions going through the platform (Gross Merchandise Volume). Sylius Plus pricing starts at 14,900 EUR annually, but it is possible to purchase the features individually. For more details, contact the vendor.
Sylius’ approach is based on good coding practices, using Dependency Injection, BDD and TDD (Behavioral and Test-Driven-Development) approaches, and last but not least – the best popular open-source projects under the hood, which are listed below.
As mentioned before, Sylius is fully based on Symfony (a leading PHP framework for creating web applications). Most eCommerce solutions use Symfony as a middle-ware or support themselves with Symfony components only. It is very different from Sylius’s approach, making it easier for developers to jump into as it provides a better standardization.
With Symfony, developers can work better and faster (Symfony saves time by providing generic reusable modules). In addition, the final Symfony application is fully compliant with business rules, i.e. structured, maintainable and updateable.
Doctrine is a family of PHP libraries primarily focused on database storage and object mapping. The core projects it is built upon are the Object Relational Mapper (ORM) and the Database Abstraction Layer (DBAL). In addition, it allows writing database queries in the object-oriented dialect of SQL – Doctrine Query Language (DQL).
Twig is a fast, secure, and flexible template engine for PHP.
API Platform is a modern solution for developing high-quality, robust API(s). API Platform works with Symfony by default and depends on its components.
Sylius uses multiple libraries for different tasks:
- Payum – payments
- KnpMenu – shop and admin menus
- Gaufrette – filesystem abstraction (store images locally, Amazon S3, or external server)
- Imagine – images processing, generating thumbnails, and cropping
- Pagerfanta – pagination
- Winzou State Machine – state machines handling for processes automation (i.e. orders, payments, shipments but also custom processes like organization onboarding, vendor registration, etc.)
Sylius is one of those eCommerce platforms that doesn’t follow the „one size fits all” approach. It is suitable for custom and complex (non-standard) projects from the upper SMB segment, and Enterprises – the more challenging the project is, the better.
It will be the perfect solution for someone who needs a tailor-made store that will be developed in the long term.
It is perfect for connecting, so it could be the facilitator of transactions or the support for non-standard workflows or custom integrations. No matter if you want to set up MVM, multi-channel, B2C, or B2B.
Sylius is a Symfony-based application that consists of components and Symfony bundles, which are integration layers with the framework.
All bundles share the same conventions for naming and the way of data persistence. As it was mentioned before, Sylius, by default, uses the Doctrine ORM for managing all entities.
Each Sylius component can be used standalone as they require only PHP support. You can use it in any PHP project, even with other frameworks like Laravel.
Example: Taxes component.
Its only duty is to calculate taxes (it doesn’t matter which type of taxes – it is fully decoupled). To let the Taxation component work on your objects, you must have an implementation of the TaxableInterface. Taxes may be calculated since then.
This approach applies to every element of Sylius. In addition to components closely related to eCommerce needs, there are more general components, e.g. Attribute, Mailer, Locale, etc.
All the components are packages available via Packagist.
These are wrapped Sylius components described above that require Symfony support. They contain all the Symfony-related stuff like Doctrine ORM mappings, routing, and service configuration. Obviously, you can use PHP components with Symfony projects too, but using bundles makes it much more manageable.
Suppose you are a Symfony developer and would like to use the Taxes component but don’t want to waste time configuring forms or services in a container. In that case, you can incorporate TaxationBundle into your application with minimal (or none) configuration to access all services, and models, configure tax rates and tax categories, and use it for any taxes you need.
Core & Platform pillars
The Sylius platform is a full-stack Symfony application based on the Symfony Standard. In addition, it is a standard online store. The Core bundle is where the product becomes orderable, and all of the bundles (Symfony-wrapped components) start working together.
Example: ProductVariant finally finds out that it has a TaxCategory. The Core component is where ProductVariant implements the TaxableInterface.
On top of that, you can independently manage three main pillars, which are installed by default with the Sylius Standard edition:
- The admin panel – Twig-based UI layer for back-office administration. In each system with a security layer, the system administration functions must be limited only to certain users with a specific role – Administrator – and the AdminBundle is responsible for this. It may be turned off if not needed. Views have been built using the SemanticUI.
- Shop – Twig-based UI layer for the store frontend. ShopBundle is the standard eCommerce interface for everything that occurs in the system. It mainly consists of yaml configurations and templates. The views were built using SemanticUI, but there is a Bootstrap template available in the community if you prefer to use something different.
Headless eCommerce platform with the possibility to go in PWA
You can also use Vue Storefront as a PWA application if you are a greater fan of the headless approach. For that purpose, you can use our Sylius PWA connector and expertise.
- API interface for third-party services configuration and headless communication, which is based on the API Platform, covers the following features:
- All operations are grouped by shop and admin context (two prefixes)
- The entire API may be enabled or disabled by changing a single parameter
- The endpoints follow the REST rules and use the HTTP verbs (POST, GET, PUT, PATCH, DELETE)
- The responses returned contain a minimal amount of information (but the data serialization may be extended)
- All business logic is separated from the API
Each pillar could be disabled easily if you don’t need it. Before you start using Sylius, you may decide if you need a full platform with all the features or if you want to use separate packages and components to build something very custom.
B2B Suite in Sylius
Sylius doesn’t have a dedicated B2B solution yet, but as a Leading Partner, we want to share with you a stable base on which we implement our projects. Sylius B2B Kit is a supplement to the basic solution that allows to save up to 40% on implementation time and cost.
- Access restrictions
- Advanced payments and shipping
- Catalog management
- Content management
- Corporate websites
- Customer groups
- Internal & External Integrations
- Order management solutions
- Product Information Management
- Sales organizations – Sales order management
- Wholesale order management
For more detailed information – on how those functionalities reflect business needs, we encourage you to read our blog post:
What stands behind Sylius?
Go for enterprise clients
As Sylius is convenient for the SMB segment in the case of high personalization, it will also be an excellent choice for the enterprise sector and complex startups – for all those who need a lot of personalization support for non-standard workflows or custom integrations.
It is a solution for everyone who needs something more than a simple sales platform. However, if your requirements are far from the standard functionalities of other platforms, you should consider Sylius.
Sylius educates the community, agencies, and companies through training, documentation, and webinars.
The community is constantly growing due to the increasing recognition of this young solution. You may find the Sylius community on Sylius GitHub, Sylius Forum, or Sylius Slack.
The most important thing in eCommerce development is letting the system grow as the business grows. So you don’t have to change your platform every few years with continuous development. Sylius focuses on the “evolution, not revolution” approach, ensuring the highest quality standards. As a result, the average lifetime of Sylius eCommerce is much higher than other platforms like Magento, which are often eaten by technical debt.
Sylius vs Spryker – main differences
|Symfony full-stack||Symfony components|
The choice of the right eCommerce platform depends on the needs. Many merchants prefer to build an online store using the most popular solutions, but sometimes it may not be a good approach. Decisions should involve thinking far more than daily usage and cost and the decision-makers.
Having your business plan prepared, you should consider what needs you will have and look for the right software platform. Our suggested software is the one that meets your expectations and allows for future expansion.
If you feel like Sylius is a wiser choice for your business – schedule a call with our consultant to advise the proper solution and dispel any doubts. We could help you with either the MVP or full long-term project implementation and maintenance.
This article was created in collaboration with Spryker Systems and Sylius, leveraged by our experience. You can watch our webinar on that topic, which touches more on the business aspects of the comparison and could be a valuable substitute while making the final decision.
Sylius vs Spryker – Choosing the best option for your B2B eCommerce