magento中没有返回默认客户地址

时间:2013-08-15 02:26:14

标签: php magento magento-1.7

我用

将客户地址从magento中拉出来
$customers = Mage::getModel('customer/customer')->getCollection();
foreach($customers as $customer){

    $primary[$i] = $customer->getPrimaryAddresses();

}

问题是我从来没有从该功能获得任何地址。我可以通过$ customer-> getAddresses()或$ customer-> getAdditionalAddresses()获取客户地址;但没有主要地址。我也尝试过getDefaultShippingAddress / getDefaultBillingAddress函数,它们都没有返回任何地址。

现在让我有点恼火,我无法弄清楚最近发生了什么。在Magento后端,我可以看到哪个地址设置为默认/主要,所以我知道地址已经设置。

2 个答案:

答案 0 :(得分:1)

离开这里为下一个男/女......

截至1.8

getPrimaryAddresses调用getPrimaryBillingAddress和getPrimaryShippingAddress调用get getPrimaryAddress,其属性代码为default_shipping或default_billing

因此,地址未设置为默认值或..

客户(或管理员)也可能下订单但未将地址保存到他们的帐户(客人)。因此,客户对象的getPrimaryBillingAddress方法(由getPrimaryAddresses调用)将返回null,因为地址在订单中持久存在。

答案 1 :(得分:0)

试试这个

$customers = Mage::getModel('customer/customer')->getCollection();
foreach($customers as $customer){    
    $addressId = $customer->getDefaultBilling();
    if ($addressId){
       $address = Mage::getModel('customer/address')->load($customerAddressId);
       $htmlAddress = $address->format('html');
    }    
}

您可以在http://www.magentocommerce.com/boards/viewthread/71270/

找到更多信息