Илья Синельников |
Аркадий! Вы не виноваты. Вы не сделали ничего незаконного. Это недоработка магазина. |
Но просто выводить предупреждение, что надо поторопиться, — это полумера, которая не решает проблему. Ведь всё равно может оказаться, что отложенный в корзину товар вдруг станет недоступен. Тогда клиент расстроится, а магазин недополучит деньги. Я столкнулся с такой же проблемой в Энви.рент, где мы сдаём машины в аренду. Что делать, если два человека заказали одну и ту же машину одновременно? Кто успел, тот и съел, а второму показывать ошибку? Делать таймер? Мы решили, что на программном уровне не надо ничего менять. У нас и так уже есть механизм разруливания конфликтующих заказов (машина может стать недоступной по многим причинам: продалась, попала в аварию, в сервисе). А раз так, то мы просто напишем одному из клиентов стандартное письмо «прости, машина стала недоступна, вот тебе машина лучше забесплатно». И всё. Клиент счастлив, у нас два заказа, ничего не надо разрабатывать. Идеально. Некоторые крупные компании и агрегаторы вводят таймеры. То есть резервируют товар на время оформления заказа. Такое решение сложно в разработке и создаёт дополнительный барьер для пользователей. Но если конфликты случаются часто, то это возможное решение.
На месте магазина я бы не усложнял процедуру заказа. Принимал бы заказ в любом случае, а потом писал бы клиенту письмо: извини, твой ноутбук недоступен, вот тебе другой со скидкой, вот тебе просто скидка на будущие товары. Если окажется, что скидка не радует, и клиенты всё равно расстраиваются, то, наверное, |