Получить все данные о клиентах


Я хочу получить все данные о клиентах, включая информацию об адресе, пользовательские атрибуты клиента и информацию о профиле клиента. Прямо сейчас я использую модель клиента следующим образом:

$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. используя это, я не могу получить даже личную информацию клиента, такую как телефон или, по крайней мере, имя клиента

Author: Shell Suite, 2017-10-16

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
)
 6
Author: Manashvi Birla, 2017-10-16 05:48:17
  1. Это запрос по умолчанию для коллекции клиентов. Как вы могли заметить, без указания полей для извлечения он извлекает все. Итак, давайте добавим несколько полей!

    $collection = mage::getModel('customer/customer')->getCollection()
    ->addAttributeToSelect('email')
    ->addAttributeToSelect('telephone')
    ->addAttributeToFilter('firstname', 'sander')
    ->addAttributeToSort('email', 'ASC');
     var_dump((string)$collection->getSelect());
    
  2. В вашем случае вам просто нужно указать addAttributeToSelect, чтобы он извлекал только это поле. В коллекциях, не связанных с прослушиванием, используйте addFieldToSelect.

        $users = mage::getModel('customer/customer')->getCollection()
       ->addAttributeToSelect('email');
    
       foreach ($users as $user)
       var_dump($user->getData());
    
 1
Author: Ravindrasinh Zala, 2017-10-16 05:51:16