Bagaimana cara mendapatkan alamat pelanggan dengan ID pelanggan?


9

Bagaimana cara mendapatkan alamat pelanggan / alamat penagihan berdasarkan ID pelanggan? inilah yang saya lakukan sejauh ini:

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

Jawaban:


10

Anda tidak dapat mengambil alamat berdasarkan id pelanggan sehingga kode ini tidak akan berfungsi:

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

Karena getByCustomerIdmetode ini tidak ada di kelas kontrak layanan.

Apa yang dapat Anda lakukan, adalah menggunakan kelas pelanggan kontrak layanan data dengan kode berikut:

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

Harap dicatat bahwa getAddressesakan mengembalikan array Magento\Customer\Api\Data\AddressInterface.

Jika Anda memerlukan alamat penagihan standar, Anda dapat menghubungi:

$billingAddress = $customer->getDefaultBilling(); 

tetapi ketika saya menggunakannya $customer->getDefaultBilling();mengembalikan NULL
orang sederhana 14

@simpleguy itu karena pelanggan yang Anda uji mungkin tidak memiliki alamat penagihan default
Raphael di Digital Pianism

@RaphaelatDigitalPianism Ini tidak berfungsi untuk saya. Bisakah Anda memberi tahu pria bagaimana saya bisa mendapatkan detail ini.
Gaurav Agrawal

Bagaimana cara mendapatkan addressID?
jafar pinjar

6

Untuk mendapatkan adderess pelanggan menggunakan id pesanan dalam file .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;
    ...
}

Gunakan dalam fungsi Anda: -

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

Anda bisa mendapatkan koleksi alamat seperti di bawah ini: -

$addresses = $addressObj->getCollection();

0

$ private $ 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());
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.