/** * Set the payment for the given quote * * @param Mage_Sales_Model_Quote $quote * @param ShopgateOrder $order * * @return Mage_Sales_Model_Quote */ protected function _setQuotePayment($quote, $order) { $payment = $this->_getFactory()->getPaymentModel(); $paymentInfo = array(); $info = $order->getPaymentInfos(); if ($order->getPaymentMethod() == ShopgateOrder::COD) { if (Mage::getConfig()->getModuleConfig('MSP_CashOnDelivery')->is('active', 'true')) { $checkoutSession = Mage::getSingleton('checkout/session'); $checkoutSession->replaceQuote($quote); } } if ($payment instanceof Shopgate_Framework_Model_Payment_MobilePayment) { $this->log("payment is shopgate", ShopgateLogger::LOGTYPE_DEBUG); $payment->setShopgateOrder($order); //allows printing of order details } if ($payment->getCode() == Mage::getModel("shopgate/payment_mobilePayment")->getCode()) { $paymentInfo = $order->getPaymentInfos(); } if ($order->getPaymentMethod() == ShopgateOrder::PREPAY) { $paymentInfo["mailing_address"] = $info["purpose"]; } if ($order->getAmountShopPayment() != 0) { $paymentInfo["amount_payment"] = $order->getAmountShopPayment(); } $paymentInfo['is_customer_invoice_blocked'] = $order->getIsCustomerInvoiceBlocked(); $paymentInfo['is_test'] = $order->getIsTest(); $paymentInfo['is_paid'] = $order->getIsPaid(); $quote->getPayment()->setMethod($payment->getCode()); $quote->getPayment()->setAdditionalData(serialize($paymentInfo)); $quote->getPayment()->setAdditionalInformation($paymentInfo); $quote->getPayment()->setLastTransId($order->getPaymentTransactionNumber()); $quote = $this->_getFactory()->prepareQuote($quote, $info); return $quote; }