Establecer la dirección de envío y facturación desde el pedido hasta la dirección del cliente en Magento 2

Estás leyendo la publicación: Establecer la dirección de envío y facturación desde el pedido hasta la dirección del cliente en Magento 2

espacio de nombres Proveedor\Módulo\Ayudante;

use Magento\Framework\App\Helper\Context;

use Magento\Store\Model\StoreManagerInterface;

use Magento\Cliente\Modelo\CustomerFactory;

use Magento\Sales\Model\OrderFactory;

use Magento\Cliente\Modelo\AddressFactory;

clase Datos extiende AbstractHelper

{

privado $storeManager;

privado $customerFactory;

privado $orderFactory;

$addressFactory privado;

función pública __construir

(

Contexto $contexto,

StoreManagerInterface $storeManager,

fábrica de clientes $ fábrica de clientes,

fábrica de pedidos $ fábrica de pedidos,

fábrica de direcciones $ fábrica de direcciones

)

{

$this->storeManager = $storeManager;

$this->customerFactory = $customerFactory;

$this->orderFactory = $orderFactory;

$this->addressFactory = $addressFactory;

padre::__construcción($contexto);

}

función pública setCustomerAddress($orderId)

{

$cliente = $this->customerFactory->create();

$websiteId = $this->storeManager->getStore()->getWebsiteId();

$orderData = $this->orderFactory->create()->load($orderId);

$cliente->setWebsiteId($websiteId);

/* El cliente ya existe */

$customerModel = $customer->loadByEmail($orderData->getCustomerEmail());

$clienteId = $clienteModelo->getId();

/* guardar dirección de facturación */

$dirección = $this->addressFactory->create();

$dirección->setData($orderData->getBillingAddress()->getData());

$dirección->setCustomerId($customerId)

->setIsDefaultBilling(‘1’)

->establecerEsEnvíoPredeterminado(‘0’)

->setSaveInAddressBook(‘1’);

$dirección->guardar();

/* guarda la dirección de envío */

if (!$orderData->getIsVirtual()) {

$dirección = $this->addressFactory->create();

$dirección->setData($orderData->getShippingAddress()->getData());

$dirección->setCustomerId($customerId)

->setIsDefaultBilling(‘0’)

->establecerEsEnvíoPredeterminado(‘1’)

->setSaveInAddressBook(‘1’);

$dirección->guardar();

}

}

}

🔥 Recomendado:  Cómo desbloquear TikTok desde cualquier lugar en 2023