3
Magento2-プログラムで製品がカートに追加されないようにする方法
私がしたいのは、カスタム属性が引用で設定されている場合、カートに商品を追加したくないです。カスタム属性が正しく設定されています。 製品がカートに追加されないようにするために、このイベントを監視するオブザーバーを作成しました controller_action_predispatch_checkout_cart_add 私のオブザーバーファイルコード: public function execute(\Magento\Framework\Event\Observer $observer) { $addedItemId = $observer->getRequest()->getParam('product'); $quote = $this->_cart->getQuote(); if(!empty($quote)) { $customAttribute = $quote->getData('custom_attribute'); if(!empty($customAttribute)) { $controller = $observer->getControllerAction(); $storeId = $this->_objectManager->get('Magento\Store\Model\StoreManagerInterface')->getStore()->getId(); $product = $this->_productRepository->getById($addedItemId, false, $storeId); $observer->getRequest()->setParam('product', null); $this->_messageManager->addError(__('This product cannot be added to your cart.')); echo false; $this->_actionFlag->set('', \Magento\Framework\App\Action\Action::FLAG_NO_DISPATCH, true); $this->redirect->redirect($controller->getResponse(), 'checkout/cart/index'); …