
Over the past few years, a wide variety of service aggregators and search engines have appeared on the Internet, “tailored” for any user needs, from searching for smartphones to booking flights and hotels. We have created a search engine that helps motorists to buy spare parts for cars. In today's topic - the history of development and the story about the infrastructure of the project.
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 is a huge amount of auto parts, in one car an average of 10 thousand parts. The range of popular brands - tens of millions of unique positions, so in the usual store to find the right thing is very difficult, the presence of a regular store 2-5 thousand positions.
')
Therefore, the markets for auto parts are popular, where many sellers are represented at the same time and there is a high probability of leaving with a purchase. But markets also have drawbacks - you need to go there (time lost) and prices are always higher there than on the Internet.

A bit of history
In the early 2000s, online stores in which it was possible to buy spare parts for cars, were very rare - in fact, there was a single site Exist.ru.
Before launching our own project, we worked for a long time in companies selling spare parts - from the programmer’s point of view, this business was debugged badly, 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 a search engine aggregator that would help users find parts at once in a variety of 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 repairs has increased in proportion to the depreciation of the ruble exchange rate.
However, despite the above advantages of buying spare parts online, this process is still much more complicated than purchasing a new iPhone.
In fact, everything is very difficult
In order to buy a part on their own, the user needs to do a lot of preparatory work - study the manufacturers' catalogs, compare the VIN-code of his car with the parts that match this model, etc.
For example, this is how the description of clutch control looks like in one of the BMW models in the profile
catalog :

To understand this information is not easy - while the BMW cars mentioned in the example are very well documented, which is not to say about the products of other automakers. It is very often possible to encounter a situation of “collision”, when there are two similar details in the catalog of the same VIN code - which leads to the purchase of an unnecessary spare part. As a result, money and time for repair are wasted, during which the machine is idle.
As a result, it is easier for many car owners to overpay on the car market, but just get the right part.
UX to the rescue
Customer communication with the seller of spare parts in the offline store is the most important aspect affecting the final sale. As a rule, car owners only know about what they want (“I need an oil filter and oil, which is better”) and the seller helps them not to make a mistake.
The process of searching for parts on our own on the Internet, we described above - a very small percentage of users can handle this.
To get closer to the convenience of ordinary shops with consultants, we developed the button “Do not know the part code?”.

This button hides live experts on all car models. They select the necessary part numbers at any time of the day, eliminating the need to study the catalogs and the device of the car. We have divided the process of selecting articles and searching for proposals for them, therefore, having received the answer from an expert, you can proceed to the search for proposals.

Highload
At the moment, the service stores ~ 750 million records of goods sold. Every day, sellers completely update one third of the information (~ 250 million records). The number of UPDATE operations is about 10 times greater than the number of SELECT operations. The peculiarity of the project is that we don’t have the opportunity to cache data, since the relevance of prices and the display of product availability in warehouses is very important.
We have achieved very good results in the filling of price lists: the system supports all popular formats, it is possible to download price lists of huge sizes (a typical example is the csv price of 120 megabytes). The speed of filling / updating prices in the service at the moment is 30,000 positions per second, which makes it possible to update the aforementioned ~ 250 million in 10% of the daily time. This performance is achieved through several solutions:
- Distribution of data across parallel databases.
- The use of almost NoSQL (more details in the following publications).
- Separate services for converting data into a reference format
- The use of the algorithm to fill the difference in data (diff).
In one of the following publications we will describe in more detail how this is all arranged from a technical point of view.
But there is a “Market”
Indeed, auto parts are sold on Yandex.Market, which raises the question of the feasibility of creating services like ours. However, in reality, auto parts stores are very difficult to work with the “Market”, since this service imposes strict technical requirements on 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 difficult than the search for electronics (we have described this above). Users simply enter the name of the desired part, do not know any numbers from the catalogs, and will not be able to select the part they really want to issue. 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 a core, so the company will obviously not be involved in its development.
That's all for today, thank you for your attention! In the following topics we will talk about the "insides" of our search engine and work on optimizing the site interface.