wdrożenia PrestaShop Powiększenie zdjęć moduł wdrożenia PrestaShop

Dynamiczna zmiana ceny po wpisaniu ilości na karcie produktu

  • 2 Odpowiedzi
  • 802 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline adrian99

  • Nowy
  • *
  • 2
  • 0
  • prestashop
  • Presta Shop: 1.6.1
  • Status: Programista
Dynamiczna zmiana ceny po wpisaniu ilości na karcie produktu
« dnia: Wrzesień 01, 2016, 11:53:47 am »
W tej chwili system przelicza w czasie rzeczywistym (dynamicznie) jeśli produkt na kombinacje i ładnie wyświetla dynamicznie cenę. Czy jest możliwość, aby po wpisaniu ilości np. 2 system podawał całkowitą cenę czyli jeśli wraz z kombinacjami było to 100 zł musiałby pomnożyć razy 2 szt i pokazałby 200 zł klientowi dynamicznie na karcie produktu. Brakuje takiego rozwiązania w Preście ponieważ cenę wraz z ilością podliczy dopiero po dodaniu do koszyka.

*

Offline west

  • Administrator
  • Mieszkaniec
  • *****
  • 4,643
  • 99
  • Płeć: Mężczyzna
  • Europasaz.pl
    • Projektowanie PrestaShop, Wordpress, SMF
  • Presta Shop: PS
  • Status: Programista
Odp: Dynamiczna zmiana ceny po wpisaniu ilości na karcie produktu
« Odpowiedź #1 dnia: Wrzesień 01, 2016, 12:34:29 pm »
musisz zmodyfikować plik product.js wszystkie dane do obliczeń tam już są. Funkcje możesz również podejrzeć i skopiować
MODUŁY | http://europasaz.pl |  SKLEPY INTERNETOWE | WSPARCIE TECHNICZNE | HOSTING | http://zielona.biz 

*

Offline adrian99

  • Nowy
  • *
  • 2
  • 0
  • prestashop
  • Presta Shop: 1.6.1
  • Status: Programista
Odp: Dynamiczna zmiana ceny po wpisaniu ilości na karcie produktu
« Odpowiedź #2 dnia: Wrzesień 01, 2016, 03:49:27 pm »
Oto rozwiązanie problemu:

Edytuj plik themes/default-bootstrap/js/product.js

1. Dodaj opcjonalnie po linijce 108

}
combinations = combinationsJS;
}

ten kod:

[code]$(document).ready(function(){
$("#quantity_wanted").change(function(){
    updateDisplay();
});
});

Odszukaj linijkę:

$('#our_price_display').text(formatCurrency(priceWithDiscountsDisplay, currencyFormat, currencySign, currencyBlank)).trigger('change');




i zamień ją na:

TotalpriceWithDiscountsDisplay = priceWithDiscountsDisplay * $("#quantity_wanted").val();
    $('#our_price_display').text(formatCurrency(TotalpriceWithDiscountsDisplay, currencyFormat, currencySign, currencyBlank)).trigger('change');


Teraz dokonaj edycji pliku themes/default-bootstrap/product.tpl

odszukaj:

{if !$PS_CATALOG_MODE}
<p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
<input type="text" name="qty" id="quantity_wanted" class="text form-control" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" />
<a href="#" data-field-qty="qty" class="btn btn-outline status-enable button-minus btn-sm product_quantity_down">
<span><i class="fa fa-minus"></i></span>
</a>
<a href="#" data-field-qty="qty" class="btn btn-outline status-enable button-plus btn-sm product_quantity_up ">
<span><i class="fa fa-plus"></i></span>
</a>
<span class="clearfix"></span>
</p>
{/if}
i zmień kod według uznania.
{if !$PS_CATALOG_MODE}
<p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
<label>Ilość</label>
<input type="number" min="1" step="1" name="qty" id="quantity_wanted" class="text" style="width: 100%;" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" />

<span class="clearfix"></span>
</p>
{/if}
Niestety przyciski plus minus mogą nie działać dlatego trzeba zamienić pole input TEXT na input NUMBER gdzie "min=1" to możliwa minimalna wartość, a "step=1" to co wartość co ile ma przeskakiwać liczba po kliknięciu w strzałkę góra/dół. Być może komuś się keidyś przyda

Zmiana cen względem ilości prestashop | zmiana ceny w czasie rzeczywistym po wpisaniu ilości na karcie produktu
« Ostatnia zmiana: Wrzesień 03, 2016, 12:44:43 pm wysłana przez west »