Покупка товара #6
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Процесс покупки товара
Технический разбор
Изначально необходимо разработать систему адресов получателя в виде отдельной таблицы в базе данных, чтобы покупатель мог их менять, и создавать (CRUD). Получатель должен иметь параметр "active" или что-то подобное, чтобы можно было иметь только одного активного получателя.
Если не найдено ни одного "получателя" у аккаунта, то необходимо в интерактивном режиме запрашивать заполнение данных
3.1 Введите адрес пункта выдачи
3.2 Введите адрес дома
Это должно происходить через AJAX во всплывающем окне поверх всплывающего окна карточки товара, без перенаправлений и загрузки страницы. Вопросы должны появляться по одному в порядке очереди, а не все сразу.
Если у аккаунте уже есть активный и заполненный получатель, то этот этап должен быть пропущен
С аккаунта списывает деньги за товар и помечает их как зарезервированные, но они должны быть зарезервированны именно для конкретного продавца, чтобы отобразить ему в профиле его потенциальную выручку, то есть вероятно нужно создавать таблицу "transactions" или что-либо подобное
То же самое нужно делать с резервацией товара, чтобы в будущем можно было иметь историю заказов и отмен заказов
Продавцу должно прийти уведомление о покупке товара
Продавец должен подтвердить продажу или отклонить
Статус товара меняется для покупателя в его списке заказов
Продавец передаёт заказ в любой удобный пункт для отправки, по коду
Должен формироваться документ доставки в CDEK и продавца просто просит принести товар для отправки
Статус товара меняется на "отправлен"
Должно показывать примерную дату доставки
В будущем возможно будет корзина товаров, поэтому я рекомендую изначально проработку формирования заказа и привязку к нему товара, чтобы код обрабатывал саму инстанцию заказа, проходя по всем товарам в нём.
Если покупатель отказался от покупки (кнопкой на сайте, либо отказался получать в пункте выдачи), то деньги возвращаются из резерва и товар возвращается из резерва, продавцу приходит уведомление
Ориентируемся на функционал avito

