17.01.2020, 06:47
|
Профессор
|
|
Регистрация: 03.01.2019
Сообщений: 162
|
|
Добавление товара в корзину и работа с корзиной.
Всем привет!
Есть сверстанный сайт на бутстрапе, есть админка на php. С этим проблем нет, но вот javascript и jquery только начинаю осваивать. Смутное представление есть, и если пример как что-либо сделать найти могу, но понять почему так и какой способ лучше, без опыта никак. Нет окончательного понимания, как правильно организовать работу с корзиной. Собственно вопросы.
1. При выводе страницы товаров на php, я сразу в кнопку купить могу вставить id товара.
И как лучше, добавить в кнопку onclick с вызовом функции с передачей id товара или добавить класс и его ловить через jquery и потом определять, кнопка с каким id нажата?
2. После нажатия кнопки "Купить/В корзину", я могу вызвать функцию, в которой сделать ajax запрос, передать в php id товара, проверить, нет ли товара в корзине, записать инфу в сессию, и по успеху, поменять количество товаров в корзине, изменить надпись на кнопке на "Уже в корзине" и фон кнопки. А вот как правильно добавить товар в таблицу товаров в корзине не знаю. И добавлять сразу или при вызове модального окна с содержимым корзины?
3. Содержимое корзины находится в модальном окне. Могу ли я менять свойства элементов при нажатии кнопки в корзине - в основном окне и при нажатии кнопки в основном окне - в модальном окне?
Спасибо
|
|
17.01.2020, 07:34
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Корзина товаров, это целая философия в торговле, ибо на ней может быть завязано многое. Где, как определяется не языком программирования и не кнопочками, а в первую очередь номенклатурой товара и торговой политикой магазина.
По способу хранения товаров можно назвать четыре типа корзины:
1) товары корзины хранятся на сервере в сессии до момента оформления заказа. Плюсы - если заказ не будет оформлен, то "мусор товарный" будет удален сборщиком мусора и разработчику за это можно не волноваться.
2) товары корзины хранятся на сервере в базе. Плюсы - возможность организации отложенной покупки, заказов и ожиданий. Минусы - разработчик обязан сам следить за мусором. Есть и "корзиночный симбиоз" - корзина, это сессия, но сессия, это база. Например, можно назвать Onencart, в котором есть организация собственного механизма сессий в базе.
3) товары корзины хранятся на клиенте в cookie. Такое хранение позволяет иметь доступ к ним как клиенту, так и серверу. Есть и плюсы, есть и минусы.
4) товары хранятся на клиенте в его сессионном/локальном хранилище, тоже самое есть и плюсы, и минусы.
Минусы для двух последних типов зависят от торговой политики магазина, то есть они имеют место быть, или их не будет.
А кнопочки, окошечки, это "внешний лоск", который может быть у любого из способов хранения.
Последний раз редактировалось laimas, 17.01.2020 в 10:36.
|
|
17.01.2020, 19:49
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Не дали дописать все сразу.
Действия с корзиной, о которых вы спрашивали будут зависеть от ее способов реализации. Понятно, что если корзину хранит сервер, то добавление товара в нее, это запрос к северу, ожидание его ответа, если товар добавлен, значит можно внести какие либо изменения на страницу - кнопочки и т.п. На север в этом случае передается идентификатор товара и выбранное количество. Хранить это могут как элементы формы, так и любые иные.
В случае реализации корзины на клиенте, в его хранилище, добавлять товар в корзину можно и не запрашивая сервер. Но тут есть большое но. Если ваш магазин торгует "как бог послал", купили - хорошо, нет - не страшно, может завтра, после завтра, ..., купят, то вполне можно и так. Но если ваш магазин, это действительно торговля, то такая корзина никак не подходит для полноценной торговли.
Торговля, это ведь не просто товары на складе, а тем более не в спальне под кроватью, которые доставляются челночным способом из Китая и прочих фабрик. Торговля, это изучение спроса, а оно базируется на статистике. Если нужен анализ спроса за период, то это изучение статистики заказов. Но если торговля тесно завязана на товарную биржу, то статистика спроса нужна сейчас, в реальном режиме времени, то есть о тех товарах, которые запрашиваются на текущее время. Понятно, что если корзина у клиента, то полную картину по спросу уже нельзя будет получить.
Есть и другой момент, это учет товарных позиций. Полноценный магазин ведет учет товаров, их наличие, ожидаемое поступление и т.п. Два покупателя могут одновременно добавлять одну и туже товарную позицию в корзину, не подозревая о том, что она одна в наличии. Если корзина у сервера, значит тот кому не повезло узнает, что товара уже нет сразу по запросу его добавления в корзину. Если же корзина у клиента, то только при оформлении заказа, хотя можно эту проблему минимизировать.
Собственно вы должны решить какая корзина вам более подходит, а затем как с ней работать.
|
|
|
|