Получение имени клиента для кодов купонов в Magento

#php #magento

#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;
}

?>
  

Не мог бы кто-нибудь, пожалуйста, помочь мне с этим и указать мне правильное направление.

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

Ответ №1:

Вот хорошее решение. вам нужно использовать ресурс, а не модель, чтобы получить доступ к таблице 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. Большое спасибо Diglin за вашу помощь. Это сработало как шарм. Вы только что спасли мой день 🙂

2. Я пытался это сделать, но моя репутация не позволяет мне голосовать:-( Я вернусь и сделаю это, как только моя репутация позволит мне проголосовать.

Ответ №2:

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

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

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

Комментарии:

1. Проблема в том, что у меня нет идентификатора клиента. Мне нужно получить идентификатор клиента, связанный с кодом купона. Например, использовался код купона «xyz», и теперь я хотел бы получить идентификатор или имя от клиента, который использовал этот код купона. В отчете о коде купона Magento вы можете видеть только то, что этот купон был использован, но вы не можете видеть, кто использовал этот конкретный купон.