pi3lgrzym Posted March 1, 2020 Share Posted March 1, 2020 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 More sharing options...
PrestaServicePro Posted March 1, 2020 Share Posted March 1, 2020 Witam, jak się masz? Czy możesz wyjaśnić zadanie obrazami bardziej szczegółowymi? Link to comment Share on other sites More sharing options...
pi3lgrzym Posted March 1, 2020 Author Share Posted March 1, 2020 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. Link to comment Share on other sites More sharing options...
pi3lgrzym Posted March 1, 2020 Author Share Posted March 1, 2020 Czyli tak naprawdę ajaxem? przesłać 2 wymiary (wysokość, szerokość) i kwotę Link to comment Share on other sites More sharing options...
PrestaServicePro Posted March 1, 2020 Share Posted March 1, 2020 Zrozumiałem cię. Właściwie proces wydaje się prawidłowy, ale wydaje się, że JS aktualizuje niewłaściwą wartość. Czy możesz podać mi adres swojego sklepu i (jeśli wiesz, pokaż mi dokładnie JS, który oblicza ceny)? Link to comment Share on other sites More sharing options...
pi3lgrzym Posted March 1, 2020 Author Share Posted March 1, 2020 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 More sharing options...
pi3lgrzym Posted March 1, 2020 Author Share Posted March 1, 2020 chciałem ją podmienić żeby lądowała w koszyku Link to comment Share on other sites More sharing options...
pi3lgrzym Posted March 1, 2020 Author Share Posted March 1, 2020 aha zapomniałem napisać bo na razie to tylko próbny skrypt czy mi się to uda zrobić od tej strony to na stronie sklepu działa to zmieniając wartość "Szerokości użytkowej". Link to comment Share on other sites More sharing options...
PrestaServicePro Posted March 3, 2020 Share Posted March 3, 2020 Witam, przepraszam za spóźniony powrót. Sprawdzam to. Napiszę ci Myślę, że możesz podać mi referencje, jeśli zajdzie taka potrzeba. Link to comment Share on other sites More sharing options...
pi3lgrzym Posted March 3, 2020 Author Share Posted March 3, 2020 Dzięki, liczę na pomoc bo jestem w lesie a nie znalazłem takiej informacji na necie. To nie może być trudne z javascript przerzucić wartość do zmiennej $Product->Price... Link to comment Share on other sites More sharing options...
pi3lgrzym Posted March 6, 2020 Author Share Posted March 6, 2020 Witam. Może ktoś jednak może mi pomóc z aktualizacją zmiennej ceny za pomocą javascript?. Będę wdzięczny. Link to comment Share on other sites More sharing options...
atomek Posted March 6, 2020 Share Posted March 6, 2020 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 More sharing options...
pi3lgrzym Posted March 11, 2020 Author Share Posted March 11, 2020 Dzięki. To może da się tak zrobić że za każdym razem do koszyka dodawane jest jako inny produkt. Tak jak przy wyborze kombinacji. Produkt dodawany do koszyka będzie się różnił długością lub wysokością. Link to comment Share on other sites More sharing options...
pi3lgrzym Posted March 11, 2020 Author Share Posted March 11, 2020 Kurcze nie oto mi chodziło. $product->price = (float)Tools::getValue('new_price'); $product->update(); zmienia cenę produktu ale ogólnie, w bazie. A ja potrzebuje tylko zmienić cenę produktu dodawanego do koszyka Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now