1

我们希望能够提取以访客身份购买商品的客户的姓名和电子邮件地址。有没有人有运气这样做?

我看过一些关于如何提取使用优惠券代码的客户姓名的帖子,但没有关于非客户的内容!

非常感谢你们的帮助!

-杰夫

4

2 回答 2

3

这应该有效:

 $orderCollection = Mage::getModel('sales/order')->getCollection()
        ->addAttributeToSelect('customer_firstname')
        ->addAttributeToSelect('customer_lastname')
        ->addAttributeToSelect('customer_email')
        ->addAttributeToSelect('customer_group_id')
        ->addAttributeToFilter('customer_group_id', Mage_Customer_Model_Group::NOT_LOGGED_IN_ID)
 ;

然后,您可以通过遍历集合来访问这些值...

foreach($orderCollection as $order) {
    $customerFirstname = $order->getData('customer_firstname');
    $customerLastname  = $order->getData('customer_lastname');
    $customerEmail     = $order->getData('customer_email');

    //Do what you want with the values here
}

编辑:

上面的代码回答了您问题的第一段。第二段表明您正在寻找不同的东西。您是否正在寻找使用特定优惠券代码的客人客户?如果是这样,那么您应该像这样加载集合:

$orderCollection = Mage::getModel('sales/order')->getCollection()
    ->addAttributeToSelect('customer_firstname')
    ->addAttributeToSelect('customer_lastname')
    ->addAttributeToSelect('customer_email')
    ->addAttributeToSelect('customer_group_id')
    ->addAttributeToSelect('coupon_code')
    ->addAttributeToFilter('customer_group_id', Mage_Customer_Model_Group::NOT_LOGGED_IN_ID)
    ->addAttributeToFilter('coupon_code', 'your_awesome_coupon_code')
;
于 2012-06-21T19:06:14.763 回答
0

在另一篇类似的帖子中,Drew 给了我一个 SQL 语句,用于记录现有客户的姓名和电子邮件。要获取包括注册用户和访客在内的所有订单,您可以使用以下 SQL:

SELECT `customer_firstname`, `customer_lastname`, `customer_email` FROM `sales_flat_order` WHERE  `coupon_code` = 'your_awesome_coupon_code' 

像魅力一样工作!仔细检查了“salesrule_coupon”,并且 sql 中返回的行与使用优惠券的次数相匹配。

我会将 Drew 的答案标记为正确,因为在 magento 中可能会更好。任何寻找 SQL 的人,使用这个!

只有注册用户的 SQL 语句可以在这里找到:如何在 magento 中查看每次使用某个优惠券代码时的完整订单详细信息?

于 2012-07-10T18:52:53.520 回答