EvenCart was born because one of our clients wanted something which was similar to Shopify in terms of template editing and could be self-hosted as well.
We looked for a couple of solutions (mostly open source) out there. But couldn't settle for something that could have ASP.NET Core (that we love a lot) and Shopify's Liquid (that the client loves and to be honest we do too). After a good discussion with him, learning what he wanted from this software and a little bit of research, we decided to create something that'll be using both of these techs. And that's how the idea of EvenCart came to us.
There were many names that came up during the discussions. However we wanted a name that was simple, easy to remember and most importantly available for domain name registration. And also, Twitter handle (it was not available), Facebook and Instagram handles were also needed. After searching a couple, we found EvenCart.com to be available and it sounded good as well.
Why .NET Core?
Because we love .NET. Period. We've been following .net since version 2.0 and have been developing all sorts of applications including Windows Desktop Apps, Web Apps and class libraries in .net since then. While .NET framework was run only on Windows systems, .NET core takes away that restriction and is a platform independent framework. That's what makes it perfect for modern day-to-day scalable applications.
As much as we love SqlServer, we love MySql. EntityFramework could've been our first choice, but after developing plugins for nopCommerce (that uses EntityFramework), we felt that even for simple operations, the query generated by EntityFramework are simply too performance intensive. Also, when we started working, MySql support was limited to null with EntityFramework. So that had to be crossed out of the list.
We then also looked for Dapper. It seemed like a promising open source solution but again, we didn't want to write the queries manually. It's not only time consuming but places lots of restriction (and code duplication) when your application should target multiple databases.
That's why we wrote dotEntity a simple yet effective micro ORM. Again like our other products, we tried to write it in such a fashion that it became easy to support multiple database systems. And because we are also regular open source contributors, it's but natural that dotEntity follows the same path.
One reason for choosing Shopify Liquid was simply because our client wanted to use Liquid. And why not. It is simple to learn and understand. And with dotLiquid library, it became easier for us to create our liquid based view engine. The main benefit that we see now is that liquid can be rendered both at the server side as well as at the client side without any additional requirement at the server.
While we used most of the standard tags and filters, we had to create a few of our own for the purpose.
The architecture and coding standards of EvenCart were created and developed in such a way that any enterprise wanting to extend the core functionality or creating an altogether different application should find itself focusing more on the business logic. The aim is to let them work on
what to do rather than
how to do bit.
The pluggable design allows a developer to extend the functionality of the application without actually touching the core. The stock software exposes interfaces for creating different types of plugins including Payment Processors, Shipping Processors, Authenticators and so forth.
So though the product itself is closed source, the enterprises will be able to buy the source code to do something quickly and cost effectively.
One of the most important requirement in any modern application is the availability of API for the purpose of extending and scaling the system. EvenCart out of box supports REST API. In fact the entire system has been written in such a way that every action is actually performed by an API endpoint. What this means is that now anybody can change the front end of the application or create a mobile application or a progressive web app while utilizing the same administration. We achieve this by setting up Dual routing for action methods. This way, the code is written only once and depending on the type of request, the system determines if it should return Html or JSON.
What is in it for store owners?
Because everything was made from ground up and we already had experience of owning an eCommerce store (using nopCommerce), we knew the pains points that hurt our veins while using the software. We wanted that the new system should not only be easy to understand and scale but should also lessen the time take to perform day to day actions.
It took us around 1.5 years to make EvenCart a usable product. There are currently a few plugins like PaypalDirect, Stripe, SquarePayments, GoShippo, UPS, Slider etc. and we'll be continuously developing more and more plugins. If you are a developer reading this, we'd definitely urge you to give EvenCart a try. And if you want to develop a plugin, head over to documentation section. We're working on that as well.