drjmrg8766 2014-07-11 21:49
浏览 61
已采纳

以编程方式更新magento客户

I'm trying to modify existing customers data on magento programmatically, but i have errors, hope someone can help me with this.

require_once('../app/Mage.php');
ini_set("error_reporting",E_ALL);
ini_set("display_errors",true);
umask (0);
Mage::app('admin');

$email = $_REQUEST['email'];
$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];
$newEmail = $_REQUEST['newEmail'];
$method = $_REQUEST['method'];
$user_id = $_REQUEST['user_id'];


$customer = Mage::getModel('customer/customer');
        $customer->setWebsiteId(Mage::app()->getWebsite()->getId());
        $customer->loadByEmail($email);
        $customer->setFirstname = $firstname; 
        $customer->setLastname = $lastname; 
        $customer->setEmail = $newEmail; 
        $customer->save();  

Here is the error message

Fatal error: Uncaught exception 'Mage_Customer_Exception' with message 'Customer email is required' in /home/insateck/www/zzWEBS/MAGENTO/ZZpruebasEXPRIMENET/app/Mage.php:580 Stack trace: #0 /home/insateck/www/zzWEBS/MAGENTO/ZZpruebasEXPRIMENET/app/code/core/Mage/Customer/Model/Resource/Customer.php(76): Mage::exception('Mage_Customer', 'Customer email ...') 
#1 /home/insateck/www/zzWEBS/MAGENTO/ZZpruebasEXPRIMENET/app/code/core/Mage/Eav/Model/Entity/Abstract.php(1122): Mage_Customer_Model_Resource_Customer->_beforeSave(Object(Mage_Customer_Model_Customer)) 
#2 /home/insateck/www/zzWEBS/MAGENTO/ZZpruebasEXPRIMENET/app/code/core/Mage/Core/Model/Abstract.php(318): Mage_Eav_Model_Entity_Abstract->save(Object(Mage_Customer_Model_Customer))
#3 /home/insateck/www/zzWEBS/MAGENTO/ZZpruebasEXPRIMENET/syncadaptax/update_client_methods.php(33): Mage_Core_Model_Abstract->save() 
#4 {main} thrown in /home/insateck/www/zzWEBS/MAGENTO/ZZpruebasEXPRIMENET/app/Mage.php on line 580
  • 写回答

2条回答 默认 最新

  • dt246813579 2014-07-12 08:17
    关注

    You can modify the condition for saving the new email as:

    $customer = Mage::getModel('customer/customer');
    $customer->setWebsiteId(Mage::app()->getWebsite()->getId());
    $customer->loadByEmail($email);
    if($customer->getId()>1){
         $customer2 = Mage::getModel('customer/customer');
         $customer2->setWebsiteId(Mage::app()->getWebsite()->getId());
         $customer2->loadByEmail($newEmail);
         if($customer2->getId()<1){
            $customer->setEmail($newEmail); 
         }
         $customer->setFirstname($firstname); 
         $customer->setLastname ($lastname); 
         $customer->save();
     }
    

    The updated condition will avoid the fatal error.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何用Thoony写ESP32温湿度检测无源蜂鸣器报警代码?
  • ¥20 部件内部的CT图像数据集
  • ¥15 Visual studio调用动态库
  • ¥15 双目摄像头标定后的校准文件
  • ¥15 powerbi矩阵增加度量值后出现对应关系错乱
  • ¥30 频率分析法分析绘制奈奎斯特图、波特图
  • ¥15 弹出来一万个系统找不到指定的文件框框,怎么解决
  • ¥15 ADS生成的微带线为什么是蓝色空心的
  • ¥15 求一下解题思路,完全不懂
  • ¥15 tensorflow