/**
  * Setting Bundle Items Data to product for further processing
  *
  * @param \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject
  * @param \Magento\Catalog\Model\Product $product
  *
  * @return \Magento\Catalog\Model\Product
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function afterInitialize(\Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject, \Magento\Catalog\Model\Product $product)
 {
     $compositeReadonly = $product->getCompositeReadonly();
     $result['bundle_selections'] = $result['bundle_options'] = [];
     if (isset($this->request->getPost('bundle_options')['bundle_options'])) {
         foreach ($this->request->getPost('bundle_options')['bundle_options'] as $key => $option) {
             if (empty($option['bundle_selections'])) {
                 continue;
             }
             $result['bundle_selections'][$key] = $option['bundle_selections'];
             unset($option['bundle_selections']);
             $result['bundle_options'][$key] = $option;
         }
         if ($result['bundle_selections'] && !$compositeReadonly) {
             $product->setBundleSelectionsData($result['bundle_selections']);
         }
         if ($result['bundle_options'] && !$compositeReadonly) {
             $product->setBundleOptionsData($result['bundle_options']);
         }
         $this->processBundleOptionsData($product);
         $this->processDynamicOptionsData($product);
     }
     $affectProductSelections = (bool) $this->request->getPost('affect_bundle_product_selections');
     $product->setCanSaveBundleSelections($affectProductSelections && !$compositeReadonly);
     return $product;
 }
Example #2
0
 /**
  * Setting Bundle Items Data to product for father processing
  *
  * @param \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject
  * @param \Magento\Catalog\Model\Product $product
  *
  * @return \Magento\Catalog\Model\Product
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  */
 public function afterInitialize(\Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject, \Magento\Catalog\Model\Product $product)
 {
     if (($items = $this->request->getPost('bundle_options')) && !$product->getCompositeReadonly()) {
         $product->setBundleOptionsData($items);
     }
     if (($selections = $this->request->getPost('bundle_selections')) && !$product->getCompositeReadonly()) {
         $product->setBundleSelectionsData($selections);
     }
     if ($product->getPriceType() == '0' && !$product->getOptionsReadonly()) {
         $product->setCanSaveCustomOptions(true);
         if ($customOptions = $product->getProductOptions()) {
             foreach (array_keys($customOptions) as $key) {
                 $customOptions[$key]['is_delete'] = 1;
             }
             $product->setProductOptions($customOptions);
         }
     }
     $product->setCanSaveBundleSelections((bool) $this->request->getPost('affect_bundle_product_selections') && !$product->getCompositeReadonly());
     return $product;
 }
 /**
  * Setting Bundle Items Data to product for father processing
  *
  * @param \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject
  * @param \Magento\Catalog\Model\Product $product
  *
  * @return \Magento\Catalog\Model\Product
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function afterInitialize(\Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject, \Magento\Catalog\Model\Product $product)
 {
     $compositeReadonly = $product->getCompositeReadonly();
     $selections = $this->request->getPost('bundle_selections');
     if ($selections && !$compositeReadonly) {
         $product->setBundleSelectionsData($selections);
     }
     $items = $this->request->getPost('bundle_options');
     if ($items && !$compositeReadonly) {
         $product->setBundleOptionsData($items);
     }
     $this->processBundleOptionsData($product);
     $this->processDynamicOptionsData($product);
     $affectProductSelections = (bool) $this->request->getPost('affect_bundle_product_selections');
     $product->setCanSaveBundleSelections($affectProductSelections && !$compositeReadonly);
     return $product;
 }