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 getByCustomerId
mé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 getAddresses
devolverá una matriz de Magento\Customer\Api\Data\AddressInterface
.
Si necesita la dirección de facturación predeterminada, puede llamar:
$billingAddress = $customer->getDefaultBilling();
$customer->getDefaultBilling();
, devuelve NULL