Как создать интернет магазин автозапчастей. На примере Carwatt.by

Написать CSM для интернет-магазина задача не самая простая. Особенно если речь идёт про создание интернет-магазина автозапчастей, где более 20 000 000 товаров, информация о которых подтягивается через разные API нескольких поставщиков, а подбор деталей осуществляется поиском по базе TechDoc. Т.е. в данном случае ситуация не совсем стандартная — магазин не подразумевает администрирование базы товаров.

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

Конечно, таких магазинов сотни, но скажем так, если вы видели один, можно сказать вы видели все.

Итак, как создать интернет магазин автозапчастей. Без лишних слов, приступим.

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

Поскольку аренда «готовой» CMS для магазина запчастей стоить очень приличных денег (даже когда речь идёт о самых простых, так сказать стартовых, тарифах). Примерные цифры 1000-4000$ в год + оплата за хостинг. Поэтому заказчик принял решение заказать разработку собственной CMS.

База TecDoc

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

Исследовав потребности клиента и учитывая наличие у него партнеров, по api которых можно получить замены (аналоги) товаров, мы подчистили базу, в результате чего она влезла в 32 Гб, а хостинг на 32 Гб под базу нам предоставили вот эти ребята. При личной просьбе, они сформировали для нас тарифный план, который вообще отсутствовал в перечне их стандартно предлагаемых вариантов хостинга. За это им отдельное Спасибо! Кстати, 32Гб на базу — это их максимум по объективным причинам.

Как создать интернет магазин автозапчастей.
 Разработка интернет магазина запчастей на TechDoc

Вариант на случай роста клиента, если понадобятся дополнительные таблицы и честные 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 поставщика.

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

поиск товара на сайте интернет-магазина автозапчастей конкурента

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

поиск товара на сайте конкурента, шаг 2 (проверка наличия)

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

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

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

Чего на наш взгляд не хватает ещё:

  • Каталога запчастей, где можно самостоятельно выбрать деталь, не выполняя поиск по марке и модели авто.
  • Интеграции с каким-нибудь сервисом по рассылке смс для информирования покупателей о скидках и акциях.
  • Интеграции с API курьерской службы – для автоматического расчёта стоимости доставки товаров в другие города.
  • Многих других приятных мелочей, без которых вполне можно жить ))

Выводы:

— Получилось дешевле чем аренда платных CMS. И с каждым днём\месяцем\годом разрыв между стоимостями будет увеличиваться т.к. в нашем случае арендная плата вообще отсутствует.

— Сайт работает быстрее (Если верить тесту PageSpeed Insights, значения выше среднего)

— Минимальные эксплуатационные затраты. В год: 80$ за хостинг сайта + 10$ за домен + 20$ за хостинг для картинок.

+ Заказчик получил бесплатный бонус от нашего дизайнера – логотип компании.

Ещё довольно интересная «штука» получилась — это страница «контрактные детали», у конкурентов такого мы не нашли. Работает модуль медленно (но это вопрос не к нам), зато цены на детали радуют))

Будьте осторожны на дорогах и берегите своих «железных коней»!