在Magento获取优惠券代码的客户名称

时间:2011-10-12 09:35:10

标签: php 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;
}

?>

有人可以帮助我,并指出我正确的方向。

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

2 个答案:

答案 0 :(得分: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();
    }
}

答案 1 :(得分:2)

当您能够获得客户的ID时,您还可以获得整个客户对象:

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

在那里你也可以得到这个名字。