创建一个已经存在的客户的客户地址-Magento

丹尼斯·斯帕伦萨(Denis Spalenza)

我正在尝试以编程方式为前一段时间为我导入的客户创建一个新地址。

我的代码:

//All variables about customer address info are filled
$customerModel = Mage::getModel('customer/customer');
$customer = $customerModel->setWebsiteId(1)->loadByEmail($_email);

if($customer->getId()) {
    $addressData =  array (
        'firstname' => $customer->getFirstname(),
        'lastname' => $customer->getLastname(),
        'street' => "$_s1
$_s2
$_s3
$_s4",
        'city' => $_city,
        'country_id' => 'BR',
        'region_id' => $_regionid,
        'postcode' => $_cep,
        'telephone' => $_tel,
        'celular' => $_cel,
        'is_default_billing' => 1,
        'is_default_shipping' => 1
    );

    $address = Mage::getModel('customer/address');
    $address->addData($addressData);
    $customer->addAddress($address);

    try {
        print_r($addressData);
        $customer->save();
    }
    catch (Exception $e) {
    }
}

对象加载的'$ customer'不是我所需要的:完整的客户对象。任何想法?

克里希纳·苏努瓦尔|

您必须以其他方式保存客户地址,以下是地址保存代码。

$customerAddress = Mage::getModel('customer/address');

$customerAddress->setData($addressData)
        ->setCustomerId($customer->getId())
        ->setSaveInAddressBook('1');

$customerAddress->save();

完整的代码如下所示:

$customerModel = Mage::getModel('customer/customer');
$customer = $customerModel->setWebsiteId(1)->loadByEmail($_email);

if($customer->getId()) {
    $addressData =  array (
        'firstname' => $customer->getFirstname(),
        'lastname' => $customer->getLastname(),
        'street' => "$_s1
$_s2
$_s3
$_s4",
        'city' => $_city,
        'country_id' => 'BR',
        'region_id' => $_regionid,
        'postcode' => $_cep,
        'telephone' => $_tel,
        'celular' => $_cel,
        'is_default_billing' => 1,
        'is_default_shipping' => 1
    );

    $customerAddress = Mage::getModel('customer/address');

    $customerAddress->setData($addressData)
        ->setCustomerId($customer->getId())
        ->setSaveInAddressBook('1');

    $customerAddress->save();

    //And reload customer object
    $customer = Mage::getModel('customer/customer')->load($customer->getId());
    //Check customer data
    print_r($customer->getData());
    //Check addresses
    foreach($customer->getAddresses() as $address)
    {
        print_r($address);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Magento-检查客户属性是否已经存在

来自分类Dev

Magento在结帐时获取客户的收货地址

来自分类Dev

每个商店视图的Magento客户地址模板

来自分类Dev

首次客户折扣magento

来自分类Dev

Magento无法列出客户

来自分类Dev

Magento SOAP客户认证?

来自分类Dev

查找客户的magento版本

来自分类Dev

magento2客户在线网格-缺少字段:IP,最后一个URL等

来自分类Dev

magento2客户在线网格-缺少字段:IP,最后一个URL等

来自分类Dev

Magento-创建新的客户属性

来自分类Dev

Magento通过使用jQuery的电子邮件检查客户是否已经存在

来自分类Dev

Magento客户以编程方式登录

来自分类Dev

以编程方式更新magento客户

来自分类Dev

针对特定客户的Magento会议

来自分类Dev

更新Magento中的客户密码

来自分类Dev

针对特定客户的Magento会话

来自分类Dev

以编程方式更新magento客户

来自分类Dev

Magento读取客户国家/地区

来自分类Dev

Magento; 更改客户登录方式

来自分类Dev

Magento-删除为客户添加新地址选项

来自分类Dev

根据magento中的地址ID和客户ID编辑客户地址

来自分类Dev

在magento中创建一个独立页面

来自分类Dev

Magento不会以编程方式创建客户时分配网站ID

来自分类Dev

更改Magento客户帐户在网站中创建数据

来自分类Dev

Magento-为新客户创建CMS页面以进行注册

来自分类Dev

创建产品的magento错误

来自分类Dev

在Magento中通过编程方式删除客户

来自分类Dev

客户信息中的Magento密码哈希

来自分类Dev

更改Magento中的客户登录密码