Our client is a chain of restaurants in French cities that organizes online cooking courses. They’ve been building and developing their business, and at some point, hit the ceiling of capacity. It becomes clear that it’s time to expand and move forward to take the company to a new level.
As for the existing client’s business, it has four restaurants, where the chefs hold cooking events — courses, masterclasses and workshops. When the client feels the demand for participation in events, they start thinking about allowing other users to hold such cooking events after signing up with the website, which would increase business opportunities and attract new audiences that eventually requires an upgrade of the website.
We analyze the capabilities of the current platform — Magento 1 — and conclude that it’s worth offering the client to change it. It is outdated enough to introduce the new functionality the client expects, that’s why we offer the client to migrate to the Magento 2 latest version and develop customizations there. In other words, the client wouldn’t have to pay twice for the same work.
We start the project by discovering the client’s business in more detail to better understand it and suggest proper implementation options. We gather information about the industry, competitive environment, trends, existing marketing and SEO activities, also pay attention to the study of the target audience and build the customer journey on the website.
Taking into account the client’s requirements, we need to introduce an additional role for users able to hold events, which we call New Chefs. They are a copy of the existing feature, Old Chefs, managed by the current admin. They can describe their own Restaurants and add different Courses and Masterclasses (events). To give a better option for Participants to register for events, we implement an entity of Session, which is a lesson within an event. It enables better organizing the scheduling process and picking the Chef, location, time and date.
The project roles interact through commercial dealings, where Chefs hold courses, and Participants pay for those, which means that we land on a business model that is a sort of a marketplace.
It turns out that, on the one hand, we have an interaction between the Old Chefs from the client’s restaurants (representatives of their business), and the participants of the events (consumers), which is a business-to-consumer (B2C) collaboration. On the other hand, there is another chain of interactions — the client’s website allows New Chefs from other restaurants holding their own events and introduces a business-to-business (B2B) element. The New Chefs from other restaurants, in their turn, interact with consumers, which adds another business-to-consumer (B2C) section. As a result, the business-to-business (B2B) and business-to-consumer (B2C) pieces are organized into a B2B2C part of the marketplace.
All the information from the previous steps allows us to build a sitemap and a high-level features list that gives the client information on budget and time-line at the early stage.
Based on the high-level features list and the sitemap, we make prototypes of the templates to create a basic appearance of the website with the main blocks on the pages.
The ideas behind this project require quite a lot of customizations of Magento capabilities. Therefore, we end up with prototyping the following templates:
- Custom pages for categories with unique filtering capabilities;
- Product details pages for different types of Courses, Masterclasses and Events;
- Registration pages for two roles — New Chef and Participant;
- Chef account with various sections for managing their Restaurant, Courses and Sessions;
- Participant account with additional sections for working with Courses/Masterclasses/Sessions, package offers, and the loyalty program;
- List of Restaurants page with a map search;
- List of Chefs page and their features;
- Page for working with customized gift cards;
- Custom shopping cart page to also handle custom product types as well as gift cards and custom website currency — hour packages;
- Checkout page to process the new custom entities as well as accommodating a unique design according to the client’s preferences.
When we have a clear understanding of how the website pages look, we start working on the project specification document. It includes the prototypes and the description of all the blocks there, the information on browsers and devices support and acceptance criteria.
This project has the following development team: a Project Manager, Technical Backend Lead, 3 Back-End Developers, Technical Frontend Lead, 2 Front-End Developers, and a QA Engineer.
Our paradigm is starting the work with the most complex and high-risk features of the project. In such a way, we’re working on the very first iteration, which includes creating and optimizing the role of New Chef, the entity of Course, and the category page, which are the foundation of the website general custom logic. Courses are the basis for different types of events (Masterclasses, Workshops, etc.), New Chefs and related functionality are the base for interactions of all user types at the website, and the category page is essential for all the list view pages.
Then we move on to the final phase of the data migration and content population.
The process usually lasts a week and covers going through the QA relaunch checklist to verify that the website complies with our standards for SEO, performance, security, and other requirements.
The stage introduces launching a project in a live environment with switching DNS, configuring the Magento application and all the essential third-party services.
The phase takes place and consists of another QA checklist to check the correct launch, enabling all the necessary SEO and marketing tools specified in the project scope.
An interesting part of the project is that the business model of the marketplace consists of three sections — B2C, B2B, and B2C.
The dotted part in the figure is responsible for that piece implemented on the original client’s website. For the project, we complete a website migration by moving all data from the old version of the website to the new one and also expand it with unique customizations — roles and entities for sections #2 and #3.
As for section #2, we add the option for users to become New Chefs. They should sign up in the frontend, go through a moderation process, and get approved by the administrator.
The feature of New Chefs being able to create and populate their own content introduces user-generated content (UGC), which means that all the content that New Chefs add should be moderated by the admin to prevent possible malicious and hateful content.
A Chef can find a calendar plan with their classes inside the personal account to sort by month, week, and day. They can also see a list of Participants for a specific Session there with an option to add more Sessions, upload customized recipes, etc.
A Chef can create a Restaurant to hold events at. Each Restaurant has specific attributes and descriptions, such as Name, Location, Capacity, Amenities etc. To make the search for Restaurants more convenient and smooth, we integrate the Restaurant list page with a Google Maps feature, where a Participant can change the scale, and the list of the Restaurants in the neighborhood adjusts respectively.
- Filters. To provide a quick and easy search for cooking events, we implement custom filters by city, date, price, language, etc. Each event has a webpage, where Participants can find detailed information, add it to the wishlist, see the prices, book a seat, send the course as a present, etc. Each Course has its seating limit, set by a Chef, and when the number of vacant spots on the Course runs out, Participants can sign up for a waiting list.
- Recipes.After a Masterclass is held, each Participant receives a Recipe. It’s a list of the ingredients and units of measurement with additional comments on how to cook the dish.
- Admin panel. We customize it extra to make it easy-to-use, expand the products and users management sections. We make it possible to change product information and the list of Participants for a particular event, as well as cancel participation, waiting lists, contact form submissions with a CRM integration, moderation process, gift cards, which can be bought in two ways — for euros and alternative currency (hours) — and have expiration dates, which can be prolonged using another custom feature developed by our team.
- Payments & alternative currency. The custom feature of hours is an alternative currency, which can be bought as a package. In addition to paying by card, it’s also possible to pay offline through the mail. Participants can also pay in one-time payment or split into several ones.
- Referral Program. Each logged-in Participant has a link that can be sent to a friend. When placing the first order, both of them receive 10% discounts.
- helped the business to widen opportunities and reach new audiences;
- offered the client several ways to upgrade the existing system;
- completed a migration from Magento 1 to Magento 2 with the safe transferring of the settings, data, and content;
- built a marketplace with a range of features & functionalities;
- implemented several integrations with third-party systems for the website smooth working.