查找在Magento中使用优惠券代码的非会员的姓名和电子邮件地址

ut_eos 发布于 2019-01-18 coupon 最后更新 2019-01-18 15:48 52 浏览

我们希望能够将购买物品的顾客的姓名和电子邮件地址作为客人。有没有人有这样做的运气? 我已经看到了一些关于如何提取使用优惠券代码的客户名字的帖子,但没有关于非客户的消息! 非常感谢你们的帮助! -Jeff

已邀请:

xiste

赞同来自:

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语句只能在此处找到:How can I see full order details for each time a certain coupon code was used in magento?

lnon

赞同来自:

这应该工作:

 $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')
;