У нас есть такая система, как использование баланса подарочных карт на странице оформления заказа. В то время как клиенты на странице оформления заказа клиенты могут использовать сумму остатка Подарочной карты для покупки товаров.
Итак, я добавил вкладку перед вкладкой оплаты, в которой клиенты могут ввести сумму использования из суммы баланса своей подарочной карты, поэтому, когда они говорят, что продолжить, я получаю введенное значение в пользовательском контроллере Onepage и передаю его в Onepage.php (Модель класса), чтобы уменьшить общую сумму.
Это то, что я делаю в классе моделей.
public function saveCustomDiscount($discount=0)
{
$this->getQuote()->setGrandTotal($this->getQuote()->getGrandTotal() - $discount);
$this->getQuote()->setBaseGrandTotal($this->getQuote()->getBaseGrandTotal() - $discount);
$this->getQuote()->save();
//$this->getQuote()->collectTotals()->save();
$order = $this->getQuote()->getData();
Zend_Debug::dump($order);
return array();
}
И я вызываю эту функцию из контроллера. Действие функции, где я получаю пользовательский ввод.
Здесь, что бы ни учитывалось в качестве скидки, общая сумма и базовая сумма не уменьшается. Это так же, как оригинал.
Примечание:
Перед заказом сохраните.
array(51) {
---------------
["grand_total"] => string(8) "243.7200"
["base_grand_total"] => string(8) "243.7200"
-----------------
}
После пользовательского заказа сохраните.
array(51) {
---------------
["grand_total"] => float(223.72)
["base_grand_total"] => float(223.72)
-----------------
}
Тип данных изменяется со строки на число с плавающей точкой, когда я выполняю отладку. Что я должен сделать, чтобы уменьшить сумму заказа от таможенной скидки. Пожалуйста, помогите мне.
Спасибо