Интернет магазин. Хранение корзины товаров.

Статус
В этой теме нельзя размещать новые ответы.

hell0w0rd

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

arhat78

Новичок
по моему тут обсуждается совсем не корзина. В корзине должны храниться id готовых товаров и их количество. Возможно цена на момент добавления, в зависимости от политики магазина.
О чём речь ведёте?????????? Мне как раз нужен вывод в корзине
 

keltanas

marty cats
вам же в 3м комментарии сказали, как надо делать. так нет, уже на 3ю страницу бреда понаписали
 

arhat78

Новичок
вам же в 3м комментарии сказали, как надо делать. так нет, уже на 3ю страницу бреда понаписали
keltanas, почему же сразу бред????!!! Я же размеры из БД циклом вывожу селектом; а чекбоксами же совсем по другому вывод выходит, не так?
 

arhat78

Новичок
arhat78, задача стояла какая? Как хранить? Так при чем тут селекты и чекбоксы?
keltanas, циклом через селект я вывожу размеры (есть отдельная таблица размеров, на разные ботинки могут быть разные размеры). А задача - в корзине нужно сделать так, чтобы при выборе одного ботинка но двух размеров, выводились оба размера (сейчас выводится только последний выбранный размер).....
 

keltanas

marty cats
У тебя товар в базе имеет product_id? Размер в базе имеет size_id?
А когда товар в корзину попадает, но чем идентифицируется? product_id?
А почему для иденификации товара в корзине не использовать product_id + size_id?
 

arhat78

Новичок
У тебя товар в базе имеет product_id? Размер в базе имеет size_id?
А когда товар в корзину попадает, но чем идентифицируется? product_id?
А почему для иденификации товара в корзине не использовать product_id + size_id?
Ну в таблице products есть колонка id, также в таблице size колонка id. А вот как использовать "product_id + size_id" - я пока представления не имею.... такой формулы или подхода ещё не встречал......
 

keltanas

marty cats
такой формулы или подхода ещё не встречал......
теперь встретил ;)
еще раз: в качестве идентификатора товара в корзине выбираешь не product_id, а составной ключ. я же не виноват, что ты не знаешь, что такое составной ключ ))
Получить его можно например так:
PHP:
<?php
class BasketItem

public function getCompositeKey()
{
    return sprintf('%d.%d', $this->getProductId(), $this->getSizeId());
}
 

hell0w0rd

Продвинутый новичок
keltanas, а зачем такое нужно? Тебе же нужно количество товара хранить еще.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
keltanas, без обид, но у тебя не составной ключ, а строка из двух интов, склеенных через точку. говоря по обычному - херь какая-то
 

keltanas

marty cats
hell0w0rd, а что мешает хранить количество?
флоппик, я не контекст бд имею ввиду, а контекст объекта. Давай назовем его сложным ключом или хешем, чтобы не путать понятия. Главное, что данная строка даст нам возможность идентифицировать один и тот же товар с разными размерами. И разные товары с одним размером.
 
Последнее редактирование:

keltanas

marty cats
hell0w0rd, не, id товара рядом храним, ради бога. Но, идентифицируем по совокупному идентификатору, который должен быть хешем от id товара и его свойств.
 

hell0w0rd

Продвинутый новичок
keltanas, и зачем так делать?
id, prop1_id, prop2_id, count - вот так я вижу схему, я чего-то не понимаю?
 

keltanas

marty cats
hell0w0rd, это не схема, это набор идентификаторов чего-то. Как их хранить? Как их сравнивать? А если свойств больше, чем 2 и их количество вообще переменное?
В моем случае достаточно доработать метод, генерящий хеш на произвольное значение свойств и после можно сравнивать товары в корзине по этому хешу.
Конечно, к какому именно классу отнести данный метод еще вопрос: Скорее всего это должен быть некий BasketManager или BasketItemFactory :), но суть сохраняется.
Что я тут мемуары пишу, вот же.
 
  • Like
Реакции: WMix

WMix

герр M:)ller
Партнер клуба
Для этого придуман термин SKU.
Но, идентифицируем по совокупному идентификатору, который должен быть хешем от id товара и его свойств.
конечно же нужен SKU и конечно это набор свойств отличных от товара к товару к примеру для iPhone 16/32 GB цена разная продукт один!
 

arhat78

Новичок
теперь встретил ;)
еще раз: в качестве идентификатора товара в корзине выбираешь не product_id, а составной ключ. я же не виноват, что ты не знаешь, что такое составной ключ ))
Получить его можно например так:
PHP:
<?php
class BasketItem

public function getCompositeKey()
{
    return sprintf('%d.%d', $this->getProductId(), $this->getSizeId());
}
Так.... интересно, что то новенькое..... Нужно будет погуглить инфу по составному ключу и как его использовать...... а что такое %d.%d', почему переменная $this принимает два значения, и как потом это (или эти) значение (-я) выводить???? И это ещё некий класс, его тоже как то и где то использовать нужно....
 

Absinthe

жожо
arhat78, т.е. у тебя у всех товаров должен быть size? А если это две кофты? У них отличается еще и цвет.
Есть такой (анти)паттерн EAV. Или используй документоориентированные средства СУБД, но не везде они есть (в MySQL нет)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху