How to fix a car on the Internet: the history of creating an auto parts search engine
Over the past few years, the Internet has appeared a wide variety of aggregator services and search engines, “tailored” for any needs of users from finding smartphones to booking airline tickets and hotels. We have created a search engine that helps motorists profitably buy auto parts. In today's topic - a development story and a story about the project infrastructure.
What's wrong with auto parts stores
A car owner who decides to independently search for spare parts for his car inevitably faces the problem of finding the right part. There are a huge number of auto parts, in one car an average of 10 thousand parts. The assortment of popular brands is tens of millions of unique positions, so it is very difficult to find the right thing in an ordinary store, the presence of an ordinary store is 2-5 thousand positions.
Therefore, auto parts markets are popular, where many sellers are represented at the same time and there is a high probability of leaving with a purchase. But the markets also have drawbacks - you need to go there (loss of time) and the prices there are always higher than on the Internet.
A bit of history
In the early 2000s, online stores where you could buy auto parts were a very rare occurrence - in fact, there was only one Exist.ru site.
Before starting our own project, we worked for a long time in companies selling spare parts - from the point of view of the programmer, this business was badly debugged, so we created a SaaS service to launch an online auto parts store that helped such companies go online and Automate store processes.
This service turned out to be in demand and the number of customers grew rapidly - as a result, it became possible to create an aggregator search engine that would help users find spare parts at once in many stores (like Yandex.Market) - this is how 4mycar.ru appeared.
Recently, due to problems with the exchange rate, interest in the service has increased significantly - the motivation to save on auto repair has increased in proportion to the depreciation of the ruble.
However, despite the above advantages of buying parts on the network, this process is still much more complicated than acquiring a new iPhone.
In fact, everything is very complicated
In order to independently buy a part, the user needs to do a lot of preparatory work - to study the catalogs of manufacturers, to compare the VIN-code of his car with parts that are suitable for this model, etc.
For example, here is the description of the clutch control in one of the BMW models in the profile catalog : It is not easy to figure out such information - the BMW cars mentioned in the example are very well documented, which cannot be said about the products of other automakers. You can often encounter a “collision” situation when two similar details correspond to the same VIN-code in the catalog - that this leads to the purchase of an unnecessary spare part. As a result, money and time are spent on repairs, during which the machine is idle.
As a result, it is easier for many car owners to overpay in the car market, but to get the right part for sure.
UX to the rescue
The communication of the buyer with the seller of spare parts in an offline store is the most important aspect that affects the final sale. As a rule, car owners only know roughly what they want (“I need an oil filter and better oil”) and the seller helps them not to make a mistake.
We described the process of searching for parts on the Internet ourselves above - a very small percentage of users can handle this.
To get closer to the convenience of ordinary stores with consultants, we developed a button “Do not know the part code?”.
Behind this button are live experts on all car models. They pick up the necessary part numbers at any time of the day, eliminating the need to study catalogs and car devices. We divided the process of selecting articles and searching for offers on them, therefore, having received a response from an expert, we can proceed to the search for offers.
At the moment, the service stores ~ 750 million records of goods sold. Every day, sellers completely update a third of the information (~ 250 million records). The number of UPDATE operations is approximately 10 times greater than the number of SELECT operations. The peculiarity of the project is that we do not have the ability to cache data, since the relevance of prices and the display of the availability of goods in warehouses are very important.
We have achieved very good results in filling price lists: the system supports all popular formats, huge price lists can be downloaded (a typical example is a csv price of 120 megabytes). The rate of filling / updating prices in the service at the moment is 30,000 positions per second, which allows you to update the above ~ 250 million for 10% of the daily time. This performance is achieved through several solutions:
- Distribution of data on parallel databases.
- The use of almost NoSQL (more in the following publications).
- Separate services for converting data into a reference format
- Application of the algorithm for filling the difference in data (diff).
In one of the following publications, we will talk more about how it all works from a technical point of view.
But there is a Market
Indeed, auto parts are also sold at Yandex.Market, which raises the question of the appropriateness of creating services like ours. However, in reality, it is very difficult for auto parts stores to work with the Market, since this service has strict technical requirements for the format and structure of the downloaded file with the price list (only XML is supported).
Another problem - the search for auto parts is more complicated than the search for electronics (we talked about this above). Users simply drive in the name of the required part, do not know any numbers from the catalogs, and will not be able to select the part that they really need. At the same time, experts connected to the Market and helping to choose spare parts simply do not exist. For Yandex, the direction of auto parts is not core, so the company will obviously not be engaged in its development.
That's all for today, thanks for watching! In the following topics, we will talk about the "insides" of our search engine and work on optimizing the site interface.