We’ve been working hard to modify the functionality of our ecommerce framework over the past few weeks. This has involved putting in hundreds of hours of analyses, experiments, and workshops to help us gain a complete and comprehensive picture of our software development — not just in terms of how we want it to look, but also in terms of where we can take it in the future.
Today I have the pleasure of publishing our general roadmap:
Let’s take a closer look:
April 2018 — GitHub Release
This month is particularly exciting not just for our team but for our clients around the world. We’ve been working steadily on Shopsys Framework for over 2 years, and while many companies and a handful of developers were lucky enough to see the framework in our Private Beta, it hasn’t yet been open-source to everyone.
That’s why we’re happy to announce that Shopsys Framework will be accessible as an open-source platform in April 2018. It will be published on our Shopsys GitHub, where you can already find 13 different packages like Http Smoke Testing and Coding Standards that we’ve written about in previous articles. There will still be some components which we are keeping in private development for the time being, but we’re hoping to make them available and open-sourced as well in the near future.
The main package is already published in private mode, and this will help us to respond to your pull-requests and issues in real life.
From Multirepo to Monorepo
We’ve also moved away from a multirepo approach of development in order to ensure that contributor workflow is as developer-friendly as possible. To that end, and to make sure pre-existing GIT history is carried over into into the standalone package before and after it splits, we’ve decided to build useful monorepo-tools packages (stay tuned for upcoming posts covering this topic).
We’ve already verified with our team that working with monorepo is definitely the way to go, which shouldn’t come as much of a surprise. Overall, the consensus is that it’s much easier working with this system than to try and accommodate 13 packages in standalone repositories.
What are Shopsys Framework’s requirements to run? We thought about that and to save you from daunting installations of new extensions, updates, and potential OS conflicts and packages, we’ve put Shopsys Framework in Docker. This way it’s ready for scaling, testing in CI (our Jenkins is nice and green), and is super fast to install.
What Symfony version is Shopsys on?
Part of our mandate here has been to build a customizable, scalable open source ecommerce framework on Symfony. Shopsys is modern framework in every sense of the word, and geared toward developers who like to work with the latest LTS version and prefer clean code over legacy. That’s why in the last year we’ve started upgrading from Symfony 3 to Symfony 3.3 with PSR-4 based Service Discovery and the latest LTS Symfony 3.4. And in order to streamline compatibility issues, we’ve also decided on a PHP 7.1 as a minimal requirement.
The previous platform version of Shopsys Framework operated hundreds of websites, but we’re excited for the potential of this brand new version, which is already driving dozens of projects. After the release of Shopsys Framework on Github, we plan to build an experimental project on this version. This will allow us to battle-test its effectiveness and show us what it’s capable of in a real-world scenario.
In this phase we’ll also implement GDPR that will be obligatory for ecommerce as well. Do you want to know more about GDPR? Checkout out our special landing page about it.
September 2018 — Open Beta
The following 5 months are very important for us in terms of ensuring the correct direction of the framework’s development. Shopsys Framework is already being used on dozens of European ecommerce projects, but during this period you come into play. We’re looking forward to receiving feedback and ideas from our customers and clients who have been actively testing the framework.
Our final goal is, of course, to compile all the feedback we receive, our results from the experimental project, and the validation of GDPR in real-world eshops and release all of Shopsys’s remaining components on GitHub!
285 000+ requests daily, 200 000+ products, and 2000+ orders per day. When it comes to ecommerce companies, these are the sorts of numbers Shopsys was specifically built and designed to handle seamlessly. In the end, the simpler, faster website wins. Would PHP 5.x, MySQL, and Symfony be enough?
To combat this, we’ll be implementing a powerful duo: Elasticsearch for product searching and PostgreSQL for databases that can handle products, configured versions, and language mutations.
First steps to Modularity
Shopsys Framework is not only a code you can use to build your project on. The power behind its integrative capabilities comes in the form of modularity of plugins, similar to other big projects like Magento, SuiteCRM or Odoo.
The journey from a conventional monolithic architecture has been a long time coming in this release, and has made way instead for a process of decoupling. Simply put, Shopsys Framework will be split into an open-box part — mostly front-end of the Shopsys Framework — and a glass-box part — standalone packages.
We’ll release the very first module, which can be used start preparing your own modules. In the future, you’ll also have the option of adding these to an online modular store.
February 2019 — Stable Version
In 2019, less than a year from now, we’ll migrate to Symfony 4.2, which will be released on November 2018. We don’t want to be stuck on Symfony 3.4 LTS during our stable release and we want to give developers the best experience possible. We’ll be able to take advantage of 77x faster Routing, Invokable event listeners, and other features that are yet to come.
Mobile, Microsite, TV, Smart-Watch or Smart-Fridge? Ready!
Whatever smart-tech debuts in mainstream e-commerce, we’ll be ready for it. The stable version will include API build on REST or GraphQL, allowing a developer to get data from a PHP endpoint on one side and any frontend project on the other side.
To make sure response time on such devices are quick, we’ll add Redis for in-memory operations to our dev-stack.
Module Store Opens
5 months after the release of the first module there will be another 10 modules available, ready to be installed and used right way. These will include, for example, modules for exporting products to product aggregators, as well as payment method modules like PayPal. This will be the start of a ‘module store’, and we plan to start accepting modules from our customers and clients as soon as it’s up and running.
You can expect another roadmap with clear steps that will follow right after the stable release.
This was a brief introduction of where we aim to take Shopsys Framework in the next 12 months, and has hopefully answered your questions and gotten you as excited as us about its potential. What a year ahead of us!
If you’re interested in a more detailed overview of the technical background behind Shopsys Framework, stay tuned as we publish a series of posts on things like monorepo, Symfony upgrade, modularity, and other selected topics. We look forward to it!