Jump to content
  • 0

Корзина на JS


art201214
 Share

Question

Здравствуйте, товарищи

Пытаюсь написать корзину, так сказать на native js, и пока слабо представляю как это сделать. Возможно, кто-то сможет хотя бы словесно меня направить в нужное русло. У меня есть некоторые замыслы, они описаны в конце

Есть страница товара (на каждый товар отдельно) и страница корзины отдельно (скрины страниц приложены). Предполагается хранить "корзину" в localstorage.

Со страницы товара нужно вытянуть изображение, название, цену, выбранный цвет и размер. Соответственно, после нажатия кнопки "add to bag" товар должен отобразиться на странице корзины. Если товар с такими же параметрами уже есть в хранилище, нужно увеличить счетчик этого товара в корзине на 1, по клику на "remove item" - уменьшить на 1. Клик по "empty bag" - очистить корзину. Так же нужно подсчитать сумму всех товаров и их количество. 

Скрытый текст

 Товарfc64e1a41485.jpg

Корзинаff6611b4b887.jpg

У меня пока что возникают такие идеи: 

- Для каждого товара по нажатию на кнопку "add" создавать объект, в качестве свойств и сделать изображение(путь к нему), название, цену, выбранный цвет и размер.

- После пройтись по объектам и сравнить свойства только созданного с имеющимися (если уже имеется такой же объект добавить к счетчику, если нет - добавить новый товар в корзину). В этом пункте мне более всего нужны советы, т.к. не представляю как это сейчас сделать

- Как собрать сумму покупок пока что тоже слабо понимаю

- Как удалить один экземпляр товара (уменьшить счетчик товара на 1, если он до этого был =1 - удалить товар (как удалить товар в таком случае - не соображу))

 

Буду благодарен за любые советы и помощь

Edited by art201214
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Вряд ли, кто-то будет описывать весь алгоритм. В общих чертах верно, но каждый товар должен иметь идентификатор. И пусть все товары хранятся в одном объекте в котором ключом будет айди, а значениями поля товара... Объект храним в локальном хранилище в формате json. Для любых изменений берем строку из хранилища парсим в объект, изменяем, преобразовываем в json, очищаем хранилище, пишем новую строку в хранилище.

12 часа назад, art201214 сказал:

- После пройтись по объектам и сравнить свойства только созданного с имеющимися (если уже имеется такой же объект добавить к счетчику, если нет - добавить новый товар в корзину). В этом пункте мне более всего нужны советы, т.к. не представляю как это сейчас сделать

Проитерировать по объекту, если айди товара совпадает с ключом - тело условия...

12 часа назад, art201214 сказал:

- Как собрать сумму покупок пока что тоже слабо понимаю

Проитерировать по каждому товару в объекте , внутри товара обращаться к нужному ключу и производить сложение в переменную.

12 часа назад, art201214 сказал:

- Как удалить один экземпляр товара (уменьшить счетчик товара на 1, если он до этого был =1 - удалить товар (как удалить товар в таком случае - не соображу))

Обратиться к объекту по айди товара. Если такой ключ есть и свойство quantity больше одного - декрементировать свойство quantity, иначе если такой ключ есть и свойство quantity равно одному удалить объект по id.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By mikhail.troshin
      Подскажите,сделал страницу на html, там таблица (table) c ячейками - в ячейке карточка товара из "divов", подскажите,могу ли я сделать так, чтоб информация о товарах в каждой карточке загружалась из exel таблицы или чего то в этом духе. Подскажите хоть куда копать. Спасибо!
    • By Vic-Tor
      Добрый день!
      Боюсь, что моя корзина не всем понравится, кто-нить может предложить полноценную корзину на мой сайт??
       
      Спасибо! Жду предложений.
    • By illya_v
      Вопрос для знатоков.
      Есть такая верстка.
      Вопрос заключается в том почему в Chrome и Opera у элемента с классом "panel" появляется вертикальный скрол-бар.
      И как от него избавиться. Естественно решение просто убрать overflow: auto не подходит.
      Тестировал в Chrome 36 и Opera 20.
    • By maliyshock
      Всем привет! Я начал на днях делать корзину для сайта. Делаю это впервые, с ajax и js знаком плохо, отсюда ошибки и вопросы.

      http://jazz-i-lopata.ru/category/%D0%B8%D0%B3%D1%80%D1%8B/#

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

      Вся эта схема пока работает благодоря 3-м файлам.

      header.php - в котором отслеживаются события кликов по тому или иному элементу и запускается соответствующая функция.
      <script language="javascript">
      $(document).ready(function() { $(".submit").click(function(){ var id = $(this).attr("id"); $.post("<?php bloginfo("url"); ?>/korzina", {data: id}, function(data){ $("#cart").html(data); }); }); $(".remove").click(function(){ var remove_id = $(this).attr("id"); $.post("<?php bloginfo("url"); ?>/korzina", {remove: remove_id}, function(data){ $("#cart2").html(data); }); $("#cart").hide(); }); }); </script>При клике на ссылку "Добавить в карзину" запускается первая функция, которая передаёт на страницу korzina - id добавляемого товара.
      На странице korzina происходит получение id товара и подсчёт количества. 
      session_start();if (isset($_POST['data'])) { $data = $_POST['data']; $_SESSION['cart'][$data] += 1;}if (isset($_POST['remove'])) { $remove = $_POST['remove']; session_unset($_SESSION['cart'][$remove]);}Есть ещё файл category.php в котором настроен вывод товаров и указаны соответствующие id и классы.

      Что не работает:
      - по клику на кнопку "удалить" по аналогии с кнопкой "добавить в карзину" должен запускаться процесс отсылки id на страницу karzina. После чего если условие isset($_POST['remove']) выполняется из массива сессии должен быть удален переданный id и возвращен список всех оставшихся элементов но этого почему-то не происходит.
      Ии вот, пока я на этом повис не понимаю в чём причина. Кто знает?

      И ещё вопрос. Ребят, какие форумы посоветуете, где адекватные люди могут адекватно подсказать?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy