public function testGetProductParent() { $this->typeInstance->expects($this->once())->method('getStoreFilter')->with($this->product)->willReturn(true); $this->product->expects($this->once())->method('getTypeInstance')->willReturn($this->typeInstance); $this->configurable->setData('product', $this->product); $this->assertEquals($this->product, $this->configurable->getProduct()); }
/** * Set image for product without image if possible * * @param \Magento\Catalog\Model\Product $product * @return \Magento\ConfigurableProduct\Model\Product\Type\Configurable */ public function setImageFromChildProduct(\Magento\Catalog\Model\Product $product) { if (!$product->getData('image') || $product->getData('image') === 'no_selection') { foreach ($this->getUsedProducts($product) as $childProduct) { if ($childProduct->getData('image') && $childProduct->getData('image') !== 'no_selection') { $product->setImage($childProduct->getData('image')); break; } } } return parent::setImageFromChildProduct($product); }
/** * Return array of specific to type product entities * * @param \Magento\Catalog\Model\Product $product * @return array */ public function getIdentities(\Magento\Catalog\Model\Product $product) { $identities = parent::getIdentities($product); /** @var \Magento\Bundle\Model\Option $option */ foreach ($this->getOptions($product) as $option) { if ($option->getSelections()) { /** @var \Magento\Catalog\Model\Product $selection */ foreach ($option->getSelections() as $selection) { $identities = array_merge($identities, $selection->getIdentities()); } } } return $identities; }
public function testCheckProductConfiguration() { $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Product'); $buyRequest = new \Magento\Framework\DataObject(['qty' => 5]); $this->_model->checkProductConfiguration($product, $buyRequest); }
/** * {@inheritdoc} */ public function beforeSave($product) { if ($product->hasData('product_options') && !empty($product->getData('product_options'))) { throw new \Exception('Custom options for grouped product type are not supported'); } return parent::beforeSave($product); }
/** * {@inheritdoc} */ public function beforeSave($product) { //clear cached associated links $product->unsetData($this->_keyAssociatedProducts); if ($product->hasData('product_options') && !empty($product->getData('product_options'))) { throw new \Exception('Custom options for grouped product type are not supported'); } return parent::beforeSave($product); }