Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
День добрый.
Хочу попробовать сделать интернет магазин. Все почти готово,кроме корзины и оплаты. Вот тут я застрял, незнаю как правильно структуру бд сделать.немогли бы вы показать примерную структуру с таблицами что в шапке темы?
Не в сети
уже писал как-то по реализации корзины, код с рабочего проекта скидывал: https://laravel.ru/forum/viewtopic.php?pid=11739#p11739
Не в сети
Не ного непонятно как у вас база там устроена.
Корзина относится к пользователю. Получается у пользователнй много корзин, а не одна?
Корзина относится к товару. Получается что бы вывести все товары в корзине, мы должны пройтись по 2м цыклам: цыкл со всеми корзинами, а потом цикл с товаром?
Не в сети
нет, корзина находится в сессии, другой браузер – другая сессия. при такой корзине вообще нет необходимости требовать регистрацию у покупателя – можно адрес доставки и телефон спросить уже в процессе оформления заказа – собственно для интернет-магазина это предпочтительный вариант – пользователи очень не любят сложностей, им идеально – нажать кнопку, ответить на несколько вопросов и получить покупку. все сложности ведут только к снижению конверсии
вместо этого логика в том чтобы сгенерировать идентификатор, положить его в сессию и на него вешать содержимое корзины. потом оформление заказа сводится к тому чтобы по идентификатору взять список товаров, проверить их наличие на складе (если есть склад), сделать по списку заказ, привязать заказ к пользователю (если в сессии есть авторизация) и дальше уже с готовым заказом можно передавать на оплату. если оплата прошла – списываем товар со склада, помечаем заказ как оплаченный, шлём менеджеру нотификацию что надо оформить доставку тому-то тому-то таких-то товаров по такому-то адресу
Не в сети
- нет, корзина находится в сессии, другой браузер – другая сессия.
Это вызывает другую проблему: "ой я что-то закрыла и всё пропало!!11".
У Amazon хороший подход: у них есть и корзина в браузере, и корзина в аккаунте. Если ты не вошёл в аккаунт — используешь браузерную корзину. Если вошёл уже после того, как накидал вещи в корзину (что происходит когда ты пытаешься оформить заказ и вводишь данные), то корзина из браузера автоматически складывается с корзиной в аккаунте, а товары, которые ты не собираешься покупать сейчас, кладутся в список «на потом» (эдакая вторая корзина/wishlist).
Не знаю, как они действуют в случае, когда несколько человек сразу пытаются оформить заказ с одного аккаунта, но для обычного сценария с одним пользователем на аккаунт эта схема очень хорошо работает.
Не в сети
Это вызывает другую проблему: "ой я что-то закрыла и всё пропало!!11".
теоретически да, но на практике – нет, сессия достаточно долго живёт, а если нужно – можно идентификатор корзины и в отдельную куку положить со своим временем жизни. тогда после «закрыла» идёт «открыла а корзина на месте».
идеала конечно нет, но подход вполне рабочий, обычно покупки совершаются сразу, редко кто держит товары в корзине месяцами. разве что если на сайте нету «закладок/избранного/списка желаний» – тогда обязательно кто-нибудь догадается корзину в таком качестве использовать
Не в сети
- теоретически да, но на практике – нет
Я как раз по своему практическому опыту сужу — когда-то я делал один интернет-магазин именно в таком виде (корзина хранилась в сессии). Меня просто заваливали вопросами/просьбами/предложениями на тему того, что корзина вечно теряется и т.п. (хотя не исключено, что заказчик преувеличивал проблему и число «пострадавших»). Так что в теории оно хорошо, а на практике все пользователи дураки…
Не в сети
Страницы 1