The 11pets: Shop brings the e-shop solution that the industry needs. It combines the automations of ecommerce together with the personalized attention and guided pet-care maintaining the personal connection between the pet family and the pet-specialty channel of its choice. 11pets: Shop will allow retailers to continue operating with normality even in periods of restricted mobility mitigating the effects of any future crisis.
The problem, the need and the business opportunity
Pet care is not a single-person task anymore, it has evolved to a multi-person/multi-disciplinary activity. Specialization is becoming mainstream. Veterinary practices have experts in orthopedics, cardiology, ophthalmology, surgery etc., pet shops have animal scientists and owners specializing in nutrition, aquatics, birds, reptiles etc., groomers specializing in grooming and skin care and so on.
The pet specialty channel plays a key role in the care of a pet. The personnel of these establishments typically receive extended training related to the products they sell. They need to know the adequacy and proper usage of every product; not all foods, toys or beds are appropriate and safe for all dogs, cats, fish, birds, rodents and reptiles.
During the COVID pandemic, the connection between the families with pets and the pet specialty channel was broken due to the mobility restrictions. This, not only had a significant negative economic effect on the invoicing of these businesses but also on the pet families that could not access the advice and information the needed. The commercial loyalty that was being developed between the customers and the retailers (e.g. points, loyalty cards, etc. …), was also broken with negative consequences for both. The possibility of permanent lose for market share to e-commerce solutions, is a wake-up call for the specialty channel which needs to adapt to fast.
The main characteristics of the project
Below we summarize the main requirements we received from our potential clients.
Allow retailers to be present online and sell their products through the platform with typical functionalities of any e-commerce solution.
Communication is key between retailers and customers. The retailer can send promotional content, instructions for product use, or other information to their customers.
The customer can open tickets asking questions about products or advice for pet-care.
Automated processes for point-based loyalty schemes.
Visibility and customer acquisition
Being part of the 11pets platform gives exposure to the retailer and direct access to potential customers
We identified the following key features that are important for pet shop owners who want to operate online.
- Retailer public profile
- The system automatically generates an e-commerce site for each retailer with several optimizations that allow it to rank higher on search engines.
- Product management
- Management of the products and their variants the retailer has available for sale.
- Cart Tracking
- The pet families can add products to their basket, access it later, modify it on demand and finally complete the purchase.
- Order management
- The retailer can track the order through its different phases (from customer initiation to execution) ensuring the proper processing of every one of them.
- Inventory management
- Retailers can manage the stock for every product and its variants.
- Multiple employees
- The retailer should be able to restrict functionality of the system for different business roles.
- The platform should support the definition of multiple shipping methods allowing the retailer to offer the lowest possible price according to the characteristics of each order.
- Tax configuration
- The platform must be customizable to meet the taxing requirements for each country.
- Customers and pets
- The retailer can keep information about customers and their pets to allow tracking of sales, statistics and efficient communication.
- Customer communication
- The system should provide several mechanisms that help retailers efficiently communicate with their customers for support or promotions.
- Sharing with the family
- When making purchases pet families are offered automatic reminders for administration and top-up.
- Customer feedback
- The customers can offer feedback about their experience.
The challenges and our solutions
In this section we are going to present some of the challenges we had and the solutions we use to face them.
The 11pets platform is a live system with several products in the market. One of our requirements was to keep the 11pets: Shop modules as decoupled as possible from the rest of the system, while exposing points of integration.
The existing users of 11pets: Pet Care will be the customers of the shops in 11pets: Shop, which gives us the opportunity to allow the customer to provide information to the retailer without the need to manually insert data in forms. An example is that after a purchase, the customer could disclose which pet a product is for. This information is available to the system and can retrieve it by using a JWT token.
Another integration point is to send automatic reminders to customers for top-ups. 11pets already has client-communication modules that allows us to send push notifications to users.
To achieve this high degree of decoupling we use an event bus to allow the various microservices to the exchange of events. An event would trigger an action in a consuming microservice to perform some work.
Each microservice exposes some contracts that describe the integration events they emit. Other microservices can subscribe and consume those events to trigger actions or update their state. For example, when an order is submitted an OrderSubmitted event is raised and causes an email and a push notification to be send to the customer. The email and the push notification functionalities are a concern for the Notifications microservice.
The Public Catalog microservice stores data into an Elasticsearch cluster. Using Elasticsearch, we can enable powerful queries and geolocation significant search, that is only show products or stores that are in certain proximity to the customer. To achieve data synchronization between the main database and Elasticsearch, the Catalog microservice emits events on state changes, e.g. ProductPublished, ProductModified, CampaignStarted. The Public catalog microservice consumes those events and updates the information in Elasticsearch.
Decoupling the shop administration database schema from the search schema allowed us to significantly improve data representation on the administration part and to have amazing search performance for the public catalog.
Multi-tenant User Permissions
Role-Based Access Control (RBAC) in multi-tenant environments where a tenant can have multiple users with different roles is not a sufficient solution for us, since we require to Service Level Agreements (SLA) to control the features that are permitted by a user as well as finer control over actions because we want to allow users to create additional roles on a per tenant basis, thus limiting the functionality they expose to their employees based on their business needs.
Our research on the subject allowed us to design an efficient mechanism to manage the permissions of the system, which is scalable and performant. We share our solution in the Multitenant User Permissions white paper and open source library.
Data Management for Knowledge Extraction
For knowledge and intelligence extraction it is necessary to guarantee the consistency of the data, that is, all references to each entity should be unique in the whole system. Simply stated, all actors should see the same view each entity respectless of their role. For example, a veterinarian, groomer, of pet shop, should see the same data of the pet; when one actor modifies the data of a pet, all other actors should see the updated information.
We discuss our findings and methodology in Data Management for Knowledge Extraction white paper.
The Project INNOVATE-COVID/0420/0018 is co-funded by the European Union and the Republic of Cyprus through the Research and Innovation Foundation.