Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


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 строк кода, но как они передают данные дальше не могу понять.
Link to comment
Share on other sites


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

Link to comment
Share on other sites


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

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

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

  • +1 1
Link to comment
Share on other sites

07.02.2023 в 16:35, buslikdrev сказал:

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

Навіщо тоді потрібен форум, якщо неможна такі питання ставити? 

 

  • +1 1
Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites


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 строк кода, но как они передают данные дальше не могу понять.

 

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.