Skocz do zawartości


Instrukcje krok po kroku dotyczące wprowadzania zmian we własnym sklepie internetowym w celu poprawy jego działania, dodawania nowych funkcji itp.
Zdjęcie
- - - - -

koszt wysyłki "do wyboru" zamiast konkretnej ceny


  • Proszę się zalogować aby odpowiedzieć
1 odpowiedzi na ten temat

#1 faro

faro

    Newbie

  • Members
  • Pip
  • 4 postów

Napisany 07 November 2017 - 07:35 AM

chciałbym by w sklepie internetowym w podsumowaniu zakupów (przy tabelach z cenami) przy dostawa brutto zawsze był napis „do wyboru” zamiast ceny a przy 2000+ zł jest ustawiona opcja wysyłki bezpłatnej. Próbuję modyfikować kod strony w plikach shopping-cart i shopping-cart-advanced gdzie właśnie wywoływana jest cena (by zastąpić ją tłumaczeniem) ale nie działa to tak jak powinno bowiem co dodanie produktu napis „do wyboru” znika i pojawia się cena. Czy jest to możliwe do zrobienia czy jest do tego potrzebny jakiś moduł? Jestem grafikiem i ciężko mi się programuje dlatego takie problemy.



#2 vekia

vekia

    Advanced Member

  • Members
  • PipPipPip
  • 221 postów

Napisany 07 November 2017 - 07:48 AM

W tym przypadku tj. gdy ustawiona jest darmowa dostawa od pewnej kwoty - zmiany musi być bardziej złożone.

 

Trzeba przywrócić plik do stanu przed zmianami, tj zmodyfikowany fragment:

<td colspan="2" class="price">{l s='Free shipping!'}</td>

zmianiamy na oryginał:

<td colspan="2" class="price" id="total_shipping">{l s='Free shipping!'}</td>

(pamiętamy o zmianie tekstu na własny - w tym przypadku "do wyboru")

następnie otwieramy plik: /themes/nazwa-szablonu/js/cart-summary.js . jest tam kod (standardowo linia ~975)

 if (json.total_shipping > 0)
 {
  if (priceDisplayMethod !== 0)
      $('#total_shipping').html(formatCurrency(json.total_shipping_tax_exc, currencyFormat, currencySign, currencyBlank));
  else
      $('#total_shipping').html(formatCurrency(json.total_shipping, currencyFormat, currencySign, currencyBlank));
 }
 else
 {
  if (json.carrier.id != null || json.free_ship)
  {
      $('#total_shipping').html(freeShippingTranslation);
      if (json.is_virtual_cart)
    $('.cart_total_delivery').hide();
  }
  if (!hasDeliveryAddress)
      $('.cart_total_delivery').hide();
 }

zmianiamy go na:

 if (json.total_shipping > 0)
 {
  if (priceDisplayMethod !== 0)
      $('#total_shipping').html(dowyborutranslation);
  else
      $('#total_shipping').html(dowyborutranslation);
 }
 else
 {
  if (json.carrier.id != null || json.free_ship)
  {
      $('#total_shipping').html(freeShippingTranslation);
      if (json.is_virtual_cart)
    $('.cart_total_delivery').hide();
  }
  if (!hasDeliveryAddress)
      $('.cart_total_delivery').hide();
 }

następnie otwieramy plik: themes/nazwa-szablonu/global.tpl 

i przed kończącym plik {/strip} dodajemy:

{addJsDefL name=dowyborutranslation}{l s='do wyboru'}{/addJsDefL}

sprawdziłem to - wszystko działa :)

 

 

 

po wprowadzeniu zmian może być konieczne:

- wyczyszczenie cache przeglądarki (przeglądarka możę pamiętać starą treść pliku js)

- rekompilacja szablonu - wyczyszczenie cache (preferences > performance w zapleczu)






1 użytkowników czyta ten temat

0 użytkowników, 1 gości, 0 anonimowych użytkowników