Магазин автозапчастей carwatt.by

Недавно нам был брошен вызов — разработать интернет-магазин автозапчастей. И это не просто интернет-магазин…

Сложность задачи заключается в том, что это не классический интернет-магазин с администрированием товаров, когда товары хранятся в базе данных магазина. В нашем случае база товаров была получена из базы TecDoc, а наличие товаров на складах должно проверяться по api у нескольких поставщиков.

Примеры подобных магазинов:

Основной смысл проекта

Необходимо реализовать подбор запчастей по машине и категории запчастей, проверить наличие выбранной запчасти у поставщиков по api, оформить заказ на запчасть у поставщика.

База TecDoc

База TecDoc — это база запчастей с привязкой к конкретным модификациям машин. Также база содержит информацию о выпускаемых моделях машин. Занимает база в зависимости от версии от 20 до 100 Гб. Поэтому, кроме работы по составлению правильных запросов к базе, существует еще проблема ее хостинга.

Выбор машины по TecDoc: производитель
Выбор машины по TecDoc: модель

 

Мы, исследовав потребности клиента, учитывая наличие у него партнеров, по api которых можно получить замены товаров, подчистили базу, в результате чего она влезла в 32 Гб, а хостинг на 32 Гб под базу нам продала замечательная компания login.by, но 32Гб на базу — это их максимум по объективным причинам.

Вариант на случай роста клиента, если понадобятся дополнительные таблицы и честные 100Гб на базу, на наш взгляд, оптимальный вариант по соотношению цена/качества — aws rds.

60 Гб изображений запчастей, идущие с TecDoc, мы закинули на Amazon S3.

Вот их расценки:

aws s3 расценки

Загрузка 4 млн. изображений стоит около 20$.
Хостинг 60Гб стоит примерно 1.5$ в месяц.

Справка по структуре базы и запросам:

TecDoc API

Нельзя обойти стороной такую тему, как API, которую продают partsapi.ru. Мы рассматривали этот вариант. Однако, поняли, что написать запросы к базе самим — это более гибкий вариант, наиболее точно отвечающий запросам заказчика.

Технические решения

Бэкэнд выполнен на Symfony Framework, панель администрирования — Sonata Admin.

Некоторые элементы фронтэнда выполнены с использованием react-redux.

Преимущества по сравнению с существующими аналогами

К сожалению, пока магазин имеет некоторые проблемы с ассортиментом, что вызвано небольшим количеством дилеров. Также есть еще некоторые функции, которые было бы хорошо реализовать

Но, тем не менее, даже сейчас, магазин имеет некоторые преимущества.

Основная проблема при подборе запчастей на подобных сайтах заключается в том, что база TecDoc и склад запчастей фактически находятся в разных базах данных, причем доступ к складу идет через API, и поэтому в результате подбора запчастей для машины мы получаем список каких-то запчастей, которые подходят, а наличие этих запчастей мы получаем уже на следующем шаге, после запроса к api поставщика.

Например, вот так выглядит поиск запчасти у конкурента:

поиск товара на сайте конкурента, шаг 1

Переходим по первой ссылке:

поиск товара на сайте конкурента, шаг 2

У нас же можно проверить наличие товара можно и на первом шаге:

поиск запчасти на carwatt.by

Со временем, после подключения новых поставщиков, наш магазин, я думаю, займет свое достойное месте среди конкурентов.