【问题标题】:Where does the customer_email column get populated from in the sales_flat_order table in Magento on onepage checkout?单页结账时 Magento 的 sales_flat_order 表中的 customer_email 列是从哪里填充的?
【发布时间】:2014-07-23 14:43:12
【问题描述】:

我试图在 Magento 中查找在单页结帐的 sales_flat_order 表中成功交易后填充 customer_email 列的 PHP 代码。在这种情况下,我以“客人”的身份结账。

由于某种原因,customer_email 列没有被填充,但只有当我在我们的登台服务器上进行访客结帐时(似乎在我的 vagrant box 上工作,虽然这很奇怪??)

我知道代码会是这样的:-

$this->setCustomerEmail(); // or something like this

【问题讨论】:

  • 检查你的日志,如果你发现任何东西或在 index.php 中启用 ini_set('display_errors')

标签: php magento magento-1.7 checkout


【解决方案1】:

取自帐单地址。 saveOrderAction() 中的结帐控制器调用 $this->getOnepage()->saveOrder(); 这将转到 Mage_Checkout_Model_Type_Onepage::_prepareGuestQuote() 方法,该方法将电子邮件设置为来自帐单地址的报价。

接下来使用这段代码在Mage_Checkout_Model_Type_Onepage::saveOrder()方法中将报价复制到订单

    $service = Mage::getModel('sales/service_quote', $this->getQuote());
    $service->submitAll();

电子邮件被复制到订单中 Mage_Sales_Model_Service_Quote::submitOrder() 方法与这段代码

foreach ($this->_orderData as $key => $value) {
    $order->setData($key, $value);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    相关资源
    最近更新 更多