Size: a a a

Software Design/Architecture/Zen

2021 April 08

F

Forestoff in Software Design/Architecture/Zen
Немного не подходит такое, ибо пока товар не оплачен и не доставлен - он не может быть списан. на этапе корзины такое я провернуть не смогу
источник

AL

Anton Lakotka in Software Design/Architecture/Zen
вопрос только в том, что такое резервирование и как его делать.
источник

AN

Alexander Nazarov in Software Design/Architecture/Zen
Корзина же может быть брошеной? Сколько она времени живет? Допустим вы захотите отправить уведомление человеку о том что "Смотри твои товары тебя еще ждут!", в этом кейсе вы же также проверите наличие товаров?
источник

A

Adv0cat in Software Design/Architecture/Zen
На этапе покупки и резервирования товаров, корзины уже как таковой не существует, все товары помечаются как почти куплены, т.е. уже сформирован “заказ”, а не “корзина”, дальше нужно отслеживать статутс заказа, оплачен не оплачен и т.д.
источник

F

Forestoff in Software Design/Architecture/Zen
Пока такого требования не было. Но вероятно да, буду проверять наличие товаров
источник

F

Forestoff in Software Design/Architecture/Zen
понял вас теперь. но интересует пока все, что идет до этапа "корзина -> заказ"
источник

AN

Alexander Nazarov in Software Design/Architecture/Zen
ну тогда получается нет инварианта? То есть корзина валидна с любыми товарами. И с теми что в наличии и теми которых нет. Это просто как место для хранения того что выбрал пользователь.
источник

F

Forestoff in Software Design/Architecture/Zen
С товарами, что закончились да, тут я согласен. На счет удаленных товаров из меню - думаю тут инвариант уже
источник

VS

Vladimir Smirnov in Software Design/Architecture/Zen
Посмотрите все таки доклад Уди, там прям по кейс о котором вы спрашиваете разбирается
источник

AN

Alexander Nazarov in Software Design/Architecture/Zen
Почему? Вот к примеру на алике, он показывает что товар который я в корзину положил, удален. Но сам товар не удаляет. Потому что по этому товару он может найти мне похожие товары заменители.
источник

A

Adv0cat in Software Design/Architecture/Zen
Ну резервирование, это когда вы уже решили покупать и начали процедуру покупки, но ваши покупки еще во владении магазина, он еще должен получить оплату и т.д. пока покупки не стали вашими. Вот все это время товар должен быть зарезервирован за вами. Иногда его резервируют специально на 5-30 мин, когда говорят “отложите мне вот эту пару обуви, я щас приду” ))
источник

VS

Vladimir Smirnov in Software Design/Architecture/Zen
Или товар могут завезти на склад пока корзина брошена
источник

AN

Alexander Nazarov in Software Design/Architecture/Zen
кейс про удаление. То есть вообще больше товара нет.
источник

VS

Vladimir Smirnov in Software Design/Architecture/Zen
И товар пропадёт из всех старых накладных историй и тд? Слабо представляю вообще кейс с «удалением»
источник

VS

Vladimir Smirnov in Software Design/Architecture/Zen
Товар пропадает из каталога - это да
Удаляется - историчность вся в одно место
источник

F

Forestoff in Software Design/Architecture/Zen
Он удаляется из меню, т.е. "помечается удаленным", softdelete
источник

AN

Alexander Nazarov in Software Design/Architecture/Zen
мне кажется нормально когда вы пользователю покажете типа "Смотри этого товара больше нет, он softdelete". Чем вы за него просто возьмете и удалите товар из его корзины. Для него это будет магия, типа "что?? Где? Почему?"
источник

VS

Vladimir Smirnov in Software Design/Architecture/Zen
Ну представить, вот кинул я товар в корзину сегодня утром и закрыл сайт
Вечером один менеджер «удалил» из каталога
С утра завтра пришла фура неожиданно, другой манагер вернул его- он же не будет новое создавать?
Я вечером захожу в корзину - все есть, я заказываю
источник

F

Forestoff in Software Design/Architecture/Zen
Да, но мне почему-то кажется, что тогда будет инвариант от которого мы защищаемся на этапе добавления. Ни о каком удалении из корзины не идет речи.
Я вот сейчас и хочу понять, инвариант ли это, т.е. утром у нас была валидная корзина, когда товар удалили - она невалидна, т.е. там есть удаленный товар.
Как вариант был научить корзину переходить из невалидного состояния в валидное путем удаления всех товаров, которые "не в продаже" или "удалены".
источник

VS

Vladimir Smirnov in Software Design/Architecture/Zen
Пользователю неважно, он закончился просто на складе или его вообще не будет больше никогда там
источник