12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Checkout\Controller\Cart;
- use Magento\Framework\App\Action\HttpGetActionInterface as HttpGetActionInterface;
- use Magento\Framework;
- use Magento\Framework\Controller\ResultFactory;
- /**
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- */
- class Configure extends \Magento\Checkout\Controller\Cart implements HttpGetActionInterface
- {
- /**
- * @var \Magento\Framework\View\Result\PageFactory
- */
- protected $resultPageFactory;
- /**
- * @param \Magento\Framework\App\Action\Context $context
- * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
- * @param \Magento\Checkout\Model\Session $checkoutSession
- * @param \Magento\Store\Model\StoreManagerInterface $storeManager
- * @param \Magento\Framework\Data\Form\FormKey\Validator $formKeyValidator
- * @param \Magento\Checkout\Model\Cart $cart
- * @codeCoverageIgnore
- */
- public function __construct(
- Framework\App\Action\Context $context,
- Framework\App\Config\ScopeConfigInterface $scopeConfig,
- \Magento\Checkout\Model\Session $checkoutSession,
- \Magento\Store\Model\StoreManagerInterface $storeManager,
- \Magento\Framework\Data\Form\FormKey\Validator $formKeyValidator,
- \Magento\Checkout\Model\Cart $cart
- ) {
- parent::__construct(
- $context,
- $scopeConfig,
- $checkoutSession,
- $storeManager,
- $formKeyValidator,
- $cart
- );
- }
- /**
- * Action to reconfigure cart item
- *
- * @return \Magento\Framework\View\Result\Page|\Magento\Framework\Controller\Result\Redirect
- */
- public function execute()
- {
- // Extract item and product to configure
- $id = (int)$this->getRequest()->getParam('id');
- $productId = (int)$this->getRequest()->getParam('product_id');
- $quoteItem = null;
- if ($id) {
- $quoteItem = $this->cart->getQuote()->getItemById($id);
- }
- try {
- if (!$quoteItem || $productId != $quoteItem->getProduct()->getId()) {
- $this->messageManager->addErrorMessage(
- __("The quote item isn't found. Verify the item and try again.")
- );
- return $this->resultFactory->create(ResultFactory::TYPE_REDIRECT)->setPath('checkout/cart');
- }
- $params = new \Magento\Framework\DataObject();
- $params->setCategoryId(false);
- $params->setConfigureMode(true);
- $params->setBuyRequest($quoteItem->getBuyRequest());
- $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
- $this->_objectManager->get(\Magento\Catalog\Helper\Product\View::class)
- ->prepareAndRender(
- $resultPage,
- $quoteItem->getProduct()->getId(),
- $this,
- $params
- );
- return $resultPage;
- } catch (\Exception $e) {
- $this->messageManager->addErrorMessage(__('We cannot configure the product.'));
- $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e);
- return $this->_goBack();
- }
- }
- }
|