Jump to content

Aktualizacja ceny


pi3lgrzym

Recommended Posts

Witam

Mam prośbę bo nigdzie nie mogę tego znaleźć.

Mam na poziomie tpl zmianę ceny. Na zasadzie, że można wpisać jaka długość produktu klient chce kupić. 

Tam jest przeliczana cena tylko w jaki sposób zaktualizować stronę produktu aby do koszyka trafiało ze zaktualizowaną ceną?

 

 

Link to comment
Share on other sites

Chodzi o to że klient na stronie wpisuje wysokość i szerokość firanki. 

W pliku tpl javascript wylicza cenę  w zależności od rozmiaru i wykończenia. 

I teraz chciałbym, żeby to wyliczenie ceny przypisać do kupowanego produktu.

firanka.jpg

Link to comment
Share on other sites

adres sklepu
 

Quote


{literal}
<script>
const selectElement = document.querySelector('.wysokosc');
var cena = product.querySelector('[itemprop=price]').getAttribute('content');

selectElement.addEventListener('change', (event) => {	
	
		var $max = parseInt($('#wysokosc').attr('max'));
		var $min = parseInt($('#wysokosc').attr('min'));
  
	  if (document.getElementById("wysokosc").value>$max){
		  selectElement.value = $max;
		  const result = document.querySelector('.errorMsg1');
		  result.style.display = 'block';
		  result.textContent = `Maksymalny wymiar to ` + $max + `cm`;
		  
	  }
	  else if (document.getElementById("wysokosc").value<$min) {
		  selectElement.value = $min;
		  const result = document.querySelector('.errorMsg1');
		  result.style.display = "block";
		  result.textContent = `Minimalny wymiar to ` + $min + `cm`;
	  }
	  else {
	  const result = document.querySelector('.errorMsg1');
	  result.style.display = 'none';
	  }
});


const selectElement2 = document.querySelector('.szerokosc');

selectElement2.addEventListener('change', (event) => {	
	
		var $max = parseInt($('#szerokosc').attr('max'));
		var $min = parseInt($('#szerokosc').attr('min'));
		var $wartosc = document.getElementById("szerokosc").value
  
	  if (document.getElementById("szerokosc").value>$max){
		  selectElement2.value = $max;
		  const result2 = document.querySelector('.errorMsg2');
		  result2.style.display = 'block';
		  result2.textContent = `Maksymalny wymiar to ` + $max + `cm`;
	  }
	  else if (document.getElementById("szerokosc").value<$min) {
		  selectElement2.value = $min;
		  const result2 = document.querySelector('.errorMsg2');
		  result2.style.display = "block";
		  result2.textContent = `Minimalny wymiar to ` + $min + `cm`;
	  }
	  else {
	  const result2 = document.querySelector('.errorMsg2');
	  result2.style.display = 'none';
	  const result3 = document.querySelector('.text');	  
	  var cenakoncowa = (cena/100)*$wartosc;
	  cenakoncowa = cenakoncowa.toFixed(2);
	  
	  result3.textContent = cenakoncowa.replace("\.",",") + ' zł';
	  product.querySelector('[itemprop=price]').setAttribute('content',cenakoncowa);
	  product.querySelector('[itemprop=price]').innerHTML = cenakoncowa.replace("\.",",") + ' zł';
	  }
});

</script>
{/literal}

tak naprawde to narazie tylko podmineniam na stronie wyświetlanie ceny a chciałem ją podmienić

Link to comment
Share on other sites


Zobacz na przykładowe skrypty, są tylko szkice i działać pewnie nie będą.

javascript/jquery

$(document).on('click', '#updateProductPrice', function(e) {
        
    $.ajax({
        type: 'post',
        url: 'update_price.php',
        
        data: {    
            id_product : $('#id_product').val(),
            new_price: $('#new_price').val(),
            ajax: true,
        },
            
        dataType: 'json',
        
        success: function(response) {
            // jakis kod
        },
                
        error: function(jqXHR, textStatus, errorThrown)    {
            // jakis kod
        }
    }); // ---- ajax
});

skrypt php

<?php


if ($id_product = (int)Tools::getValue('id_product')) {
    
    $product = new Product($id_product);
    
    if (Validate::isLoadedObject($product)) {
        $product->price = (float)Tools::getValue('new_price');
        $product->update();
    }
}


        
To co chcesz zrobić chyba nie jest najlepszym pomysłem.
Wszystko będzie ok do czasu jak klient będzie chciał kupić jeden raz ten produkt, np. o rozmiarach 200x200 za cenę 100zł.

Zastanów się co się stanie jak doda drugi raz do koszyka ten sam produkt o rozmiarach np. 200x400 za cenę 200zł, jaka będzie wartość koszyka?

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
×
×
  • Create New...