Magento - 在Checkout页面注册,然后通过PayPal付款

时间:2011-03-18 09:57:28

标签: php javascript ajax magento paypal

我有问题,在结账后“checkout / onepage / success”使用“订单ID”获取用户信息,例如:

$orderInfo = Mage::getModel('sales/order')->load($lastOrderId);
$customerId = $orderInfo->getCustomerId();

从Checkout页面上注册然后通过PayPal付款的用户订购成为“客人订单”,当然在“模型('销售/订单')中”客户ID为空,在DB中此交易和订单看起来像由PayPal帐户制作的“来宾订单”,而不是来自Magento的帐户。另一个支付系统在Checkout页面注册时工作正常,结账后我可以获得客户ID。 问题是,如何通过Checkout页面从Magento网站的注册用户那里获得“用户ID”并通过PayPal购买东西?

3 个答案:

答案 0 :(得分:1)

您可以通过客户模型的电子邮件加载用户

Mage::getModel('customer/customer')->loadByEmail($orderInfo->getBillingAddress()->getEmail());

更可行的方法是收听save_order_after事件并检测您是否正在处理paypal结账并立即将客户添加到订单中

答案 1 :(得分:1)

这看起来是一个注册的错误?

http://www.magentocommerce.com/bug-tracking/issue/?issue=11133

答案 2 :(得分:0)

找不到任何办法,可能Magento和PayPal的家伙们应该谈谈...... 但是,我只是在结帐页面上重写了“注册”按钮的OnClick事件:

<button type="button" class="button" onclick="window.location.href='/customer/account/create';">
<span><span>Register</span></span>
</button>

在有“checkout.setMethod()”之前,我只是将用户发送到注册页面。