0

我已经建立了一个观察者,它监听在新用户注册时发出的registration_success_observer事件(来自帐户页面)。观察者处理各种功能,最重要的是,如果传入会员 ID,则将用户升级到会员组

问题是我需要为正在签出和注册为新客户的用户提供相同的功能。除了重新计算总数之外,我还需要一种方法来确定他们是否在单页结帐屏幕上注册为新客户(通过事件?)——我们商店中的某些商品对团体有特殊定价。

有谁知道解决这个问题的最佳方法?我应该监听的特定事件,或用于处理单页结帐屏幕中的功能的任何其他代码片段会很有帮助。

**更新**

我突然想到,直到订单完成后才真正创建了客户。有什么解决方法吗?

4

1 回答 1

3

您可以使用以下逻辑创建自己的“自定义事件”,以检查他们使用哪种方法来检查 success.phtml 或将其合并到 sales_order_place_before

$quoteId = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId())->getQuoteId();
$quote = Mage::getModel('sales/quote')->load($quoteId);
$method = $quote->getCheckoutMethod(true);
if ($method == 'register'){
//the customer registered...do your stuff
}

来源: http: //www.magentocommerce.com/boards/viewthread/273690/#t375160

但是,如果不重写单页结帐​​,您可能无法尝试执行此操作,因为在订单存储在数据库中之前创建了客户,但在处理信用卡之后,因此信用卡账单金额不等于订单总额.

您可以尝试在结帐过程的第一步中添加第三个选项(“注册为会员”),允许他们在开始结帐之前创建一个帐户。

于 2013-01-14T15:03:57.063 回答