Изменить скрипт добавления корзину

Я нашел скрипт корзины написанный исключительно на JS, вот он

https://codepen.io/chrisachinga/pen/MWwrZLJ

Мне необходимо чтобы при добавлении товара в корзину количество товара бралось из data аттрибута, скажем data-count. Сейчас при добавлении товара всегда добавляется одна позиция.

Пытался в событии AddItem менять количество, но оно срабатывает только единожды(если товар не добавлялся ранее):

// Add item
$('.add-to-cart').click(function (event) {
event.preventDefault();
var name = $(this).data('name');
var price = Number($(this).data('price'));
var count = Number($(this).data('count'));
shoppingCart.addItemToCart(name, price, count);
displayCart();

Буду признателен за подсказку или помощью.


Ответы (2 шт):

Автор решения: ordman

Нужно внести изменение в методе addItemToCart:

  // Add to cart
  obj.addItemToCart = function(name, price, count) {
    for(var item in cart) {
      if(cart[item].name === name) { //Если товар в корзине
        //cart[item].count ++; //Убираем инкремент на 1
        cart[item].count += count;//Добавляем количество
        saveCart();
        return;
      }
    }
    var item = new Item(name, price, count);
    cart.push(item);
    saveCart();
  }

// +1
$('.show-cart').on("click", ".plus-item", function(event) {
  var name = $(this).data('name')
  //shoppingCart.addItemToCart(name);
  shoppingCart.addItemToCart(name, null, 1);
  displayCart();
})
→ Ссылка
Автор решения: Rudi

Внёс такие изменения и в корзину добавляется количество из data-count вписанного в тег <a href="#"..... эти куски кода скопировал с комментариями, чтобы легче было ориентироваться.

// Add to cart
  obj.addItemToCart = function(name, price, count) {
    for(var item in cart) {
      if(cart[item].name === name) {
        //cart[item].count ++;//заменено на
        cart[item].count += count;// это
        saveCart();
        return;
      }
    }
    var item = new Item(name, price, count);
    cart.push(item);
    saveCart();
  }
// Set count from item



// *****************************************
// Triggers / Events
// ***************************************** 
// Add item
$('.add-to-cart').click(function(event) {
  event.preventDefault();
  var name = $(this).data('name');
  var price = Number($(this).data('price'));
  var count = Number($(this).data('count'));//добавлено
  shoppingCart.addItemToCart(name, price, count);
  displayCart();
});

// Clear items
<!-- Main -->
<div class="container">
    <div class="row">
      
      <div class="col">
        <div class="card" style="width: 20rem;">
            <img class="card-img-top" src="http://www.azspagirls.com/files/2010/09/orange.jpg" alt="Card image cap">
           <div class="card-block">
            <h4 class="card-title">Orange</h4>
             <p class="card-text">Price: $0.5</p>
             <!-- добавлено data-count='10' --><a href="#" data-name="Orange" data-price="0.5" data-count='10' class="add-to-cart btn btn-primary">Add to cart</a>
           </div>
        </div>
      </div>
      <div class="col">
        <div class="card" style="width: 20rem;">
  <img class="card-img-top" src="http://images.all-free-download.com/images/graphicthumb/vector_illustration_of_ripe_bananas_567893.jpg" alt="Card image cap">
  <div class="card-block">
    <h4 class="card-title">Banana</h4>
    <p class="card-text">Price: $1.22</p>
    <!-- добавлено data-count='17' --><a href="#" data-name="Banana" data-price="1.22" data-count='17' class="add-to-cart btn btn-primary">Add to cart</a>
  </div>
</div>
      </div>
      <div class="col">
        <div class="card" style="width: 20rem;">
  <img class="card-img-top" src="https://3.imimg.com/data3/IC/JO/MY-9839190/organic-lemon-250x250.jpg" alt="Card image cap">
  <div class="card-block">
    <h4 class="card-title" >Lemon</h4>
    <p class="card-text">Price: $5</p>
    <!-- добавлено data-count='29' --><a href="#" data-name="Lemon" data-price="5" data-count='29' class="add-to-cart btn btn-primary">Add to cart</a>
  </div>
</div>
      </div>
    </div>
</div>

  
 <!-- Modal -->

→ Ссылка