Magento getData от гостя на success.phtml - PullRequest
1 голос
/ 06 января 2012

Я пытаюсь получить итоговую сумму на странице успеха оформления заказа.Это хорошо работает для зарегистрированных пользователей:

$_order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
$amount = $_order->getData('subtotal');
$total  = number_format($amount, 2);

Но когда заказ обрабатывается гостем, $total пусто.

Что можно сделать?

PS: Я использую Magento 1.6.1 CE

1 Ответ

0 голосов
/ 06 января 2012

Взято из Magento app/code/core/Mage/Checkout/Block/Onepage.php:

if (!$this->isCustomerLoggedIn()) {
    return $this->getQuote()->getShippingAddress();
} else {
    return Mage::getModel('sales/quote_address');
}

Я на 99% уверен, что вы можете сделать то же самое с getOrder() и с Mage_Checkout_Block_Success =)

Примечание: метод isCustomerLoggedIn() определен в Mage_Checkout_Block_Onepage_Abstract, который не наследуется Mage_Checkout_Block_Success.Таким образом, вы можете просто использовать его реализацию:

public function isCustomerLoggedIn()
{
    return Mage::getSingleton('customer/session')->isLoggedIn();
}

Например, ваш код теперь должен выглядеть следующим образом:

if (!Mage::getSingleton('customer/session')->isLoggedIn()) {
    $order = Mage::getSingleton('checkout/session')->getOrder();
} else {
    $order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
}

Извините, что сказал бессмысленные вещи до ...

...