[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Необычная корзина
RaffaelX
Про обычную корзину все понятно цепляем Id товара и дальше берем всю инфу по нему и данные о покупателе.
У меня же не совсем так просто. Уже весь мозг вынес, искал в форумах но ничего похожего не нашел (а может не вижу)
Суть проблемы такая:
Допустим есть 3-4 типа продукции совершенно разных
у каждого вида продукции имеются свои индивидуальные характеристики, конфигурации и опции, которые можно изменить.
Так вот, как реализовать такую штуковину:
1. пользователь добавил 3 разных вида продукции (лежат в корзине, здесь все понятно)
2. следующий шаг: пользователь хочет изменить по каждой продукции индивидуальные характеристики, конфигурации
3. отправить в таблицу с данными о товарах и выборе характеристик.


Понятно что в п.2 характеристики должны храниться в отдельной таблице, т.к. каталог продукции один. Но как связать все это в конечную таблицу с определенным заказом
Игорь_Vasinsky
а что не понятно то?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
AllesKlar
Шаг 1: Пользователь добавил в корзину продук с уже заданными характеристикам. Зачем бедного пользователя заствалять делать лишние телодвижения?
На странице продукта сразу выбрал цвет, размер, запах, измерение и один раз жмакнул "Купить".

Организовать:
таблица продуктов.
таблица свойств
таблица значения свойств
таблица связей продукт_свойство_значение

Корзина:
id
id сессии гостя / id клиента
id продукта
количество
цена
id свойства
id значения свойства



_____________
[продано копирайтерам]
RaffaelX
Корзина:
id
id сессии гостя / id клиента
id продукта
количество
цена
id свойства
id значения свойства

А вот здесь то и загвоздка id свойства из какой таблицы, т.к. продукция совершенно разная и таблицы со свойствами разные и количество полей свойств-опций разное. Может это конечно все организовать, как тьфу плюнуть, но что-то не понимаю как все связать sad.gif как сделать зависимость подцепленной например по order_id выбрать/внести в нужную таблицу в зависимости от продукции
AllesKlar
Если у продукта несколько свойств, то сделай еще одну таблицу
Корзина_Свойство_ЗначениеСвойства
id
id_таблицы_корзина
id_свойства
id_значения_свойства

А лучше всего листик, ручку и рисовать.
Если не получится, то возми любой интернет-шоп и посмотри, как там организовано.

_____________
[продано копирайтерам]
vagrand
Используйте MongoDb и будет вам счастье. Одна сущность разный набор свойст.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
paul85
Делал похожую штуку для типографии, когда у товара "визитка", к примеру, может быть множество видов (цветность, одно/двусторонняя, материал, тираж...)

В итоге создал еще несколько таблиц: группы (тираж, материал, цветность), один ко многим свойства (тираж: 100, 200, 300 штук...) и линковочную таблицу продукт->свойства. Таким образом можно было "собирать" продукт с любым набором изменяемых и/или неизменяемых свойств. Иначе говоря, можно было заводить продукты любой сущности.

Ну можно еще одну таблицу создать, где будут храниться готовые наборы свойств/сущности... И просто если заводишь 100 разных чашек но какое-то свойство у них по-выбору, скажем, печать вашего фото на ней. Да/нет. И модификатор, если печатаем фото, то +500 рублей к базовой стоимости. Или +10% к базовой стоимости. Можно, наоборот, -10%, например за покупку более 100 штук. Модификатор указываем, естественно, к свойству. В первоначальном варианте в линковочной таблице.

Надеюсь понятно... =))
paul85
Цитата (vagrand @ 19.01.2015 - 18:48)
Используйте MongoDb и будет вам счастье.

А хостинг? wink.gif
mvg
Пришла мысль: собирать конфигурацию в таблицу "конфигурация продукта", а в корзине id_product, id_configuration.
RaffaelX
Цитата (AllesKlar @ 19.01.2015 - 12:35)
Шаг 1: Пользователь добавил в корзину продук с уже заданными характеристикам. Зачем бедного пользователя заствалять делать лишние телодвижения?
На странице продукта сразу выбрал цвет, размер, запах, измерение и один раз жмакнул "Купить".

определенные типы имеют по 15-17 разделов каждый из которых по 3-5 пунктов взаимоисключающих или нет опций.

RaffaelX
Цитата (paul85 @ 19.01.2015 - 22:00)
Делал похожую штуку для типографии, когда у товара "визитка", к примеру, может быть множество видов (цветность, одно/двусторонняя, материал, тираж...)

В итоге создал еще несколько таблиц: группы (тираж, материал, цветность), один ко многим свойства (тираж: 100, 200, 300 штук...) и линковочную таблицу продукт->свойства. Таким образом можно было "собирать" продукт с любым набором изменяемых и/или неизменяемых свойств. Иначе говоря, можно было заводить продукты любой сущности.

Можно подробнее?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.