/**
  * {@inheritdoc}
  */
 public function convertToProductOption(DataObject $request)
 {
     $bundleOptions = $request->getBundleOption();
     $bundleOptionsQty = $request->getBundleOptionQty();
     if (!empty($bundleOptions) && is_array($bundleOptions)) {
         $data = [];
         foreach ($bundleOptions as $optionId => $optionSelections) {
             if (empty($optionSelections)) {
                 continue;
             }
             $optionSelections = is_array($optionSelections) ? $optionSelections : [$optionSelections];
             $optionQty = isset($bundleOptionsQty[$optionId]) ? $bundleOptionsQty[$optionId] : 1;
             /** @var BundleOptionInterface $productOption */
             $productOption = $this->bundleOptionFactory->create();
             $productOption->setOptionId($optionId);
             $productOption->setOptionSelections($optionSelections);
             $productOption->setOptionQty($optionQty);
             $data[] = $productOption;
         }
         return ['bundle_options' => $data];
     }
     return [];
 }
Example #2
0
 /**
  * Prepare selected options for bundle product
  *
  * @param  \Magento\Catalog\Model\Product $product
  * @param  \Magento\Framework\DataObject $buyRequest
  * @return array
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function processBuyRequest($product, $buyRequest)
 {
     $option = $buyRequest->getBundleOption();
     $optionQty = $buyRequest->getBundleOptionQty();
     $option = is_array($option) ? array_filter($option, 'intval') : [];
     $optionQty = is_array($optionQty) ? array_filter($optionQty, 'intval') : [];
     $options = ['bundle_option' => $option, 'bundle_option_qty' => $optionQty];
     return $options;
 }