如何查看客户

时间:2016-03-17 12:10:53

标签: php magento magento-1.7

我需要为未在past 3 months登录且尚未在我的网站上注册后登录的客户生成报告。

即使最近登录后,还没有从我的网站购买任何东西。

我需要这些数据来维护客户关系。

这是我的代码。

<?php 

    require_once('app/Mage.php');
    umask(0);
    Mage::app('default');
    Mage::setIsDeveloperMode(true);

    $version = Mage::getVersion();
    echo $version ."\n\n";

    $customer = Mage::getSingleton('customer/session')->getCustomer();
    $logCustomer = Mage::getModel('log/customer')->loadByCustomer($customer);
    $lastVisited = $logCustomer->getLoginAtTimestamp();
    $lastVisited = date('Y-m-d H:i:s', $lastVisited);

?>    

我正在使用

  

Magento 1.7.0.2版本。

任何帮助将不胜感激。

谢谢

3 个答案:

答案 0 :(得分:0)

查看数据库表log_customers,它具有所有注册用户的登录和注销日期。您可能遇到的唯一问题是,如果您在

中启用了日志清理
system > configuration (top menu)
advanced > system (left menu)

'log'(中心区域),这是您配置日志生存期的地方。如果您要将此用于报告,则可以根据要求进行调整。

使用log_customer表中的数据,与customer_entity(entity_id字段)交叉引用,您将能够生成报告而无需触及法师应用程序。

答案 1 :(得分:0)

试试这个......

获取上次登录日期:

$collection = Mage::getModel('customer/customer')->getCollection();
foreach($collectin as $customer){
   $logCustomer = Mage::getModel('log/customer')->loadByCustomer($customer);
   $lastVisited = $logCustomer->getLoginAtTimestamp();
   echo $lastVisited = $customer->getFirstname(). " => ".date('Y-m-d H:i:s', $lastVisited). "<br>";
}

要在管理区域显示此结果,我会创建一个简单的管理员扩展程序:learn here

并将上面的代码放在控制器中以便快速查看,但是我希望您了解MVC如何在magento中工作并以magento方式显示所需的结果。

答案 2 :(得分:0)

请使用我的以下代码,然后您将获得客户登录和客户ID的注销时间。

$model = Mage::getSingleton('customer/customer');$customerCollection = $model->getCollection()
   ->addAttributeToSelect('*');$customerCollection->getSelect()->joinLeft(array("t1" => 'log_customer'), "e.entity_id = t1.customer_id")->group('e.entity_id');
echo $customerCollection->getSelect();

foreach($customerCollection as $customerObject) 
{       
    echo '<b>CustomerID='.$customerObject->getData('entity_id').'Login At-'. $customerObject->getData('login_at').' Log Out at'.$customerObject->getData('logout_at').'</b><br/>';
}