Обновить корзину

__PION__

Есть магазин обуви, добавление товара происходит двумя путями: либо через быстрый просмотр (всплывающее окно), либо на странице просмотра товара. Обувь как понимаете товара со многими параметрами, одна и та жа модель может иметь разный цвет, материал, внутренний материал, размер,.... Вот я добавляю товар (записывается в таблицу cart), а второй раз - тот же товар, но, например, другого цвета, получается в таблицу cart должна записаться новая строка (что щас и происходит), а вот если я добавил товар, далее брожу по сайту и добавлю еще тот же товар, то мне нужно как то определить, что это именно тот товар, который уже есть в таблице cart. По id проверять не катит, единственное что приходит в голову это проверять, например, хэши параметров добавленных в корзину товаров и добавляемого, и если совпадает то просто обновить существующую строку (кол-во увеличить на 1), иначе - insert. Правильно ли я рассуждаю, как обычно это делают в инет-магазинах?
14 ответов

__PION__

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


__PION__

По id проверять не катит
По артикулу, который тот же id. Если у вас зеленые ботинки и красные ботинки имеют одинаковый id, значит товаровед тупой.


__PION__

По артикулу
и это правильно.


__PION__

Если у вас зеленые ботинки и красные ботинки имеют одинаковый id
ниче не пойму, мне что каждому размеру обуви приписывать отдельный артикул?


__PION__

ниче не пойму, мне что каждому размеру обуви приписывать отдельный артикул?
а при чем здесь размер? разве что сортировать их. Ботинки одного размера ( имеется в виду 1-на пара ) и ботинки такого же размера ( 2-ая пара ) это две разные вещи.


__PION__

и еще в оптовом разделе есть такой момент, оптовик может собрать свой комплект обуви (8 пар) (напр., 37-1, 38-1, 39-2, 40-2, 41-2). Этот комплект заранее в БД не указан и сравнивать по id не с чем (есть конечно комплекты по умолчанию, и там сравниваю конечно по id)
Ботинки одного размера ( имеется в виду 1-на пара ) и ботинки такого же размера ( 2-ая пара ) это две разные вещи.
2 вещи, но одинаковые же и зачем добавлять в таблицу cart 2 одинаковые строки, если можно просто поле count увеличить на ед-цу. В этом и состоит задача, определить одинаковые по всем параметрам товары и если есть совпадение (в корзине), просто инкрементировать


__PION__

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


__PION__

есть такая вещь как "склад", на склад ( в базу данных склада ) заносится товар, потом покупатель через сайт заказует товар, заносит корзину, при покупки товар удаляется со склада. Инкрементировать нужно тогда когда товар дей-но одинаковый. Красные и синие сапоги это два разных товара.


__PION__

Ниче не пойму, у вас проблема возникла из-за одинаковых артикулов для разных изделий, а вы ниче не можете понять.
sqlnub, для разных товаров у меня разный артикул. но для одного товара, но разных размеров один и тот же. разве не правильно?
есть такая вещь как "склад", на склад ( в базу данных склада ) заносится товар, потом покупатель через сайт заказует товар, заносит корзину, при покупки товар удаляется со склада.
это к чему?


__PION__

определить одинаковые по всем параметрам товары
Боты 42 и 45 размера имеют как минимум один не одинаковый параметр. Если вам одинаково, то будущему носителю не одинаково даже если цена одинаковая.В случае когда покупан добавил такой же (то есть именно одинаковый) товар в корзину данные соединяются логически, а не математически.


__PION__

это к чему?
Это к тому что нужно заранее указывать что у вас на складе хранится.


__PION__

но разных размеров один и тот же. разве не правильно?
Неправильно. И вообще никакого артикула у вас нет, потому что его вы можете взять в бухгалтерии, но вам туда ходить не хочется, потому что вы уже забацали классную структуру где кеды 28 и 45 размеров - один и тот же товар. Даже категория наверняка одна и та же, несмотря что 28 это детский размер, а 45 - сугубо взрослый.Кстати, что и вправду 28 размер и 45-й по одной цене?


__PION__

Боты 42 и 45 размера имеют как минимум один не одинаковый параметр.
ну вот, поэтому они записываются в корзину как 2 разных товара.
В случае когда покупан добавил такой же (то есть именно одинаковый) товар в корзину данные соединяются логически, а не математически.
м.., я так понимаю, что сколько бы раз не добавляли один и тот же товар, в табл. cart нужно записывать новую строку, а не обновлять существующую, так? Как логически их связать потом при расчете суммы и кол-ва одинаковых товаров?
Кстати, что и вправду 28 размер и 45-й по одной цене?
)), в магазине только взрослый товар и только фо мэнда и цена для разных размеров одинаковая. а вы что 40 и 41 покупаете по разным ценам?


__PION__

м.., я так понимаю, что сколько бы раз не добавляли один и тот же товар, в табл. cart нужно записывать новую строку, а не обновлять существующую, так?
Если все данные о товаре совпадают, то обновить кол-во, если нет, занести это как еще один товар.