Протип интернет-магазина на базе SimpleMVC. Начало
Primary tabs
Описание задачи ниже.
Товары
Создаем таблицу товаров с тремя полями (помимо технических):
- Название товара
- Цена за штуку
- Количество на складе
-- по сути это склад, тот товар, который ещё не продан.
Корзина
Далее, каждый пользователь может добавлять товары в корзину, причем:
- В дизайне: Корзина должна быть представлена одним из пунктов меню, рядом с названием которого в скобках должно указывать число товаров.
При переходе по этому пункту меню пользователь должен видеть список добавленных товаров, количество штук для каждого товара и суммарную ценю по каждой позиции в списке (её лучше вычислять динамически)
- В СУБД: в СУБД состояние корзин разных пользователей должно храниться в одной таблице, отличать чьи это позиции нужно с помощью внешнего ключа
- Пользователь может каждую позицию в корзину (используйте "добавить в корзину" в списке товаров и обработчик события клика с ajax-запросом к бэкэнду) в количестве, которое не превышает число на складе. Если число товаров в корзине превышает число на складе - выводите сообщение об ошибке средствами JavaScript.
До тех пор пока пользователь не совершил покупку, товары со склада не списываются, это значит, что при наличии 8 штук для какой-то позиции, в корзины два пользователя вполне могут добавить по 5 штук - это больше чем всего есть на складе, но мы будем обрабатывать эту ситуацию позже, так как ещё не известно купить ли пользователь что-то.
Покупка
При совершении покупки из число товаров на складе, вычитается число товаров, лежащее в корзине текущего пользователя
Если почему-либо число товаров на складе, меньше чем что, что оказалось в корзине -- выведите сообщение об ошибке с указанием названия товара, с которым проблема и числом шт., которое все ещё доступно для данного товара.
Дайте пользователю возможность уменьшить число товаров (кнопками +
и -
и ajax-ом), до того, которое реально для покупки и все-таки завершить сделку.
- Log in to post comments
- 918 reads