2011-05-20 12 views
5

Cómo obtener datos de clientes para poder pasarlos a un pago de puerta de enlace.Magento Preguntas obtener detalles del cliente y onepage/checkout/success no enviando correo electrónico

Aquí es mi modelo:

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; 
    } 

aquí es mi controlador:

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(); 
    } 

Esta están funcionando perfectamente en funcionamiento, el problema es que no puedo obtener los datos del cliente, como el nombre del cliente, dirección y etc

ya probé este código

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

Hubo un resultado pero no se imprimió.

En la página de pago éxito (una página). Cuando el cliente es redireccionado aquí, no se enviará un correo electrónico al cliente y el pedido no se actualizó cuando se completó.

Respuesta

14

Está intentando cargar un cliente con una identificación que pertenece al pedido. ¡Este obviamente no funciona! Debe extraer el customer_id del pedido y cargar el modelo de cliente en función de eso.

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

También está utilizando Mage::getSingleton que es la llamada incorrecta. Desea una nueva instancia adaptada a un cliente específico, no la única instancia permisible de la clase.

Cuestiones relacionadas