Nowadays merchants are encouraged to use existing Magento components and to create new ones in order to extend and transform the appearance and set of functions of their stores. Not everyone use this opportunity due to necessity of hiring of high-professional developers, not seeing prospects of this action, and eventually, non-understanding the essence of customization.
Ultra custom implementations of Magento: just an additional possibility to expand basic Magento functionality, colossal waste of time and resources, or way to eliminate bottlenecks in Magento platform? Take a dip and learn a little more about custom implementations together to find an answer.
Let’s look at some real examples of ultra custom implementations of Magento on teachingme.com – Australian platform, which provides educational and tuition services, learning resources and local classes for children, students and adults.
- 1) Multiple roles
Most shopping platforms provide users with possibility to choose the only role: either seller, or buyer – without any opportunity to change it in case of necessity. And it is not surprising at all – originally Magento was designed for usage with single role.
Teachingme.com, which was initially designed as a unique space for talented and skilled people, went in a different way and provides users with possibility to hold two roles at the same time and hence to broad user experience. Therefore, users have no need in creation of two separate accounts just for acting both as seller and buyer simultaneously. How to implement marketplace on Magento with opportunity to have multiple roles? This question was just for us to answer.
In order to obtain such flexibility apto-module was taken as a basis. As initially apto-module was intended for hotel rooms booking, it was deeply customized to the specific needs and requirements of marketplace for education products, e.g. were rewritten most of custom attributes.
In such way was gained next goal – a single user can act simultaneously as buyer (further student) and as seller (further teacher). Single smart account interface adapts to the current user role and within this account user has an opportunity to create products (classes), sell and buy them too.
- 2) Location
Maybe, you were very surprised with this point, because surely you have met search and filtering by location before. But let’s take a closer look on it.
Overwhelming majority of websites prefer to use Google API, which provides free services of definition of distance and location. It works in the following way: after coordinates input website sends request to the Google API, and dynamically define distance between two sets of coordinates. While page refresh happens the same – new query is sent to the server.This approach has its several weak points:
- 1. Google API allows to perform only limited amount of free queries. After exhaustion of this amount the threat of encountering a refusal becomes real.
- 2. Usage of Google API results in slowing down the website. It may sounds strange: everybody knows – Google services work pretty fast. But it must be taken into account – every page refresh leads to new queries sent to the Google API. It, in its turn, takes time to respond to the query.
In order to minimize influence of the above-mentioned moments, in teachingme.com was integrated custom implementation, namely, storing of coordinates statically on the server. Currently geolocational system of the educational platform works as is follows: every product (in particular case with teachingme.com – class) is supposed to have its own coordinate (place, where the class is held) and every student also has some definite coordinates. All gathered coordinates are stored on the server side, in database. The significant gain of such approach lies in static data storage of in the database, thus, there is no necessity in defining of distance instantly.
When student enters his precise location, teachingme.com has two sets of coordinates. Now, it is possible to define a distance between seller and buyer on the server and user has possibility to perform filtering by distance, based on coordinates.
While looking for an appropriate teacher, student may point allowable radius for search, and in output server forms set of classes which meet the requirements of distance between yourself and your teacher.
In this way two birds were killed with one stone: primarily filtering by location was implemented, and secondly – it was done to allow users perform filtering in fast and accurate manner.
- 3) Calendar
Magento, with its pretty rich out-off-the-box functionality, surely, allows developers to use default calendar, which has limited functionality.
As we all know well, most of studying classes have strict schedule with regularly repeating classes, let’s say, on Monday or Thursday.
In teachingme.com was implemented deeply customized calendar with possibility to choose days with classes. It is very useful for class organisation because of simplicity and comfort. And now teachers have no necessity in tedious clicking for scheduling their classes: if they decided to held classes every, e.g., Friday, they can select “Friday” item from the drop-down select with days of the week and this day will be marked as day all over the weeks as the day, when teacher gather students in class and held lessons.
All the previously considered case studies are particular instances, but in general it is hard to argue that ultra custom implementations can give your store its own individual identity, enrich and expand its functionality, completely fulfill needs and requirements of your customers, after all, what will be very useful for e-stores with customer-oriented politics.
No doubt, this kind of customisation has scope for making further improvements, such as Magento speed optimization, but already now it can be incredibly powerful tool in particular cases when there is no ready out-off-the-box solution.