Два способа
Магазин принимает оплату за бронирование. Клиент бронирует через форму бронирования, а затем оплачивает на кассе вашего магазина. Создавать товар не нужно.
Товар продаёт слот. В карточке товара предлагаются день, время и продолжительность, и клиент кладёт слот в корзину, как обычный товар.
Что должно работать точно
- Места считает система бронирования, а не складской остаток магазина. Остаток товара не знает, что есть сеанс в 10 часов и ещё один в 14 часов.
- Место в корзине придерживается на какое-то время. Пока клиент платит, никто другой не должен его занять. Но брошенная корзина должна освобождать его сама, иначе ваши даты заполнятся забытыми корзинами.
- Цена берётся из бронирования: тот же расчёт, который клиент видел при бронировании, а не фиксированная цена товара.
- Заказ и бронирование идут рука об руку. Как только бронирование оплачено, оно подтверждено; если оно отменено, это видно в заказе.
Что проверить
- Положите последнее место в корзину в одном браузере, затем попробуйте забронировать его в другом: второй запрос должен быть отклонён.
- Бросьте корзину: место должно вернуться в продажу по истечении заявленного срока.
- Примените промокод: сумма заказа должна совпадать с суммой бронирования.
- Оплатите банковским переводом: бронирование должно ждать оплаты, а не значиться подтверждённым.