コード例 #1
0
 /**
  * @param \Magento\CatalogRule\Model\Rule $rule
  * @param \Closure $proceed
  * @param \Magento\Framework\DataObject|\Magento\Catalog\Model\Product $product
  * @return bool
  */
 public function aroundValidate(\Magento\CatalogRule\Model\Rule $rule, \Closure $proceed, \Magento\Framework\DataObject $product)
 {
     $validateResult = $proceed($product);
     if (!$validateResult && ($configurableProducts = $this->configurable->getParentIdsByChild($product->getId()))) {
         foreach ($configurableProducts as $configurableProductId) {
             $validateResult = $rule->getConditions()->validateByEntityId($configurableProductId);
             // If any of configurable product is valid for current rule, then their sub-product must be valid too
             if ($validateResult) {
                 break;
             }
         }
     }
     return $validateResult;
 }
コード例 #2
0
 /**
  * @depends testGetConfigurableAttributesAsArray
  */
 public function testGetParentIdsByChild()
 {
     $attributes = $this->_model->getConfigurableAttributesAsArray($this->_product);
     $attribute = reset($attributes);
     $optionValueId = $attribute['values'][0]['value_index'];
     $result = $this->_model->getParentIdsByChild($optionValueId * 10);
     // fixture
     $this->assertEquals(array(1), $result);
 }
コード例 #3
0
ファイル: ConfigurableTest.php プロジェクト: nja78/magento2
 /**
  * @depends testGetConfigurableAttributesAsArray
  */
 public function testGetParentIdsByChild()
 {
     $result = $this->_model->getParentIdsByChild(10);
     // fixture
     $this->assertEquals([1], $result);
 }