Корзина покупателя плюсы и минусы разной технической реализации

FRIE

Новичок
Корзина покупателя плюсы и минусы разной технической реализации

Здравствуйте,

Создал я корзину покупателя на связке php+mysql+ajax, и задумался над тем что постоянные запросы к базе и серверу не есть хорошо, в то время как корзину можно формировать на стороне клиента .

Почитав интернет по сабжу , набрел на информацию о том что корзину на куках делать не рекомендуется, в связи с ее ограничением 4096 байт , но попробовав позаписывать в куки товары , и не только id товаров , а еще их стоимость количество и название, понял что можно около 40 занести без проблем, отсюда мысль - а кто-нибудь когда-либо заказывал стоко товаров? можно конечно привести пример канцелярских товаров где нужно заказать 100 разных ручек для работников большого офиса, но этот вариант можно опустить. может в таком способе есть подводные камни? или это просто "сплетни"?

Какие варианты реализации вы когда-либо видели или делали? и ваши мысли -как более грамотно реализовать корзину?

У меня сейчас сделано так - ссылка с товаром , по нажатию вызывается скрипт, который аяксом отсылает данные серверному скрипту addtocart.php который в свою очередь добавляет товар в таблицу cart, а затем, читает эту таблицу в поисках товаров пользователя , и результат (все выбранные товары), ajax загружает в поле с корзиной где юзер визуально видит товары, и может изменить количество и удалить товар . Изменении в корзине, делается по тому же приципу как и добавление.

Очень интересует мнение спецов насчет моего варианта
 

dimagolov

Новичок
задумался над тем что постоянные запросы к базе и серверу не есть хорошо
с какой такой радости?

все остальное можно не читать, так как изначальная посылка ложная.
 

Духовность™

Продвинутый новичок
////////////

постоянные запросы к базе и серверу не есть хорошо
какие там ещё ЗАПРОСЫ? insert/delete по id primary_key? тоже мне, запросы. они моментально исполняются, тут даже думать нечего.
 

FRIE

Новичок
спасибо что развеяли сомнения, значит правильно я сделал



triumvirat а почему незарегестрированным нужно хранить в сессии? защита от ботов?
 

melo

однажды
ложи в сессию ид и количество товара и не парся.
 

LONGMAN

Dark Side of the Moon..
Не так всё просто. У продукта может быть и аттрибуты, на пример чёрные брюки дороже чем красные. Выходит в сессию нужно хранить id продукта, количество и выбранный аттрибут. А если аттрибут не один, то вообше бардак. Ещё пакупатель может захочет купить всё выбранное на пример через день, а если хранить карзину в сессии, то это геморно. Ешё нельзя создать ссылки на карзину, если карзина в сессии. Короче всё это лучше хранить в бд,
 

melo

однажды
пОкупатель, кОрзина.
хранишь ид, когда надо показывать продукт, то вытягиваешь его из базы. через день захочет - зайдет и выберет нужный товар. иди по пути наименьшего сопротивления.
 

Духовность™

Продвинутый новичок
интернет магазин - это не то место, где нужно ходить по пути наименьшего сопротивления. это бизнес.
 

Single

пилот капсулы
Корзину с товарами храню в табличке БД.
на всех страничках магазина показывается количество товаров в корзине.
Делать селект запрос количества товаров на каждой страничке не допустимо по ряду причин посему храню ссылку на корзину в БД и количество товаров в memcache.
 

Фанат

oncle terrible
Команда форума
Батюшки, какие страсти. "по ряду причин". В целях противостояния заговору мирового зла, не иначе.
 

Страшный Злодей

Бывший член клуба (достало хамство).
Автор оригинала: *****
Батюшки, какие страсти. "по ряду причин". В целях противостояния заговору мирового зла, не иначе.
Можно спросить, а что так смутило? Вполне нормальное решение, которое экономит машинные ресурсы. Особенно, если у тебя посещаемость 10 000 хостов в сутки и в базе хранятся тонны записей, а магазин висит на вирутальном хостинге, то иного пути может не оказаться. имхо - жизненная ситуация.
 

LONGMAN

Dark Side of the Moon..
Страшный Злодей
Если у человека есть магазин посешаемостью 10 000 хост в день, и висит всё это на виртуальном хостинге, то имхо, это не жизненная а клиническая ситуация :)
 

Mols

Новичок
Автор оригинала: melo
пОкупатель, кОрзина.
хранишь ид, когда надо показывать продукт, то вытягиваешь его из базы. через день захочет - зайдет и выберет нужный товар. иди по пути наименьшего сопротивления.
Вот тут очень по разному может быть.
К товару могут быть добавлены/удалены опции, изменена цена или само описание.
В общем не всегда можно полагаться на то, что завтра пользователь увидит то, что положил в корзину вчера.
 

fixxxer

К.О.
Партнер клуба
а должен?

если в корзине хранить цену и фиксировать ее на момент помещения в оную, можно было бы очень хорошо читерить при финансовой нестабильности (например, когда сильно скачут курсы валют). не думаю, что заказчик инет-шопа будет очень доволен такому поведению :)
 

Страшный Злодей

Бывший член клуба (достало хамство).
а потом уверенно говорить заказчику - "однако за время пути, собака могла подрасти" :)

Вообще, смех смехом, а примерно такую систему (отложеный заказ, где цена может меняться) используют многие, существуют вэб интерфейсы для работы с ММВБ и РТС (торговля акциями) типа quik - там акции находятся в корзине, а цена, понятно плавает.. Практикуется такое дело и в оптовых компаниях для работы с контранентами, да много ещё где.. В принципе корзина, ведь это только принцип работы вэб-приложения, а использовать её можно по всякому.
 

Mols

Новичок
fixxxer
Ну в том и дело, что не должен.
Но на мой взгляд нельзя допускать ситуаций навроде
1. Положил вчера в корзину товар по цене 10 бакинов
2. изменилась цена товара
3. завтра зашел - увидел этот товар в корзине и купил по новой цене
Можно конечно сказать, что сам дурак. Надо быть внимательным. Но я считаю, что пользователю должно быть максимально удобно. А значит надо его оповестить о том, что изменилась цена, опция стала не доступна (в идеале даже о том, что появились новые опции которых он не мог видеть когда помещал заказ в корзину или у опций которые он не выбрал - снизилась цена) ну и т.п.
Если тупо хранить ИД товара - нифига не выйдет.
Также не выйдет и истории заказов, если хранить только ИД.
В общем ИМХО просто связь по ИД товара путь далекий от реальности.
 
Сверху