2011-10-12 118 views
2

我已经在网络上和本网站上搜索解决方案,但找不到任何。 我想获取与Magento中的优惠券代码关联的客户名称。我发现了使用优惠券代码的时间的一些代码,但我无法获得客户名称。在Magento中获取优惠券代码的客户名称

我尝试下面的代码:

<?php 

$mageFilename = 'app/Mage.php'; 
require_once $mageFilename; 

umask(0); 
Mage::app('admin'); 

$coupon = Mage::getModel('salesrule/coupon/usage'); 
$coupon->load('dd_38WX9N', 'code'); 
if($coupon->getId()) { 
    $timesUsed = $coupon->getTimesUsed(); 
    $customer = $coupon->getCustomerId(); 
    echo $timesUsed; 
    echo $customer; 
} 

?> 

可能有人请帮助我与和我指向正确的方向。

非常感谢您的帮助。 丹尼尔

回答

9

这是一个很好的解决方案。你需要使用的资源,而不是模型来获得对表的访问salesrule_coupon_usage并获得CUSTOMER_ID列表

/*@var $coupon Mage_SalesRule_Model_Coupon */ 
$coupon = Mage::getModel('salesrule/coupon'); 
$coupon->load('dd_38WX9N', 'code'); 

if($coupon->getId()){ 
    /* @var $resourceCouponUsage Mage_SalesRule_Model_Mysql4_Coupon_Usage */ 
    $resourceCouponUsage = Mage::getResourceModel('salesrule/coupon_usage'); 
    $read = $resourceCouponUsage->getReadConnection(); 
    $select = $read->select() 
       ->from($resourceCouponUsage->getMainTable()) 
       ->where('coupon_id = ?', $coupon->getId()); 

    $data = $read->fetchAll($select); 
    print_r($data); 
    foreach($data as $couponUsage){ 
     $customer = Mage::getModel('customer/customer')->load($couponUsage['customer_id']); 
     echo $customer->getName(); 
    } 
} 
+0

非常感谢Diglin的帮助。这就像一个魅力。你刚刚救了我的一天:-) –

+2

不要犹豫投票:-) –

+1

我试图做到这一点,但我的名声不允许我投票:-(我会回来,尽快做到这一点声望让我投票。 –

2

当你能够得到顾客的ID,你也可以得到整个客户对象:

$customer_data = Mage::getModel('customer/customer')->load($customer_id); 
print_r($customer_data); 

在那里你可以得到的名称为好。

+0

的问题是,我没有客户ID。我需要获得与优惠券代码关联的客户ID。例如,优惠券代码“xyz”已被使用,现在我希望从使用该优惠券代码的客户那里获得ID或姓名。在Magento优惠券代码报告中,您只能看到此优惠券已被使用,但您无法看到谁使用了该特定优惠券。 –

相关问题