Написать CSM для интернет-магазина задача не самая простая. Особенно если речь идёт про создание интернет-магазина автозапчастей, где более 20 000 000 товаров, информация о которых подтягивается через разные API нескольких поставщиков, а подбор деталей осуществляется поиском по базе TechDoc. Т.е. в данном случае ситуация не совсем стандартная — магазин не подразумевает администрирование базы товаров.
Вот примеры подобных магазинов:
Конечно, таких магазинов сотни, но скажем так, если вы видели один, можно сказать вы видели все.
Итак, как создать интернет магазин автозапчастей. Без лишних слов, приступим.
Поскольку аренда «готовой» CMS для магазина запчастей стоить очень приличных денег (даже когда речь идёт о самых простых, так сказать стартовых, тарифах). Примерные цифры 1000-4000$ в год + оплата за хостинг. Поэтому заказчик принял решение заказать разработку собственной CMS.
База TecDoc — это база запчастей с привязкой к конкретным модификациям машин. Также база содержит информацию о выпускаемых моделях машин. Занимает база в зависимости от версии от 20 до 100 Гб. Поэтому, кроме работы по составлению правильных запросов к базе, существует еще проблема ее хостинга.
Исследовав потребности клиента и учитывая наличие у него партнеров, по api которых можно получить замены (аналоги) товаров, мы подчистили базу, в результате чего она влезла в 32 Гб, а хостинг на 32 Гб под базу нам предоставили вот эти ребята. При личной просьбе, они сформировали для нас тарифный план, который вообще отсутствовал в перечне их стандартно предлагаемых вариантов хостинга. За это им отдельное Спасибо! Кстати, 32Гб на базу — это их максимум по объективным причинам.
Вариант на случай роста клиента, если понадобятся дополнительные таблицы и честные 100Гб на базу, на наш взгляд, оптимальный вариант по соотношению цена/качества — aws rds.
60 Гб изображений запчастей, идущие с TecDoc, мы закинули на Amazon S3.
Вот их расценки:
Загрузка 4 млн. изображений стоит около 20$.
Хостинг 60Гб стоит примерно 1.5$ в месяц.
Справка по структуре базы и запросам:
Нельзя обойти стороной такую тему, как API, которую продают partsapi.ru. Мы рассматривали этот вариант. Однако, поняли, что написать запросы к базе самим — это более гибкий вариант, наиболее точно отвечающий запросам заказчика.
Бэкэнд выполнен на Symfony Framework, панель администрирования — Sonata Admin.
Некоторые элементы фронтэнда выполнены с использованием react-redux.
К сожалению, пока магазин имеет некоторые проблемы с ассортиментом, что вызвано небольшим количеством дилеров. Также есть еще некоторые функции, которые было бы хорошо реализовать
Но, тем не менее, даже сейчас, магазин имеет некоторые преимущества.
Основная проблема при подборе запчастей на подобных сайтах заключается в том, что база TecDoc и склад запчастей фактически находятся в разных базах данных, причем доступ к складу идет через API, и поэтому в результате подбора запчастей для машины мы получаем список каких-то запчастей, которые подходят, а наличие этих запчастей мы получаем уже на следующем шаге, после запроса к api поставщика.
Например, вот так выглядит поиск запчасти у конкурента:
Переходим по первой ссылке:
У нас же можно проверить наличие товара на первом шаге:
Со временем, после подключения новых поставщиков, интернет-магазин Carwatt.by, я думаю, займет свое достойное месте среди конкурентов.
— Получилось дешевле чем аренда платных CMS. И с каждым днём\месяцем\годом разрыв между стоимостями будет увеличиваться т.к. в нашем случае арендная плата вообще отсутствует.
— Сайт работает быстрее (Если верить тесту PageSpeed Insights, значения выше среднего)
— Минимальные эксплуатационные затраты. В год: 80$ за хостинг сайта + 10$ за домен + 20$ за хостинг для картинок.
+ Заказчик получил бесплатный бонус от нашего дизайнера – логотип компании.
Ещё довольно интересная «штука» получилась — это страница «контрактные детали», у конкурентов такого мы не нашли. Работает модуль медленно (но это вопрос не к нам), зато цены на детали радуют))
Будьте осторожны на дорогах и берегите своих «железных коней»!