Ei kuvausta
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

addtocart.js 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. const CART_DATA = 'CART_DATA';
  2. let cartLength = 0;
  3. const CART_ADD = 'CART_ADD';
  4. function getCartData(){
  5. const data = localStorage.getItem(CART_DATA);
  6. if(data) return JSON.parse(data);
  7. return null;
  8. }
  9. function removeCartData(){
  10. localStorage.removeItem(CART_DATA);
  11. }
  12. function setCartData(data){
  13. localStorage.setItem(CART_DATA,JSON.stringify(data));
  14. }
  15. function setLengthCart(){
  16. const data = getCartData();
  17. if(!data) return;
  18. let length = 0;
  19. for(let item in data){
  20. let curr = data[item];
  21. length += parseInt(curr.quantity);
  22. }
  23. if(length>0){
  24. $('.cartnumcount').removeClass('d-none').html(length);
  25. }else{
  26. $('.cartnumcount').addClass('d-none').html(0);
  27. }
  28. }
  29. function getQuantityById(id){
  30. const data = getCartData();
  31. if(!data) return;
  32. for(let item in data){
  33. if(id == item){
  34. $('#quantity').val(products[item].quantity);
  35. }
  36. }
  37. }
  38. function updateCartQuantity(id,val){
  39. const data = getCartData();
  40. if(!data) return;
  41. data[id].quantity = val;
  42. setCartData(data);
  43. updateSummaryPriceAdd();
  44. }
  45. function removeCartItem(id){
  46. let data = getCartData();
  47. if(!data) return;
  48. let newdata = {};
  49. for(let item in data){
  50. if(item != id){
  51. newdata[item] = data[item];
  52. }
  53. }
  54. setCartData(newdata);
  55. updateSummaryPriceAdd();
  56. return Object.keys(newdata).length;
  57. }
  58. function updateSummaryPriceAdd(){
  59. let data = getCartData();
  60. let totalSummaryPrice = $('.totalSummaryPrice');
  61. let totalPrice = $('.totalPrice');
  62. let currecy = $('.currecy');
  63. let noofitems = $('.noofitems');
  64. if(!data) return;
  65. let len = 0;
  66. let totalAmt = 0;
  67. for(let item in data) {
  68. let {price,quantity} = data[item];
  69. totalAmt += parseInt(price*quantity);
  70. len += parseInt(quantity);
  71. }
  72. const [currencySymbol,amount] = getCurrencySymbol(totalAmt);
  73. noofitems.html(len);
  74. totalSummaryPrice.html(amount);
  75. totalPrice.html(amount);
  76. currecy.html(currencySymbol);
  77. }
  78. function initAddToCart(){
  79. addEventListeners();
  80. function addToCartFun(){
  81. const data = getCartData();
  82. let id = window.location.search.split('=')[1];
  83. const qty = parseInt($('#addtocart').data('qty'));
  84. if(!data){
  85. let cartObj = {};
  86. cartObj[$('#skudetailitem').val()] = {
  87. name:$('.productname').html(),
  88. price:$('.price').data('price'),
  89. quantity:$('#quantity').val(),
  90. img:$('.productDetailsMain img').attr('src'),
  91. sku:$('#skudetailitem').val(),
  92. totalQty:qty,
  93. productid:$('#productidtag').val(),
  94. itemid:$('#itemidtag').val()
  95. }
  96. addtoCart(cartObj);
  97. //$('.cartnumcount').removeClass('d-none').html(1);
  98. setLengthCart();
  99. }else{
  100. //if(!data[id]) data['length']++;
  101. let name = $('.productname').html();
  102. let price = $('.price').data('price');
  103. let quantity = $('#quantity').val();
  104. let img = $('.productDetailsMain img').attr('src');
  105. let sku = $('#skudetailitem').val();
  106. if(data[$('#skudetailitem').val()]){
  107. data[$('#skudetailitem').val()] = {
  108. name:name,
  109. price:price,
  110. quantity: parseInt(data[sku].quantity)+parseInt(quantity),
  111. img:img,
  112. sku:sku,
  113. totalQty:qty,
  114. productid:$('#productidtag').val(),
  115. itemid:$('#itemidtag').val()
  116. }
  117. addtoCart(data);
  118. }else{
  119. data[$('#skudetailitem').val()] = {
  120. name:name,
  121. price:price,
  122. quantity:parseInt(quantity),
  123. img:img,
  124. sku:sku,
  125. totalQty:qty,
  126. productid:$('#productidtag').val(),
  127. itemid:$('#itemidtag').val()
  128. }
  129. addtoCart(data);
  130. }
  131. }
  132. setLengthCart();
  133. }
  134. function addEventListeners(){
  135. $('#addtocart').html('Add to cart');
  136. $('#addtocart').removeAttr('gotocart');
  137. $('#addtocart').off('click').click((e)=>{
  138. debugger
  139. $('.insufficientqty').addClass('d-none');
  140. const qty = parseInt($('#addtocart').data('qty'));
  141. if(parseInt($('#quantity').val())>qty){
  142. $('.insufficientqty').removeClass('d-none');
  143. return;
  144. }
  145. $('#addtocart').off().click(function (el){
  146. window.location.href = '/shopping-cart.html';
  147. });
  148. addToCartFun();
  149. toasterHelper('success',"Item added to cart","toast-top-right");
  150. $('#addtocart').html('Go to cart');
  151. $('#addtocart').attr('gotocart',1);
  152. });
  153. // $('.quantityHTML #quantity').off('change').change(function (e){
  154. // let sku = $('#skudetailitem').val();
  155. // let data = getCartData();
  156. // const qty = parseInt($('#addtocart').data('qty'));
  157. // let isCart = $('#addtocart').attr('gotocart');
  158. // if(!isCart) return;
  159. // if(parseInt($('#quantity').val())>qty){
  160. // $('.insufficientqty').removeClass('d-none');
  161. // return;
  162. // }
  163. // if(!data[sku]){
  164. // return;
  165. // }
  166. // data[sku].quantity = $('.quantityHTML #quantity').val();
  167. // toasterHelper("success","Your item quantity was been updated","toast-top-right")
  168. // setCartData(data);
  169. // setLengthCart();
  170. // })
  171. $('.buynow').off('click').click(async (e)=>{
  172. addToCartFun();
  173. const res = await COOKIE_HELPER.validateToken();
  174. if(!res.response){
  175. localStorage.setItem(CART_ADD,true);
  176. window.location.href = '/login.html';
  177. $('.checkoutbtn').find('span').removeClass('d-none');
  178. $('.checkoutbtn').find('div').addClass('d-none');
  179. return;
  180. }
  181. window.location.href = '/selectdelivery.html';
  182. });
  183. }
  184. function addtoCart(data){
  185. const currData = getCartData();
  186. let newData = {...currData,...data};
  187. setCartData(newData);
  188. }
  189. }
  190. initAddToCart();