¿Cuál es la mejor manera de cargar Cliente por Id? utilizando la interfaz del cliente o la fábrica del cliente u otra forma?
En la mayoría de las soluciones que encontré, se hace directamente usando objectManager
(que nunca se debe usar).
¿Cuál es la mejor manera de cargar Cliente por Id? utilizando la interfaz del cliente o la fábrica del cliente u otra forma?
En la mayoría de las soluciones que encontré, se hace directamente usando objectManager
(que nunca se debe usar).
Respuestas:
Siempre es una mejor práctica usar contratos de servicio.
En su caso, usaría \Magento\Customer\Api\CustomerRepositoryInterface
:
protected $_customerRepositoryInterface;
public function __construct(
....
\Magento\Customer\Api\CustomerRepositoryInterface $customerRepositoryInterface,
....
) {
....
$this->_customerRepositoryInterface = $customerRepositoryInterface;
}
Luego, en su código puede llamar:
$customerId = 1;
$customer = $this->_customerRepositoryInterface->getById($customerId);