<div class="header">
    <img src="http://i.imgrpost.com/imgr/2017/07/13/003-cart.png">
    <h1>
Handlevogn</h1>
  </div>
  <div class="container">
    <div class="row">
      <div class="col-md-3 prodHeight">
        <div class="prodPicture">
          <img src="http://i.imgrpost.com/imgr/2017/07/13/001-smartphone.png">
        </div>
        <div class="prodInfo row">
          <div class="col-md-6">
            <h4>PRODUCT 1</h4>
          </div>
          <div class="col-md-6">
            <h4>Rs.425</h4>
          </div>
        </div>
        <button  id="prod1">ADD TO CART</button>
      </div>
      <div class="col-md-1"></div>
      <div class="col-md-3 prodHeight">
        <div class="prodPicture">
          <img src="https://cdn3.iconfinder.com/data/icons/flat-icons-10/512/shirt_-_tie-512.png">
        </div>
        <div class="prodInfo row">
          <div class="col-md-6">
            <h4>PRODUCT 2</h4>
          </div>
          <div class="col-md-6">
            <h4>Rs.225</h4>
          </div>
        </div>
        <button  id="prod2">ADD TO CART</button>
      </div>
      <div class="col-md-1"></div>
      <div class="col-md-3 prodHeight">
        <div class="prodPicture">
          <img src="https://cdn2.iconfinder.com/data/icons/technology-flat-icons/300/flat-camera-512.png">
        </div>
        <div class="prodInfo row">
          <div class="col-md-6">
            <h4>PRODUCT 3</h4>
          </div>
          <div class="col-md-6">
            <h4>Rs.625</h4>
          </div>
        </div>
        <button id="prod3">ADD TO CART</button>
      </div>
    </div>
    <div class="row">
      <div class="col-md-3 prodHeight">
        <div class="prodPicture">
          <img src="https://cdn1.iconfinder.com/data/icons/technology-and-hardware-1/200/vector_264_03-01-512.png">
        </div>
        <div class="prodInfo row">
          <div class="col-md-6">
            <h4>PRODUCT 4</h4>
          </div>
          <div class="col-md-6">
            <h4>Rs.1025</h4>
          </div>
        </div>
        <button  id="prod4">ADD TO CART</button>
      </div>
      <div class="col-md-1"></div>
      <div class="col-md-3 prodHeight">
        <div class="prodPicture">
          <img src="http://i.imgrpost.com/imgr/2017/07/13/002-programming.png">
        </div>
        <div class="prodInfo row">
          <div class="col-md-6">
            <h4>PRODUCT 5</h4>
          </div>
          <div class="col-md-6">
            <h4>Rs.896</h4>
          </div>
        </div>
        <button  id="prod5">ADD TO CART</button>
      </div>
      <div class="col-md-1"></div>
      <div class="col-md-3 prodHeight">
        <div class="prodPicture">
          <img src="https://cdn0.iconfinder.com/data/icons/sports-and-fitness/512/shoes_running_sneakers_trainers_sport_footwear_fitness_run_marathon_sprint_athletic_healthy_exercise_shoe_workout_jogging_training_aerobic_fit_flat_design_icon-512.png">
        </div>
        <div class="prodInfo row">
          <div class="col-md-6">
            <h4>PRODUCT 6</h4>
          </div>
          <div class="col-md-6">
            <h4>Rs.303</h4>
          </div>
        </div>
        <button  id="prod6">ADD TO CART</button>
      </div>
    </div>
  </div>
  <div class="container">
    <h2 id="shopHead">Shopping Cart</h2>
    <table class="table table-bordered">
      <thead>
        <tr>
          <th>NAME</th>
          <th>QUANTITY</th>
          <th>PRICE</th>
        </tr>
      </thead>
      <tbody id="cartEntry">
      </tbody>
    </table>
    <h4>TOTAL CHECKOUT PRICE IS:&nbsp;&nbsp;Rs. <span id="totalPrice">0</span></h4>
  </div>
    *{
      font-family: 'Patrick Hand SC', cursive;
    }
    .header{
      padding: 20px;
    }
    .header > h1{
      display: inline;
        padding: 15px;
        font-size: 48px;
    }
    .header > img{
      width: 60px;
    }
    .prodHeight{
      height: 300px;
      margin: 10px;
      box-sizing: border-box;
      border: 1px solid;
    }
    div.prodPicture{
      height: 200px;
      text-align: center;
    }
    div.prodPicture > img{
      padding-top: 25px;
      width:150px;
    }
    div.prodInfo{
      height: 50px;
    }
    .decrease,.increase,.remove{
      cursor: pointer;
      font-size: 20px;
      border: 1px solid;
        padding: 4px;
        background-color: burlywood;
    }
    .container{
      text-align: center;
    }
    div.row > div.col-md-3,div.col-md-6{
      border: 1px solid;
    }
    div.row > div.col-md-6{
      border-left: 0;
      border-right: 0; 
    }
    #shopHead{
      border: 2px dotted black;
      font-size: 36px;
    }
    thead{
      font-size: 28px;
      text-align: center;
    }
var cart = [] ;
var products = [{name: "PRODUCT 1",price: 425},{name: "PRODUCT 2",price: 225},{name: "PRODUCT 3",price: 625},
{name: "PRODUCT 4", price:1025},{name: "PRODUCT 5",price: 896},{name: "PRODUCT 6",price: 303}];
function refreshProducts(){
  for (var i = 0; i < cart.length; i++) {
    $("#prod"+(cart[i].index+1)).prop('disabled',true);
    $("#prod"+(cart[i].index+1)).text('CHECK THE CART');
  }
}
function retrieve(){
  cart = JSON.parse(localStorage.getItem('cart')?localStorage.getItem('cart'):'[]');
}
function refreshCart(){
  $('#cartEntry').html('');
  var sum=0;
  for (var i=0;i<cart.length;i++) {
    sum+=cart[i].price;
    var remove = $('<span class="remove">x</span>')
    remove.attr("remove-id",i);
    remove.attr("product-id",cart[i].index);
    var decrease = $('<span class="decrease">-</span>')
    decrease.attr("decrease-id",i);
    decrease.attr("product-id",cart[i].index);
    var increase = $('<span class="increase">+</span>')
    increase.attr("increase-id",i);
    increase.attr("product-id",cart[i].index);
    var price = $('</td>'+'<td>'+cart[i].price+'</td>');
    var product = $('<td>'+cart[i].name+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>');
    product.append(remove);
    var quantity = $('<td>&nbsp;&nbsp;&nbsp;'+cart[i].qty+'&nbsp;&nbsp;&nbsp;</td>');
    quantity.prepend(decrease);
    quantity.append(increase);
    var row = $('<tr></tr>');
    row.append(product);
    row.append(quantity);
    row.append(price);
    $('#cartEntry').append(row);
  }
  $('#totalPrice').text(sum);
  $(".decrease").click(function(){
    var cartPos = $(this).attr('decrease-id');
    var productPos = $(this).attr('product-id');
    var presentQty=cart[cartPos].qty;
    var basePrice = products[productPos].price;
    if(presentQty!=1)
    {
      cart[cartPos].qty=cart[cartPos].qty-1;
      cart[cartPos].price=cart[cartPos].qty*basePrice;
    }
    saveCart();
    refreshCart();
  });
  $(".increase").click(function(){
    var cartPos = $(this).attr('increase-id');
    var productPos = $(this).attr('product-id');
    var presentQty=cart[cartPos].qty;
    var basePrice = products[productPos].price;
    if(presentQty < 5)
    {
      cart[cartPos].qty=cart[cartPos].qty+1;
      cart[cartPos].price=cart[cartPos].qty*basePrice;
    }
    saveCart();
    refreshCart();
  });
  $(".remove").click(function(){
    var id=$(this).attr('remove-id');
    var index =parseInt($(this).attr('product-id'));
    var enableProduct=index+1;
    $("#prod"+enableProduct).prop('disabled',false);
    $("#prod"+enableProduct).text('ADD TO CART');
    cart.splice(id,1);
    saveCart();
    refreshCart();
    refreshProducts()
  })
}
//saving the changes in the cart
function saveCart(){
   localStorage.setItem('cart', JSON.stringify(cart));
}
$(function(){
  retrieve();
  refreshProducts();
  refreshCart();
  $('button').click(function(){
    var id = $(this)[0].id;
    var index = id[id.length-1]-1;
    var details = products[index];
    cart.push({
      index: index,
      name: details.name,
      qty: 1,
      price: details.price
    });
    refreshCart();
    refreshProducts();
    saveCart();
  });
});
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.