Получить все данные о клиентах
Я хочу получить все данные о клиентах, включая информацию об адресе, пользовательские атрибуты клиента и информацию о профиле клиента. Прямо сейчас я использую модель клиента следующим образом:
$collections = Mage::getModel('customer/customer')->getCollection();
foreach ($collections as $collection) {
$result[]= $collection->getData();
}
print_r($result);
В этой форме я получаю только основную информацию, такую как entity_id
, store_id
, created_at
, is_active
, и etc
. используя это, я не могу получить даже личную информацию клиента, такую как телефон или, по крайней мере, имя клиента
2 answers
Вы можете получить подробную информацию о клиенте, как показано ниже:
Идентификатор клиента здесь
$customerId = 1;
Загрузить объект клиента
$customer = Mage::getModel('customer/customer')->load($customerId); //insert cust ID
Создать массив адресов клиентов
$customerAddress = array();
foreach ($customer->getAddresses() as $address)
{
$customerAddress[] = $address->toArray();
}
Отображение массива
echo '<pre/>';print_r($customerAddress);exit;
После получения адреса пользователя вы увидите что-то вроде этого:
Array
(
[entity_id] => 1
[entity_type_id] => 2
[attribute_set_id] => 0
[increment_id] =>
[parent_id] => 1
[created_at] => 2013-12-05 14:28:40
[updated_at] => 2013-12-05 16:14:13
[is_active] => 1
[firstname] => Daniel
[lastname] => Halmagean
[city] => New York
[region] => New Jersey
[postcode] => 123123
[country_id] => RO
[telephone] => 2342423434243
[region_id] => 282
[street] => my street name
[customer_id] => 1
)
-
Это запрос по умолчанию для коллекции клиентов. Как вы могли заметить, без указания полей для извлечения он извлекает все. Итак, давайте добавим несколько полей!
$collection = mage::getModel('customer/customer')->getCollection() ->addAttributeToSelect('email') ->addAttributeToSelect('telephone') ->addAttributeToFilter('firstname', 'sander') ->addAttributeToSort('email', 'ASC'); var_dump((string)$collection->getSelect());
-
В вашем случае вам просто нужно указать addAttributeToSelect, чтобы он извлекал только это поле. В коллекциях, не связанных с прослушиванием, используйте addFieldToSelect.
$users = mage::getModel('customer/customer')->getCollection() ->addAttributeToSelect('email'); foreach ($users as $user) var_dump($user->getData());