копался в инете, нашел как сделать скидку в зависимости от стоимости заказа! количество скидок не ограничено.
Первоисточник, спасибо ему, больше не нашел нигде:
http://team.in.ua/joomla/joomla-25-virtuemart-2-kak-sdelat-skidku-delaem-skidki Версия Joomla 2.5.9, VirtueMart 2.0.2B, тема шаблона beez_20, все довольно стандартно. Думаю, что для любой Joomla версии выше 2.5 и VirtueMart 2.0.0 данные рекомендации будут справедливы.
Зайдите в директорию components\com_virtuemart\views\cart\tmpl\ и откройте файл default_price.php. Найдите такую строку:
<?php echo $this->currencyDisplay->createPriceDiv ('salesPriceShipment', '', $this->cart->pricesUnformatted['salesPriceShipment'], FALSE); ?>
И замените ее на следующую:
<?php echo $this->currencyDisplay->createPriceDiv ('salesPriceShipment', '', $shipment=$this->cart->pricesUnformatted['salesPriceShipment'], FALSE); ?>
Так мы задаем переменную для стоимости доставки.
После тегов
<tr class="sectiontableentry1">
…
</tr>
необходимо вставить такой код:
<td colspan="1">Скидка</td>
<td colspan="<?php echo $colspan+3; ?>">
<?php
$total_price = $this->cart->pricesUnformatted['billTotal'];
if($total_price-$shipment > 1000.00 && $total_price-$shipment <= 1999.99){
echo "<br />"."Скидка 2% на сумму до 2000 руб.";
$discount_total=0.02*($total_price-$shipment);
}
$total_price = $this->cart->pricesUnformatted['billTotal'];
if($total_price-$shipment > 2000.00 && $total_price-$shipment <= 2999.99){
echo "<br />"."Скидка 4% на сумму заказа до 3000 руб.";
$discount_total=0.04*($total_price-$shipment);
}
$total_price = $this->cart->pricesUnformatted['billTotal'];
if($total_price-$shipment > 3000.00 && $total_price-$shipment <= 3999.99){
echo "<br />"."Скидка 8% на сумму заказа до 4000 руб.";
$discount_total=0.08*($total_price-$shipment);
}
$total_price = $this->cart->pricesUnformatted['billTotal'];
if($total_price-$shipment > 4000.00 && $total_price-$shipment <= 4999.99){
echo "<br />"."Скидка 10% на сумму заказа до 5000 руб.";
$discount_total=0.1*($total_price-$shipment);
}
$total_price = $this->cart->pricesUnformatted['billTotal'];
if($total_price-$shipment > 5000.00 && $total_price-$shipment <= 9999.99){
echo "<br />"."Скидка 15% на сумму заказа до 10000 руб.";
$discount_total=0.15*($total_price-$shipment);
}
if($total_price-$shipment > 10000.00 && $total_price-$shipment <= 14999.99){
echo "<br />"."Скидка 20% на сумму заказа до 15000 руб.";
$discount_total=0.20*($total_price-$shipment);
}
if($total_price-$shipment > 15000.00){
echo "<br />"."Скидка 25% на сумму заказа свыше 15000 руб.";
$discount_total=0.25*($total_price-$shipment);
}
session_start();
?>
</td>
</tr>
// в строке 5 мы присваиваем новой переменной значение стоимости всех товаров.
// в 6 строке из этой стоимости вычитается стоимость доставки и сравнивается с заданным условием. При выполнении условия, выводится сообщение о скидке и считается скидка. Далее все повторяется для других условий.
Далее находим такую строчку:
<?php echo $this->currencyDisplay->createPriceDiv ('billTotal', '', $this->cart->pricesUnformatted['billTotal'], FALSE); ?>
и заменяем ее следующей:
<?php echo $this->currencyDisplay->createPriceDiv ('billTotal', '', $total_price-$discount_total, FALSE); ?>
И и где-нибудь в конце добавьте
<?php session_start();
$_SESSION['total'] = $total_price-$discount_total; ?>
Сохраните файл.
3. В директории administrator\components\com_virtuemart\models найдите файл orders.php.
Примерно на 550 строке будет такая запись:
$_orderData->order_total = $_prices['BillTotal'];
Замените ее на:
$_orderData->order_total = $_SESSION['total'];
Так передадим переменную, созданную в предыдущем файле.
п.с.
суммы скидок заканчиваются на 99 копеек не зря, если написать окончательную сумму такой же с которой будет начинаться следующая скидка, считать будет Неправильно скидку( баг или нет, заказывал я товар на 2080 рублей он считал скидку 2%, чуть больше делал заказ - делал уже 4%)
1. что дописать, чтоб отображалось в корзине, например, если человек сделал заказ и скидка у него вышла 10%, а до 15% ему не хватает купить товар на 500р, выводилось сообщение: Ваша скидка составила 10%, вам можно купить товаров на 500р, чтобы получить скидку 15%.
вот тема под первый март аналогичная:
http://joomlaforum.ru/index.php/topic,107902.msg595717.html, там все было хорошо....
2. в корзине отображается только конечная сумма за вычетом скидки, поле "итого" (сумма без скидки) пусто...
3. после того как нажимаем подтвердить сообщается что заказа подтвержден, но сумма в сообщении пишется 0.00
4. на почту к админу и покупателю приходит письмо где сумма указана "итого" (сумма без скидки), скидка не указана.
спасибо.