Как создать корзину?

12
LH
На сайте с 26.09.2013
Offline
89
617

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

Подскажите, пожалуйста, как реализовать корзину, в которой у одного товара могут быть разные параметры с разными ценами, а так же товар без параметров с одной единственной ценой? Можете описать ПРИНЦИП по шагам??

--- ПРИМЕР ---

Плоскогубцы : 500 руб.

Шар : красный - 500 руб., синий - 1000 руб.

Джинсы : L - 1500 руб., XL - 2500 руб.

danforth
На сайте с 18.12.2015
Offline
153
#1

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

Есть такое понятие, как нормальные формы. Их несколько, до 6-го уровня. Почитать можете на википедии. Вкратце, хоть это и сложно: в базе данных не должно быть дублирования контента.

Для того, чтобы разобраться, нужно построить архитектуру. У нас есть товар. У каждого товара есть минимум один артикул. Это не код поставщика, это внутренний идентификатор, первичный ключ артикула.

Таким образом, создадим две таблицы:

products

skus

В первой будут столбцы: id, name, description, img, sku_id (первая картинка, первый артикул)

Во второй будут столбцы: id, product_id, price, currency, и т.д..

Таким образом у каждого товара должен быть как минимум один артикул, или несколько.

Товар: плоскогубцы

Артикул: 1 - цена 1000 руб.

Товар: шар

Артикул: 1 - цена 500 руб., название - красный. 2 - цена 1000 руб., название - черный.

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

Сейчас, кстати, прибегут знатоки, и скажут что в ВОРДПРЕСЕ это уже все реализовано, зачем вникать, просто накатите плаги́ну woocommerce.

Junior Web Developer
S3
На сайте с 29.03.2012
Offline
367
#2
danforth:
скажут что в ВОРДПРЕСЕ это уже все реализовано, зачем вникать, просто накатите плаги́ну woocommerce.

И не только в ВП))) В Магенте тоже все это есть, категории товаров и проч. И когда начал разбираться, убедился, что не все так грустно - довольно мощная вещь этот вукоммерц) Хоть и не без косяков. Например не могу навесить хуки на нужное мне событие, например не на всю обработку заказа, а только на метод доставки.

Зато на Джанге - делаешь что, хочешь, как хочешь и куда хочешь. Главное - понимать, что должно быть на выходе.

danforth
На сайте с 18.12.2015
Offline
153
#3
Sly32:
Например не могу навесить хуки на нужное мне событие, например не на всю обработку заказа, а только на метод доставки.

woocommerce_after_checkout_shipping_form.

Sly32:
Зато на Джанге - делаешь что, хочешь, как хочешь и куда хочешь.

А на Laravel/Silex/Lumen/Symfony/Zend этого делать нельзя? Фреймворки не корректно сравнивать с движками.

S3
На сайте с 29.03.2012
Offline
367
#4
danforth:
woocommerce_after_checkout_shipping_form

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

danforth:
А на Laravel/Silex/Lumen/Symfony/Zend этого делать нельзя?
Можно естественно) Про фреймворки - конечно некорректно, это было образное сравнение
danforth
На сайте с 18.12.2015
Offline
153
#5
Sly32:
Не нашел например хорошего списка всех полей, куда можно хуки добавлять.

https://docs.woocommerce.com/wc-apidocs/hook-docs.html

Или уже нашел?

S3
На сайте с 29.03.2012
Offline
367
#6
danforth:
Или уже нашел?

То что надо, еще не добрался. Thanks a lot!!!

ДП
На сайте с 23.11.2009
Offline
203
#7

ТС - ознакомьтесь с такой темой - как entity-attribute-value - в разрезе баз данных - это как раз как организовывать хранение сущностей (товаров), у которых разные свойства и их значения.

S
На сайте с 23.05.2004
Offline
315
#8
Leonid H:
как реализовать корзину, в которой у одного товара могут быть разные параметры с разными ценами, а так же товар без параметров с одной единственной ценой?

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

Это просто подпись.
danforth
На сайте с 18.12.2015
Offline
153
#9

Дикий пионер, EAV немного другая вещь, она применяется для характеристик скорее.

ДП
На сайте с 23.11.2009
Offline
203
#10

danforth, ок, значит я вопрос ТС не понял, видимо.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий