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

Как передать цену с карточки товара при добавлении в корзину


rusonsaint

Recommended Posts

Здравствуйте, в opencart как и php с js не силён то с толкнулся с проблемой. Вот пример сайт где есть калькулятор  подсчета кв метра ламината . Я пытаюсь по аналогии сделать у себя такой же. Js скопировал ( числа считает ) HTML скопировал (где нужно что-бы динамически выводились данные с карточки товара  вставил ). Но вот когда добавляю товар в корзину  то добавляет сумму изначальную которая в карточке товара прописана за шт, а мне нужно сумму новую, которая через js посчитала мне итог.

Может кто подкинет какие идеи или поможет с данной проблемой, буду благодарен. 
 

Twig  код          

   <div class="view__info container__col js-price"

              data-price="{% if price1 %}{% if not special1 %}{{ price1 }} {% else %}{{ special1 }}{% endif %}{% endif %}"
              data-currency=" ₽" data-per-box="{{ upc }}">
              <div class="view__price">
                <span class="product__price-old">2196 ₽</span>
                <b class="view__price-val">1572 ₽</b> / м<sup>2</sup>
              </div>



              <div class="view__info-item">
                <i class="view__info-check icon-check"></i>
                В наличии
              </div>



              <div class="view__info-item">В одной упаковке: {{ upc }} {{ sku }} </div>
              <div class="view__info-item">Артикул: A008629</div>
              <form action="#" class="view__shop shop js-shop form">

                <div class="shop__count shop__col">
                  <div class="shop__label">Кол-во упаковок</div>
                  <div class="jq-number styler jq-number_wide jq-number_48 js-price__count" id="input-quantity-styler">
                    <div class="jq-number__field">
                      <input name="quantity" value="{{ minimum }}" size="2" id="input-quantity" type="number"
                        class="styler jq-number_wide jq-number_48 js-price__count" min="1">
                    </div>

                  </div>
                  <input type="hidden" name="product_id" value="{{ product_id }}" />

                </div>

                <label class="shop__square shop__col">
                  <span class="shop__label">в упаковке</span>
                  <input type="text" disabled="disabled" value="{{ upc }}"
                    class="form__field form__field_48 shop__square-field js-price__square">
                  <span class="shop__ed">{{ sku }} </span>

                </label>

              

                <div class="shop__cost shop__col">
                  <div class="shop__label">Общая стоимость</div>
                  <b class="view__price-val">

                    <span class="js-price__summary">{% if price1 %} {% if not special1 %}{{ price1 * upc }}

                      {% else %}{{ special1 * upc }}{% endif %}{% endif %} ₽</span>

                  </b>

                  <!--за упаковку-->

                </div>

                <div class="shop__buy shop__col">

                  <button type="button" id="button-cart" data-loading-text="{{ text_loading }}"

                    class="btn btn-primary btn-lg btn-block">{{ button_cart }}</button>

                </div>



              </form>



            </div>


JS code 


 

      


		$('.js-price__count, .js-price__square').on('change keyup', function () {
			var block = $('.js-price');
			var data = {
				price: Number(block.data('price')),
				perBox: Number(block.data('per-box')),
				currency: block.data('currency'),
			};
			var input = {
				count: Number(block.find('input.js-price__count').val()),
				square: Number(block.find('input.js-price__square').val()),
			};
			var count = block.find('.js-price__count');
			var square = block.find('input.js-price__square');
			var summary = block.find('.js-price__summary');
	
			if(input.count < 1) {
				return ;
			}
	
			summary.text(Math.floor(data.price * input.square) + data.currency);


			
			if($(this).hasClass('js-price__count')) {
				square.val((data.perBox * input.count).toFixed(2));
			}
			if($(this).hasClass('js-price__square')) {
				count.val(Math.ceil(input.square / data.perBox));
			}
		});

 

Змінено користувачем rusonsaint
Исправил код
Надіслати
Поділитися на інших сайтах


Вам нужно чтобы JS оперировал реальными опциями и их же и возвращал в результате подсчета.

Ищите модуль дробных опций или количества или что-то в этом духе.

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

  • 2 months later...

Вам нужно результат от скрипта возвращать не только в карточку товара а полностью в расчет заказов, потом обновлять данные в карточке товара. Просто так скопировал калькулятор и приплюсовал в карточке товара цену не выйдет. И здесь править не две строчки кода. Наймите программиста

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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