mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-08 01:37:36 +00:00
57 lines
2.3 KiB
PHP
57 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Magento\Sales\Controller\Adminhtml\Order\Create;
|
|
|
|
class ConfigureQuoteItems extends \Magento\Sales\Controller\Adminhtml\Order\Create
|
|
{
|
|
/**
|
|
* Ajax handler to response configuration fieldset of composite product in quote items
|
|
*
|
|
* @return \Magento\Framework\View\Result\Layout
|
|
*/
|
|
public function execute()
|
|
{
|
|
// Prepare data
|
|
$configureResult = new \Magento\Framework\DataObject();
|
|
try {
|
|
$quoteItemId = (int)$this->getRequest()->getParam('id');
|
|
if (!$quoteItemId) {
|
|
throw new \Magento\Framework\Exception\LocalizedException(
|
|
__('The quote item ID needs to be received. Set the ID and try again.')
|
|
);
|
|
}
|
|
|
|
$quoteItem = $this->_objectManager->create(\Magento\Quote\Model\Quote\Item::class)->load($quoteItemId);
|
|
if (!$quoteItem->getId()) {
|
|
throw new \Magento\Framework\Exception\LocalizedException(
|
|
__('The quote item needs to be loaded. Load the item and try again.')
|
|
);
|
|
}
|
|
|
|
$configureResult->setOk(true);
|
|
$optionCollection = $this->_objectManager->create(\Magento\Quote\Model\Quote\Item\Option::class)
|
|
->getCollection()
|
|
->addItemFilter([$quoteItemId]);
|
|
$quoteItem->setOptions($optionCollection->getOptionsByItem($quoteItem));
|
|
|
|
$configureResult->setBuyRequest($quoteItem->getBuyRequest());
|
|
$configureResult->setCurrentStoreId($quoteItem->getStoreId());
|
|
$configureResult->setProductId($quoteItem->getProductId());
|
|
$sessionQuote = $this->_objectManager->get(\Magento\Backend\Model\Session\Quote::class);
|
|
$configureResult->setCurrentCustomerId($sessionQuote->getCustomerId());
|
|
} catch (\Exception $e) {
|
|
$configureResult->setError(true);
|
|
$configureResult->setMessage($e->getMessage());
|
|
}
|
|
|
|
// Render page
|
|
/** @var \Magento\Catalog\Helper\Product\Composite $helper */
|
|
$helper = $this->_objectManager->get(\Magento\Catalog\Helper\Product\Composite::class);
|
|
return $helper->renderConfigureResult($configureResult);
|
|
}
|
|
}
|