Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.01.2020, 06:47
Профессор
Отправить личное сообщение для savsoft Посмотреть профиль Найти все сообщения от savsoft
 
Регистрация: 03.01.2019
Сообщений: 162

Добавление товара в корзину и работа с корзиной.
Всем привет!

Есть сверстанный сайт на бутстрапе, есть админка на php. С этим проблем нет, но вот javascript и jquery только начинаю осваивать. Смутное представление есть, и если пример как что-либо сделать найти могу, но понять почему так и какой способ лучше, без опыта никак. Нет окончательного понимания, как правильно организовать работу с корзиной. Собственно вопросы.

1. При выводе страницы товаров на php, я сразу в кнопку купить могу вставить id товара.

И как лучше, добавить в кнопку onclick с вызовом функции с передачей id товара или добавить класс и его ловить через jquery и потом определять, кнопка с каким id нажата?

2. После нажатия кнопки "Купить/В корзину", я могу вызвать функцию, в которой сделать ajax запрос, передать в php id товара, проверить, нет ли товара в корзине, записать инфу в сессию, и по успеху, поменять количество товаров в корзине, изменить надпись на кнопке на "Уже в корзине" и фон кнопки. А вот как правильно добавить товар в таблицу товаров в корзине не знаю. И добавлять сразу или при вызове модального окна с содержимым корзины?

3. Содержимое корзины находится в модальном окне. Могу ли я менять свойства элементов при нажатии кнопки в корзине - в основном окне и при нажатии кнопки в основном окне - в модальном окне?

Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 17.01.2020, 07:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Корзина товаров, это целая философия в торговле, ибо на ней может быть завязано многое. Где, как определяется не языком программирования и не кнопочками, а в первую очередь номенклатурой товара и торговой политикой магазина.

По способу хранения товаров можно назвать четыре типа корзины:

1) товары корзины хранятся на сервере в сессии до момента оформления заказа. Плюсы - если заказ не будет оформлен, то "мусор товарный" будет удален сборщиком мусора и разработчику за это можно не волноваться.

2) товары корзины хранятся на сервере в базе. Плюсы - возможность организации отложенной покупки, заказов и ожиданий. Минусы - разработчик обязан сам следить за мусором. Есть и "корзиночный симбиоз" - корзина, это сессия, но сессия, это база. Например, можно назвать Onencart, в котором есть организация собственного механизма сессий в базе.

3) товары корзины хранятся на клиенте в cookie. Такое хранение позволяет иметь доступ к ним как клиенту, так и серверу. Есть и плюсы, есть и минусы.

4) товары хранятся на клиенте в его сессионном/локальном хранилище, тоже самое есть и плюсы, и минусы.

Минусы для двух последних типов зависят от торговой политики магазина, то есть они имеют место быть, или их не будет.

А кнопочки, окошечки, это "внешний лоск", который может быть у любого из способов хранения.

Последний раз редактировалось laimas, 17.01.2020 в 10:36.
Ответить с цитированием
  #3 (permalink)  
Старый 17.01.2020, 19:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Не дали дописать все сразу.

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

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

Торговля, это ведь не просто товары на складе, а тем более не в спальне под кроватью, которые доставляются челночным способом из Китая и прочих фабрик. Торговля, это изучение спроса, а оно базируется на статистике. Если нужен анализ спроса за период, то это изучение статистики заказов. Но если торговля тесно завязана на товарную биржу, то статистика спроса нужна сейчас, в реальном режиме времени, то есть о тех товарах, которые запрашиваются на текущее время. Понятно, что если корзина у клиента, то полную картину по спросу уже нельзя будет получить.

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

Собственно вы должны решить какая корзина вам более подходит, а затем как с ней работать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не обновляется анимация при добавлении товара в корзину tetra1282 Элементы интерфейса 6 05.04.2016 17:08
быстрое добавление товара в корзину ajax doz AJAX и COMET 6 24.04.2013 12:35
Работа с корзиной neitrosha jQuery 2 19.03.2012 12:09
Криво работает добавление в корзину Aprol Ваши сайты и скрипты 0 18.03.2011 14:04
Добавление элемента и работа с ним nvbn Events/DOM/Window 13 07.07.2008 19:07