Cómo forzar solo un producto por pedido en Magento 2

Estás leyendo la publicación: Cómo forzar solo un producto por pedido en Magento 2

espacio de nombres Proveedor\Extensión\Observador;

use Magento\Framework\Event\ObserverInterface;

use Magento\Framework\App\Request\DataPersistorInterface;

use Magento\Framework\App\ObjectManager;

clase Cartadd implementa ObserverInterface {

protegido $_urlManager;

$_checkoutSession protegida;

protegido $_carrito;

protegido $_messageManager;

protegido $_redirect;

$_request protegido;

$_respuesta protegida;

protegido $_responseFactory;

protegido $_resultFactory;

protegido $_scopeConfig;

protegido $_producto;

función pública __construct(\Magento\Framework\UrlInterface $urlManager, \Magento\Checkout\Model\Session $checkoutSession, \Magento\Framework\App\Response\RedirectInterface $redirect, \Magento\Checkout\Model\Cart $cart, \Magento \Framework\Message\ManagerInterface $messageManager, \Magento\Framework\App\RequestInterface $solicitud, \Magento\Framework\App\ResponseInterface $respuesta, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Catalog\Model \Producto $producto, \Magento\Framework\App\ResponseFactory $responseFactory, \Magento\Framework\Controller\ResultFactory $resultFactory

) {

$this->_urlManager = $urlManager;

$this->_checkoutSession = $checkoutSession;

$this->_redirect = $redirect;

$esto->_carrito = $carrito;

$this->_messageManager = $messageManager;

$this->_request = $request;

$esto->_respuesta = $respuesta;

$this->_responseFactory = $responseFactory;

$this->_resultFactory = $resultFactory;

$this->_scopeConfig = $scopeConfig;

$este->_producto = $producto;

}

función pública ejecutar (\Magento\Framework\Evento\Observador $observador) {

$controlador = $observador->getControllerAction();

$postValues ​​= $this->_request->getPostValue();

$preciocarrito = $esto->_carrito->obtenerPresupuesto()->getData();

$cartItemsCount = $this->_cart->getQuote()->getItemsCount();

$cartItemsAll = $this->_cart->getQuote()->getAllItems();

si ($cartItemsCount > 0)

{

$observador->getRequest()->setParam(‘producto’, false);

$observador->getRequest()->setParam(‘return_url’, $this->_redirect->getRefererUrl());

$observador->getRequest()->setParam(‘backUrl’, $this->_redirect->getRefererUrl());

$this->_messageManager->addError(__(‘Solo se permite comprar 1 producto a la vez.’));

}

}

}

🔥 Recomendado:  ¿Cómo convertirse en un desarrollador web independiente? 7 pasos a seguir