Подскажите, как реализовать такую штуку чтобы клиент мог оплатить не более половины суммы заказа бонусами. Спасибо заранее
Пока нашёл вот такое решение, которое работает только для одного товара. К сожалению когда в корзине 2 товара - подсчёт становится неверный: catalog\controller\checkout\cart.php Код: if ($this->cart->hasProducts() || !empty($this->session->data['vouchers'])) { $points = $this->customer->getRewardPoints(); $points_total = 0.5; foreach ($this->cart->getProducts() as $product) { if ($product['points']) { $points_total *= $product['points']; } } --- Добавлено, 4 авг 2014 --- В том же файле: catalog\controller\checkout\cart.php Код: protected function validateReward() { $points = $this->customer->getRewardPoints(); $points_total = 0.5; foreach ($this->cart->getProducts() as $product) { if ($product['points']) { $points_total *= $product['points']; } }
А где от суммы к оплате деньгами вычитается количество списанных бонусов ? :( Будет время - запилю такой модуль
Решение выше работает при оплате товаров по отдельности. $points_total = 0.5; (здесь что-то типа половины) ...... $points_total *= $product['points']; (здесь умножается) P.S. В итоге имеем 50% от количества всех бонусов товара т.е. фактически суммы заказа при заказе одного товара. Чтобы это работало необходимо задействовать Цену товара в бонусах (Сумма товара = Сумме бонусов) . Тогда в корзине увидите вычитание этих самых %... --- Добавлено, 4 авг 2014 --- В данном примере реализована оплата бонусами не более 30% от общей суммы заказа.
а как сделать вычитание имеющихся бонусов из цены товара при фиксированной максимльной сумме бонусов задданных товару? Например имеется 300 бонусов. При покупке товара стоимостью 1000р(заданно 200 баллов в поле "Баллы:Укажите за сколько баллов можно купить товар."). Происходил расчет 1000-200 баллов=800р? Без каких либо процентов от цены.
Почему то при добавлении 2х товаров в корзину макс кол-во баллов нереальное получается. Кол-во баллов = цене $points_total = 0.2; (здесь что-то типа половины) ...... $points_total *= $product['points']; (здесь умножается) Применить бонусные баллы (Доступно 1000) Сколько баллов использовать (максимум 35712000): Сумма:34300р. Reward Points(1000):-1000р. Итого:33300р. Что за цифра в максимуме? где ошибка? При одном наименовании товара нормально все, так же как и при нескольких кол-вах одного товара