Jump to content

Dodatkowe Pole W Koszyku


maraguta

Recommended Posts

Cześć. Dodałem pole(w nowym wierszu) do tabeli w schopping-cart.tpl. Pole zlicza procent ze zmiennej total.
Problem polega na tym że po dodaniu kolejnego produktu do koszyka wartości liczbowe w innych polach(razem(brutto)  i razem) zmieniają się natomiast pole z wyliczaniem procentu zmienia się dopiero jak odświeżę stronę.  
 

 

Cześć. Dodałem pole(w nowym wierszu) do tabeli w schopping-cart.tpl. Pole zlicza procent ze zmiennej total.

Jak wrzucam do koszyka nowe produkty to wszystkie pola zmieniaja wartości jak trzeba,zliczają procent , ale jak dodaje ilosc sztuk jakiegoś produktu konkretnego(ikonką plusa/minusa) to pole wyliczajace 5% z "total" się nie zmienia chyba że odświeżę stronę.

Dodam Ze nie tworzyłem nowej zmiennej w schopping-cart.tpl lecz skopiowałem zmienną której dopisałem mnożenie przez 0.05.





Kod: [Zaznacz]

<td colspan="{$col_span_subtotal}" class="text-right">{if $display_tax_label}{l s='Total products (tax incl.)'}{else}{l s='Total products'}{/if}</td>
                     <td colspan="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF" class="price" id="total_product">{displayPrice price=$total_products_wt}</td>
                            
                            
        </tr>
dodałem to:
          
          <tr>
          <td colspan="{$col_span_subtotal}" class="text-right">{if $display_tax_label}{l s='Your donation'}{else}{l s='Your donation'}{/if}</td>
                     <td colspan="2" bordercolor="#FFFFFF" bgcolor="#FFFFFF" class="price" id="total_product">{displayPrice price=$total_products_wt*0.05}</td>
          </tr>


Nie mam pojęcia który fragment kodu w pliku cart-summary.js za to odpowiada i gdzie dopisać.
.cart_quantity_up?.... szukam w komentarzach pliku przy ajaxach...


jak zrobić żeby obsłużyło to moje dodatkowe pole?
Dziękuję za ewentualną podpowiedź.

Link to comment
Share on other sites

W funkcji updateCartSummary(json) dodaj:

$('#total_product').html(json.total_price_without_tax * 0.05);

Drobna uwaga: Dobrą praktyką jest nazywanie pól aktualizowanych przez AJAX, dodając prefiks ajax_, czyli w Twoim przypadku np. tak "ajax_total_product".

 

 

Pozdrawiam

Link to comment
Share on other sites

Witam, mam podobny problem więc piszę tutaj.

Chciałem pod normalną ceną brutto pokazać (cenę + dostawa) np 20zł w product.tpl dopisałem wiersz

 

{convertPrice price=($productPrice+20)|floatval}

 

jak produkt kosztuje np 100 zł to pokazuje poniżej poprawnie cenę, a pod spodem cenę z dostawą 120,

ale jak zmienię atrybut tego produktu to nie odświeża mi tej ceny z dostawą i gdy produkt kosztuje drożej np 150zł to nadal pokazuje cenę z dostawą 120 a nie 170

 

Jak zrobić aby za każdą zmianą atrybutu odświeżało mi to pole?

Link to comment
Share on other sites

W funkcji updateCartSummary(json) dodaj:

$('#total_product').html(json.total_price_without_tax * 0.05);

Drobna uwaga: Dobrą praktyką jest nazywanie pól aktualizowanych przez AJAX, dodając prefiks ajax_, czyli w Twoim przypadku np. tak "ajax_total_product".

 

 

Pozdrawiam

Mam!  Wielkie dzięki REGE :)

dodałem do instrukcji warunkowej w if i  else tam gdzie w funkcji zaczyna się // Cart summary  

 

a masz może pomysł na to (dodałem pole i nie odbieram go w panelu admina )

 

Pozdrawiam

Edited by maraguta (see edit history)
Link to comment
Share on other sites

W funkcji updateCartSummary(json) dodaj:

$('#total_product').html(json.total_price_without_tax * 0.05);

Drobna uwaga: Dobrą praktyką jest nazywanie pól aktualizowanych przez AJAX, dodając prefiks ajax_, czyli w Twoim przypadku np. tak "ajax_total_product".

 

 

Pozdrawiam

Działa zlicza ,ale nie wiem czy w odpowiednie miejsce wstawiłem ten fragment kodu, albo powinienem jakoś inaczej to zrobić.

Chodzi  to że przeładowuje stronę za każdym zwiększeniem/zmniejszeniem ilości produktu w koszyku. Poprzednio nie zliczało mi tego pola, ale ceny zmieniały sie w pozostałych polach bez przeładowywania strony. Jak temu zaradzić?

if (priceDisplayMethod !== 0)
		$('#total_product').html(formatCurrency(json.total_products, currencyFormat, currencySign, currencyBlank));
	$('#total_product').html(json.total_price_without_tax * 0.1);
	else.... 

chyb że powinienem tak zrobić:

$('#total_product').html(formatCurrency(json.total_products, currencyFormat, currencySign, currencyBlank, json.total_price_without_tax * 0.1));
else...
Edited by maraguta (see edit history)
Link to comment
Share on other sites

..dalej muli. Jak zrobić żeby zliczało bez automatycznego odświeżania strony po zwiększeniu/zmniejszeniu ilości produktu? wróciłem do:

if (priceDisplayMethod !== 0)
		$('#total_product').html(formatCurrency(json.total_products, currencyFormat, currencySign, currencyBlank));
	$('#total_product').html(json.total_price_without_tax * 0.1);
	else.... 
Link to comment
Share on other sites

Adam40, znajdź plik /themes/nazwa_szablonu/js/product.js, odszukaj function updatePrice() a następnie fragment kodu:
	$('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay * currencyRate, currencyFormat, currencySign, currencyBlank)).trigger('change');

i poniżej dodaj kod odświeżający Twoją cenę:

	$('#id_twojej_ceny').text(formatCurrency(priceWithDiscountsDisplay * currencyRate + 20, currencyFormat, currencySign, currencyBlank)).trigger('change');
  • Like 1
Link to comment
Share on other sites

maraguta,problem polega na tym, że w PrestaShop masz już zdefiniowany element o id total_product, a atrybut id musi być niepowtarzalny w obrębie strony! Tak więc spróbuj zmienić id swojego elementu (zarówno w HTML jak i w JS).

zmieniłem id i co najważniejsze dodałem formatCurrency, currencyFormat, currencySign, currencyBlank. Teraz działa :) bez odświeżania całej strony.  

Dzięki

 

Pozdrawiam


Edited by maraguta (see edit history)
Link to comment
Share on other sites

 

Adam40, znajdź plik /themes/nazwa_szablonu/js/product.js, odszukaj function updatePrice() a następnie fragment kodu:
	$('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay * currencyRate, currencyFormat, currencySign, currencyBlank)).trigger('change');

i poniżej dodaj kod odświeżający Twoją cenę:

	$('#id_twojej_ceny').text(formatCurrency(priceWithDiscountsDisplay * currencyRate + 20, currencyFormat, currencySign, currencyBlank)).trigger('change');

REGE kod działa przy zmianie atrybutów i też nie odświeża całej strony. Dzięki! :)

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...