我有问题,在结账后“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购买东西?
答案 0 :(得分:1)
您可以通过客户模型的电子邮件加载用户
Mage::getModel('customer/customer')->loadByEmail($orderInfo->getBillingAddress()->getEmail());
更可行的方法是收听save_order_after事件并检测您是否正在处理paypal结账并立即将客户添加到订单中
答案 1 :(得分:1)
答案 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()”之前,我只是将用户发送到注册页面。