PDA

Zobacz pełną wersję : VM 1.x - ile pozostało do darmowej wysyłki



Jdwind
05-03-2012, 15:27
Dla osób, które jeszcze używają VirtueMart w wersji 1.1.9 (z zainstalowanym modułem koszyka VirtueMart Shopping Cart) - na zapleczu w menu Sklep > Dane Sklepu ustawiamy wartość "Bezpłatna wysyłka przy zakupie powyżej:" np. na 100zł (brutto).

W pliku \administrator\components\com_virtuemart\html\shop .basket_short.php ok. linii 159 po:

$tpl->set('total_price', @$total_price);
wstawiamy

$tpl->set('total', @$total);
i zapisujemy plik.
Następnie w pliku \components\com_virtuemart\themes\default\template s\common\minicart.tpl.php po linii nr 40 (po kodzie
<div style="float: right;">
<?php echo $total_price ?>
</div>) wklejamy to:


<br style="clear:both" /><br />
<?php
if (($total > 0) && ($total < 100)){
echo '<div>';
echo $VM_LANG->_('PHPSHOP_JESZCZE');
echo 100 - $total;
echo ' pln</div>';
}
elseif ($total > 100){
echo '<div>';
echo $VM_LANG->_('PHPSHOP_FRICO');
echo '</div>';
}
?>

Pozostaje jeszcze w plikach językowych (ja wstawiłem w \administrator\components\com_virtuemart\languages \common\polish.php i english.php) skopiować to:
'PHPSHOP_JESZCZE' => 'Do darmowej wysyłki pozostało jeszcze: ',
'PHPSHOP_FRICO' => 'Gratulacje, wysyłka towaru <b>GRATIS!</b>'

Oczywiście tłumaczenie można wstawić wg własnego uznania. Można też w zależności od potrzeb ustawić klasę dla div'ów w minicart.tpl.php i zdefiniować obrazki w CSS.
Tym samym zaoszczędzamy ok. 7 EUR za podobny dodatek dostępny na stronie http://modules.idealconception.com/ :).

Bazyl
05-03-2012, 15:30
Ha, właśnie miałem szukać czegoś takiego... :)
Tak na szybko: będę mógł nadal wybierać między paczkomatem, a kurierem?

Jdwind
05-03-2012, 15:42
Cześć Bazyl, to już chyba nie zależy od tego, co napisałem. Nie wiem, czy przy darmowej wysyłce jest w ogóle możliwość wyboru, ale zawsze możesz podać klientowi informację, żeby w informacjach dodatkowych napisał, czym chce mieć przesłane. A poza tym, nie za dużo byś chciał "szczęścia" dać klientom? Nie dość, że wysyłka za darmo, to jeszcze taksówkę do wyboru zaproponuj ;-) (taki żarcik oczywiście).

EDIT:
Mała poprawka, w celu ułatwienia:
wartości wcześniej przeze mnie wpisane jako 100 zamieniamy na $vendor_freeshipping, czyli otrzymujemy:

<?php
if (($total > 0) && ($total < $vendor_freeshipping)){
echo '<div>';
echo $VM_LANG->_('PHPSHOP_JESZCZE');
echo $vendor_freeshipping - $total;
echo ' pln</div>';
}
elseif ($total > $vendor_freeshipping){
echo '<div>';
echo $VM_LANG->_('PHPSHOP_FRICO');
echo '</div>';
}
?>
W efekcie nie musimy później, w przypadku zmiany wartości, od której ma być liczona darmowa wysyłka (w moim przypadku 100zł), ręcznie zmieniać tej wartości. Zostanie ona podebrana właśnie przez zmienną $vendor_freeshipping.

dmuchowski
14-03-2012, 08:40
pomysł super, jednak chciałbym nieco zmienić... jak zrobić dla przypadku:

przesyłki do 200 pln Przesyłka listowa z zadeklarowaną wartością priorytetowa - 15 pln

powyżej 200 pln – kurier 20 pln

oczywiście VM 1.1.9