¿Cómo obtener la dirección del cliente por ID de cliente?


9

¿Cómo obtener la dirección del cliente / dirección de facturación por ID de cliente? Esto es lo que he hecho hasta ahora:

$customerId = $_POST["customer_id"];
$customer = $this->_customerRepository->getById($customerId);
$address = $this->_addressRepository->getByCustomerId($customerId);//error

Respuestas:


10

No puede recuperar una dirección basada en la identificación del cliente, por lo que este código nunca funcionará:

$address = $this->_addressRepository->getByCustomerId($customerId);//error

Porque el getByCustomerIdmétodo no existe en las clases de contrato de servicio.

Sin embargo, lo que puede hacer es utilizar la clase de cliente del contrato de servicio de datos con el siguiente código:

$customerId = $_POST["customer_id"];
$customer = $this->_customerRepository->getById($customerId);
$addresses = $customer->getAddresses();

Tenga en cuenta que getAddressesdevolverá una matriz de Magento\Customer\Api\Data\AddressInterface.

Si necesita la dirección de facturación predeterminada, puede llamar:

$billingAddress = $customer->getDefaultBilling(); 

pero cuando lo uso $customer->getDefaultBilling();, devuelve NULL
chico simple

@simpleguy eso se debe a que el cliente que está probando no tiene una dirección de facturación predeterminada probablemente
Raphael en Digital Pianism

@RaphaelatDigitalPianism No funciona para mí. ¿Pueden decirle a los hombres cómo puedo obtener estos detalles?
Gaurav Agrawal

¿Cómo obtener addressID?
jafar pinjar

6

Para obtener la dirección del cliente utilizando la identificación del pedido en el archivo .phtml

$customerId = 3;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerObj = $objectManager->create('Magento\Customer\Model\Customer')->load($customerId);
$customerAddress = array();

foreach ($customerObj->getAddresses() as $address)
{
    $customerAddress[] = $address->toArray();
}

foreach ($customerAddress as $customerAddres) {

    echo $customerAddres['street'];
    echo $customerAddres['city'];
}

1
protected $_address;

public function __construct(
    ...
    \Magento\Customer\Model\Address $address,
    ...     
)
{
    ...
    $this->_address = $address;
    ...
}

Uso en su función: -

$addressObj = $this->_address;
$addressObj->load($addressid); 

puede obtener la recopilación de direcciones de la siguiente manera: -

$addresses = $addressObj->getCollection();

0

$ privado $ customerFactory;

public function __construct(
    \Magento\Customer\Model\CustomerFactory $customerFactory,
    Context $context
) {
    parent::__construct($context);
    $this->customerFactory = $customerFactory;
}

public function execute()
{
    $customerId = 1;
    $customer = $this->customerFactory->create();
    echo "<pre>";
    var_dump($customer->getAddressCollection()->addFieldToFilter('parent_id',$customerId)->getData());
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.