Skip to content

Can we safely return false for MagentoBundleModelProductType::isVirtual?

We are only using simple products as child of Bundle product.
Could we safely return early with false? for isVirtual method of Bundle class?

# Class: MagentoBundleModelProductType
public function isVirtual($product)
    {
        /*if ($product->hasCustomOptions()) {
            $customOption = $product->getCustomOption('bundle_selection_ids');
            $selectionIds = $this->serializer->unserialize($customOption->getValue());
            $selections = $this->getSelectionsByIds($selectionIds, $product);
            $virtualCount = 0;
            foreach ($selections->getItems() as $selection) {
                if ($selection->isVirtual()) {
                    $virtualCount++;
                }
            }

            return $virtualCount === count($selections);
        }*/

        return false;
    }

$selections->getItems() part of the code is causing the performance issue as it has to trigger multiple SQL queries.