Веб- сервис с Front+Back-End, БД, и разными ролями
В идеале:
БД удобная для работы с определенный товаром
Back способный качественно обрабатывать все запросы пользователей и работать с вышеупомянутой БД
Front который имеет все хорошие признаки современного магазина(например корзина, разделение товара по категориям, всякие там сортировки, фильтры, картинки с товарами, можно добавить интеграцию с платежными системами и т.д.).
Естественно магазин предусматривает не меньше двух ролей пользователей.
Клиент способный просматривать имеющиеся товары, сортировать, фильтровать, добавлять/удалять из корзины, редактировать свой заказ и осуществлять покупку.
Администратор - который должен иметь удобный интерфейс контроля за текущим состоянием дел(какие товары есть, сколько их, какие закончились, какова динамика покупок, наиболее популярные товары и группы товаров и т.д), а также удобный интерфейс добавления новых товаров и редактирования информации о тех что мы уже продаем.
Роль Клиента может быть разделена на две: авторизованный и неавторизованный. В зависимости от того какой клиент - должно меняться количество доступных функций и механик)
(Обычно мы подгружали сайты на Heroku)