Я создаю приложение для продажи билетов, которое отслеживает количество билетов и деактивирует их, когда конкретный билет распродан.
Мне интересно, как лучше всего возвращать запасы обратно в магазин, когда заказ отменяется на полпути.
Текущий поток:
- Пользователи добавляют
items
кorder
какline_items
, аorder
помечается как выполненное при успешной оплате. items
имеетquantity_available
, обновленный на основе ихline_items
- Я периодически просматриваю
orders
без каких-либо действий в течение > 20 минут, удаляю эти ордераline_item
и обновляюquantity_available
.
Такое ощущение, что я что-то упускаю с этим. Во-первых, я теряю возможность подробно просматривать брошенные заказы (у меня все еще есть какие-либо платежи/отклонения и т. д., но нет позиций). И если пользователь попытается возобновить старый заказ через 21 минуту, ему придется начать заново.
И наоборот, это связывает инвентарь на 20 минут, что может привести к потере продаж, когда шоу почти распродано.
Любое понимание будет высоко оценено. Спасибо.
line_items
во время выполнения, чтобы получить текущий доступный инвентарь, как обсуждалось здесь . Мне казалось, что выполнение этого запроса для каждой отдельной транзакции будет медленным, и кэширование количества будет лучше. Хотя вполне возможно, что я ошибаюсь. - person Alex Dunae   schedule 25.02.2011quantity_available
(которое никогда не следует корректировать). Если вы этого не сделаете, у вас может быть случай, когда какой-то скрипт/процесс скорректировал число, но вы не можете понять, почему, что может привести к перепродаже или недопродаже. К вашему сведению, я запускаю несколько таких программных систем и еще не сталкивался с ситуацией, что, если кто-то хочет, но кто-то другой зарезервировал и не использует ее (хотя я тоже этого опасался) - person Rudu   schedule 25.02.2011