Вопросы Magento получают информацию о клиенте и onepage / checkout / success не отправляет электронную почту - PullRequest
5 голосов
/ 20 мая 2011

Как получить данные клиентов, чтобы я мог передать их на шлюз.

Вот моя модель:

public function getStandardCheckoutFormFields() {
        $orderIncrementId = $this->getCheckout()->getLastRealOrderId();
        $order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
        //$order = $this->get_sale_order($orderIncrementId);
        echo Mage::getModel('customer/customer')->load($orderIncrementId);

        $productArray = array();

        foreach ($order->getAllItems() as $item) {
            $productArray[] = array(
                "product_name"  => $item->getName(),
                "product_qty"   => $item->getQtyOrdered(),
                "product_price" => $item->getPrice(),
            );
        }
        return $productArray;
    }

Вот мой контроллер:

public function redirectAction(){
        $session = Mage::getSingleton('checkout/session');
        $session->setAsurepayCustompayQuoteId($session->getQuoteId());
        $this->getResponse()->setBody($this->getLayout()->createBlock('custompay/redirect')->toHtml());
        $session->unsQuoteId();
        $session->unsRedirectUrl();
    }

Это работает отлично, проблема в том, что я не могу получить информацию о клиенте, такую ​​как имя клиента, адрес и т. Д.

Я уже пробовал этот код

Mage::getSingleton(customer/customer)->getData();

Былрезультат, но не печать.

На странице оформления заказа успешно (одна страница).Когда клиент перенаправляется сюда, клиенту не отправляется электронное письмо, и заказ не был обновлен как завершенный.

1 Ответ

14 голосов
/ 20 мая 2011

Вы пытаетесь загрузить клиента с идентификатором, который принадлежит заказу.Это очевидно не работает!Вам нужно извлечь customer_id из заказа и загрузить модель клиента на основе этого.

$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());

Вы также используете Mage::getSingleton, что является неправильным вызовом.Вы хотите, чтобы новый экземпляр был адаптирован для конкретного клиента, а не для одного допустимого экземпляра класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...