【问题标题】:Magento Questions get customer details and onepage/checkout/success doesn't sending emailMagento Questions 获取客户详细信息,并且 onepage/checkout/success 不发送电子邮件
【发布时间】:2011-05-20 17:18:46
【问题描述】:

如何获取客户数据,以便将其传递给网关支付。

这是我的模型:

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

有结果但未打印。

在结帐页面成功(单页)。当客户重定向到这里时,不会向客户发送电子邮件,并且订单未更新为已完成。

【问题讨论】:

    标签: php zend-framework magento


    【解决方案1】:

    您正在尝试使用属于该订单的 id 加载客户。这显然不起作用!您需要从订单中提取customer_id 并基于此加载客户模型。

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

    您还使用了Mage::getSingleton,这是错误的调用。您需要为特定客户量身定制的新实例,而不是类的单个允许实例。

    【讨论】:

      猜你喜欢
      • 2023-01-16
      • 2017-10-28
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      • 2016-04-05
      • 2021-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多