Получить имя клиента для купонных кодов в Magento - PullRequest
2 голосов
/ 12 октября 2011

Я искал в сети и на этом сайте решение, но не смог найти ни одного. Я хотел бы связать имя клиента с кодом купона в 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;
}

?>

Может ли кто-нибудь помочь мне с этим и указать мне правильное направление.

Большое спасибо за вашу помощь. Daniel

Ответы [ 2 ]

9 голосов
/ 12 октября 2011

Вот хорошее решение. вам нужно использовать ресурс, а не модель, чтобы получить доступ к таблице 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();
    }
}
2 голосов
/ 12 октября 2011

Когда вы можете получить идентификатор клиента, вы также можете получить весь объект клиента:

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

Там вы также можете получить имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...