0

我正在从magento中提取客户地址

$customers = Mage::getModel('customer/customer')->getCollection();
foreach($customers as $customer){

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

}

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

现在有点恼火,我就是想不通是怎么回事。在 Magento 后端,我可以看到哪个地址设置为默认/主地址,所以我知道地址已设置。

4

2 回答 2

1

只是把这个留给下一个男人/女孩......

从 1.8 开始

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

所以要么地址没有设置为默认值,要么..

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

于 2014-10-10T19:48:45.903 回答
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/

于 2013-08-15T05:11:03.793 回答