miniShop2
miniShop2 copied to clipboard
Проверка на существование товаров в заказе перед созданием заказа
Запрос функции / Feature request
Резюме / Summary
Перед созданием заказа необходимо проверить а не пустая ли корзина, добавлены ли товары.
Зачем это нужно / Why is it needed?
Частый прецендент - медленный сервер, дополнительная бизнес-логика, оформление заказа происходит долго. Клиент нажимает кнопку несколько раз - заказ создается несколько раз, но в первый раз корзина очищается и последующие заказы получаются пустыми.
Нужно обязательно проверять существование непустой корзины, и выдавать клиенту предупреждение, в случае проблемы.
Да и проверку на опубликованность товара тоже думаю нужно сделать из коробки. Например, человек добавил товар в корзину и закрыл вкладку. Данные сохранились в сессии. Через 2 дня зашел, нажал "заказать". А товар уже снят с продажи (галка "опубликован" у ресурса выключена). Но заказ все равно отправляется с этим товаром.
Поддерживаю добавление такого функционала из коробки, очень много прецедентов с miniShop2: Пустые заказы Заказы с товарами, которых уже нет Заказы с не актуальными данными
В других ecommerce движках видел реализации по времени сессии, таймером на js, проверка в момент отправки заказа. Но последний вариант - изначально плохое решение, нужно делать проверку наличия товаров в момент захода на страницу, чтобы пользователь мог предпринять какие-то действия до отправки заказа. Здесь может помочь https://html.spec.whatwg.org/multipage/interaction.html#page-visibility. В одной реализации видел удобный вариант - появляется окно с уведомлением, что статус некоторых товаров изменился и предлагается перманентно обновить информацию в корзине без варианта закрыть окно или проигнорировать как либо это уведомление. Так же важно учесть реализацию этого функционала в случаях, когда процесс оформления состоит из отдельных этапов: корзина и оформление. Так как бывают случаи, что пользователи застревают на странице именно оформления заказа и возвращаются к ней спустя время. Здесь так же нужно проводить проверку всех параметров заказа, как состава корзины так и условий доставки и оплаты, потому что за время отсутствия пользователя могли поменяться тарифы, способы оплат и доставки.