0

I have facing Below error when I override resource model

Fatal error: Call to undefined method Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable\Interceptor::getAttributeId() in /home/XXXXXX/Extendfiles/Plugin/Model/ResourceModel/Product/Type/Configurable.php on line 262

i have us this code

public function afterGetAttributeOptions($superAttribute, $productId) 
{ 
$scope = $this->getScopeResolver()->getScope(); 
$select = $this->getConnection()->select()->from( 
['super_attribute' => $this->getTable('catalog_product_super_attribute')], 
[ 
'sku' => 'entity.sku', 
'product_id' => 'product_entity.entity_id', 
'attribute_code' => 'attribute.attribute_code', 
'value_index' => 'entity_value.value', 
'option_title' => $this->getConnection()->getIfNullSql( 
'option_value.value', 
'default_option_value.value' 
), 
'default_title' => 'default_option_value.value', 
] 
)->joinInner( 
['product_entity' => $this->getTable('catalog_product_entity')], 
"product_entity.{$this->getProductEntityLinkField()} = super_attribute.product_id", 
[] 
)->joinInner( 
['product_link' => $this->getTable('catalog_product_super_link')], 
'product_link.parent_id = super_attribute.product_id', 
[] 
)->joinInner( 
['attribute' => $this->getTable('eav_attribute')], 
'attribute.attribute_id = super_attribute.attribute_id', 
[] 
)->joinInner( 
['entity' => $this->getTable('catalog_product_entity')], 
'entity.entity_id = product_link.product_id', 
[] 
)->joinInner( 
['entity_value' => $superAttribute->getBackendTable()], 
implode( 
' AND ', 
[ 
'entity_value.attribute_id = super_attribute.attribute_id', 
'entity_value.store_id = 0', 
"entity_value.{$this->getProductEntityLinkField()} = " 
. "entity.{$this->getProductEntityLinkField()}", 
] 
), 
[] 
)->joinLeft( 
['option_value' => $this->getTable('eav_attribute_option_value')], 
implode( 
' AND ', 
[ 
'option_value.option_id = entity_value.value', 
'option_value.store_id = ' . $scope->getId(), 
] 
), 
[] 
)->joinLeft( 
['default_option_value' => $this->getTable('eav_attribute_option_value')], 
implode( 
' AND ', 
[ 
'default_option_value.option_id = entity_value.value', 
'default_option_value.store_id = ' . \Magento\Store\Model\Store::DEFAULT_STORE_ID, 
] 
), 
[] 
)->where( 
'super_attribute.product_id = ?', 
$productId 
)->where( 
'option_value.value != "N/A"', 
$productId 
)->where( 
'attribute.attribute_id = ?', 
$superAttribute->getAttributeId() 
); 

return $this->getConnection()->fetchAll($select); 
}
i have just add my code at bottom of this function
->where( 
'option_value.value != "N/A"', 
$productId 
)

Di.xml

<type name="Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable"> 
<plugin name="ptgConfigurableProduct" type="Modulename\Extendfiles\Plugin\Model\ResourceModel\Product\Type\Configurable" sortOrder="1" /> 
</type>

If anyone facing and get solution please reply me.

  • please share proper log...Extendfiles_Plugin is Seems your created extesnsion – Amit Bera Aug 9 '18 at 5:35
  • Also share you full code of /home/XXXXXX/Extendfiles/Plugin/Model/ResourceModel/Product/Type/Configurable.php. – Mohammad Mujassam Aug 9 '18 at 7:05
0

There are mistakes in your plugin. You have not added the $subject and other function arguments correctly.

Try this

public function afterGetAttributeOptions(
    \Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable $subject,
    $result,
    \Magento\Eav\Model\Entity\Attribute\AbstractAttribute $superAttribute,
    $productId
) {
    // add your code here
}
| improve this answer | |
  • 1 exception(s): Exception #0 (Exception): Strict Notice: Declaration of XXXXXXX\Extendfiles\Plugin\Model\ResourceModel\Product\Type\Configurable\Interceptor::afterGetAttributeOptions() should be compatible with XXXXXXX\Extendfiles\Plugin\Model\ResourceModel\Product\Type\Configurable::afterGetAttributeOptions(Magento\Eav\Model\Entity\Attribute\AbstractAttribute $superAttribute, $productId) in /home/commercestaging/public_html/alpha/oly/var/generation/XXXXXXX/Extendfiles/Plugin/Model/ResourceModel/Product/Type/Configurable/Interceptor.php on line 7 – Rv Singh Aug 9 '18 at 9:05
  • I have to getting this error – Rv Singh Aug 9 '18 at 9:05
  • Remove var/generation folder and try again. – Dinesh Yadav Aug 9 '18 at 9:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.