Тут может не хватать
- дизайна календаря
- состояний кнопок (неактивных)
Но в целом всего достаточно.
Реализация может быть как на стороне бекенда (за каждым изменением списка товаров бек перестраивает страницу), так и частично на фронте (валидация, ajax для быстрого обновления части контента).
Я бы делал второй вариант:
- все данные получаем по Ajax и отправляем так же.
- валидация на клиенте (Parsley.js / HTML5 Forms) + дополнительная валидация проверенных данных беком