Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Счетчик количества товаров


Recommended Posts

Добрый день. OcStore 3. Хочу сделать возможность добавление/уменьшение количества товаров после добавления в корзину. Магазин делаю в большей мере для себя для знакомства с OpenCart да и вообще с программированием) Умею верстать, знаю основы js, php. Поэтому в большей мере хочу сделать все сам, без готовых модулей, там где это будет оправдано.
 
В шапке есть корзина, после покупки товара, открывается корзина с возможностью изменить количество единиц.
 
Код счетчика:
 
cart.twig
<div class="product-card-modal__counter counter" data-counter>
  <button class="counter__control" data-action="minus">
    <svg class="counter__icon">
      <use xlink:href="catalog/view/theme/pinkashop/assets/img/icons/icons.svg#minus"></use>
    </svg>
  </button>
  <div class="counter__input">
    <input type="text" name="quantity" value="{{ product.quantity }}" data-input-quantity class="counter__input__quantity" placeholder="{{ product.quantity }}">
  </div>
  <button class="counter__control" data-action="plus">
    <svg class="counter__icon">
      <use xlink:href="catalog/view/theme/pinkashop/assets/img/icons/icons.svg#plus"></use>
    </svg>
  </button>
</div>
 
common.js
  $(document).on('click', '[data-counter] [data-action]', function (e) {
    const btn = $(this);
    const input = btn.closest('[data-counter]').find('input');
    const minValue = 1;


    if (btn.attr('data-action') == 'plus') {
      input.val(parseInt(input.val()) + 1);
    } else if (btn.attr('data-action') == 'minus') {
      if (parseInt(input.val()) > minValue) {
        input.val(parseInt(input.val()) - 1);
      } else {
        return null;
      }
    }
});
 
 
Подскажите как передать количество дальше в общую корзину? Как сохранить изменённое количество после обновления страницы?
 
Скачивал модули, которые делают похожие вещи, но там 20-40 строк кода, но как они передают данные дальше не могу понять.
Надіслати
Поділитися на інших сайтах


Добрый день. Передавать данные нужно с помощью ajax. У меня есть модуль на эту тему, но все ещё проходит модерацию )

Надіслати
Поділитися на інших сайтах


07.02.2023 в 16:08, KylunSergOC сказал:

хочу сделать все сам, без готовых модулей, там где это будет оправдано.

А почему вопросы задаёте на форуме?

  • +1 1
Надіслати
Поділитися на інших сайтах

07.02.2023 в 15:08, KylunSergOC сказал:
 
Подскажите как передать количество дальше в общую корзину?

Я не программист, поэтому не уверен. Спробуйте подивитися system/library/cart.php

Но это не точно)))

Надіслати
Поділитися на інших сайтах


 

Надіслати
Поділитися на інших сайтах


07.02.2023 в 15:08, KylunSergOC сказал:
Добрый день. OcStore 3. Хочу сделать возможность добавление/уменьшение количества товаров после добавления в корзину. Магазин делаю в большей мере для себя для знакомства с OpenCart да и вообще с программированием) Умею верстать, знаю основы js, php. Поэтому в большей мере хочу сделать все сам, без готовых модулей, там где это будет оправдано.
 
В шапке есть корзина, после покупки товара, открывается корзина с возможностью изменить количество единиц.
 
Код счетчика:
 
cart.twig
<div class="product-card-modal__counter counter" data-counter>
  <button class="counter__control" data-action="minus">
    <svg class="counter__icon">
      <use xlink:href="catalog/view/theme/pinkashop/assets/img/icons/icons.svg#minus"></use>
    </svg>
  </button>
  <div class="counter__input">
    <input type="text" name="quantity" value="{{ product.quantity }}" data-input-quantity class="counter__input__quantity" placeholder="{{ product.quantity }}">
  </div>
  <button class="counter__control" data-action="plus">
    <svg class="counter__icon">
      <use xlink:href="catalog/view/theme/pinkashop/assets/img/icons/icons.svg#plus"></use>
    </svg>
  </button>
</div>
 
common.js
  $(document).on('click', '[data-counter] [data-action]', function (e) {
    const btn = $(this);
    const input = btn.closest('[data-counter]').find('input');
    const minValue = 1;


    if (btn.attr('data-action') == 'plus') {
      input.val(parseInt(input.val()) + 1);
    } else if (btn.attr('data-action') == 'minus') {
      if (parseInt(input.val()) > minValue) {
        input.val(parseInt(input.val()) - 1);
      } else {
        return null;
      }
    }
});
 
 
Подскажите как передать количество дальше в общую корзину? Как сохранить изменённое количество после обновления страницы?
 
Скачивал модули, которые делают похожие вещи, но там 20-40 строк кода, но как они передают данные дальше не могу понять.

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.